最近在看虚拟机这块的内容,使用Oracle VM Virtualbox搭建ubuntu虚拟机,遇到一些问题,随手记下来,备用。
1· 如何使用root账户登录,主要是为了减少权限设置问题,root账号对所有内容都有访问权限,使用较为方便。
解决方案:
1) 在终端执行命令
sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
2) 在弹出的编辑框最后添加一句:greeter-show-manual-login=true 保存关闭
3) 为root用户设置登录密码,终端输入命令
sudo passwd root
4) 重启虚拟机
2· root账户登录系统时候报错的提示。错误提示为:Error found when loading /root/.profile stdin: is not a tty。
解决方案:
1) 修改相关文件,执行命令
nano /root/.profile
2) 将mesg n注释,并增加一行 tty -s && mesg n
#mesg n
tty -s && mesg n
3)使用快捷键ctrl+X退出,如果文件有修改,会弹出提示是否保存,输入Y进行保存;如果没有修改文件,会直接退出。
3· 显示或隐藏不可见文件。
解决方案:
1) ctrl+h
2) 文件菜单栏:编辑->首选项,选中复选框“显示隐藏和备份文件”
4· 安装增强功能(我主要是为了分辨率,强迫症,o(╯□╰)o)
解决方案1:
1) Oracle VM Virtualbox菜单栏:设备->分配光驱->VBoxGuestAdditions.iso(安装VM之后,安装路径下就有该文件,选择添加即可)
2) 打开光驱文件夹,双击文件VBoxLinuxAdditions.run即可。习惯命令行模式的童鞋,在终端执行命令:
sudo /media/"username"(当前登录用户)/VBOXADDITIONS_5.0.20_106931(根据自身情况,版本号不一样)/VBoxLinuxAdditions.run
3) 这块会出现一个其他问题,"The headers for the current running kernel were not found",解决方案是,执行命令:
sudo apt-get install dkms build-essential linux-headers-$(uname -r)
解决方案2:
1)首先下载virtualbox扩展包,下载路径:https://www.virtualbox.org/wiki/Downloads
2)Oracle VM Virtualbox菜单栏:设置->扩展中添加该安装包,会自动安装扩展,之后便可使用扩展功能。
5· 共享文件夹。
解决方案:
1) Oracle VM Virtualbox菜单栏:设备->共享文件夹->添加一个主机系统中的文件夹作share为共享文件夹
2) 进行挂载,执行命令:
sudo mount -t vboxsf share /home/xxx/share
3) 取消挂载,执行命令:
sudo umount -f /home/xxx/share
4)挂载时会出错mount: unknown system type ‘vboxsf’,是因为登录用户不具有权限,是以访客身份登录。
6· 修改环境变量。
解决方案:
1) 修改系统环境变量,执行命令:
sudo gedit /etc/environment
2) 修改用户环境变量,执行命令:
sudo gedit ~/.bashrc
3) 修改完后,执行命令:
source ~/.bashrc
7· 添加硬盘。
解决方案:
1) VM菜单栏:设置->存储,为控制器添加虚拟硬盘。
2) 显示当前的硬盘及所属分区的情况(刚添加的硬盘有提示:"DIsk /dev/sdb doesn't contain a valid partition table"),执行命令:
sudo fdisk -lu
3) 对硬盘进行分区,之后硬盘被识别,可以查看硬盘信息及所属分区情况,执行命令:
sudo fdisk /dev/sdb
sudo fdisk -lu
在Command (m for help)提示符后面输入m显示一个帮助菜单;
在Command (m for help)提示符后面输入n,执行 add a new partition 指令给硬盘增加一个新分区;
在Command (m for help)提示符后面输入p,显示分区表;
在Command (m for help)提示符后面输入w,保存分区表。
4) 硬盘格式化,执行命令:
sudo mkfs -t ext4 /dev/sdb
5) 显示硬盘挂载情况(可以看到新添加的硬盘没有挂载,无法进入和查看),执行命令:
sudo df -l
6) 指定硬盘分区文件系统类型为ext4 ,同时将 /dev/sdb 分区挂载到目录 /devdata,之后便可查看新硬盘挂载情况,执行命令:
sudo mount -t ext4 /dev/sdb /devdata
sudo df -l
7) 配置硬盘在系统启动自动挂载,执行命令:
sudo gedit /etc/fstab
8) 修改文件中针对新硬盘的设置的最后两项内容为0,0即可
/dev/sdb /devdata ext4 defaults 0 0
8· 安装java
1)之前的习惯是下载jdk文件后,设置环境变量来配置java。某次发现有更方便的命令行方式安装,记录一下。
2)在Ubuntu上安装Oracle JDK,使用下面的命令安装,只需一些时间,它就会下载许多的文件,所及你要确保你的网络环境良好:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default
3)如果你想安装Java 7(i.e Java 1.7),在上面的命令中用java7代替java8。
4)安装后卸载java,移除所有 Java相关包 (Sun, Oracle, OpenJDK, IcedTea plugins, GIJ):
apt-get update
apt-cache search java | awk '{print($1)}' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e '^openjdk-' -e '^icedtea' -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.)-j(re|dk)' -e 'java-common' | xargs sudo apt-get -y remove
apt-get -y autoremove
清除配置信息: dpkg -l | grep ^rc | awk '{print($2)}' | xargs sudo apt-get -y purge
清除java配置及缓存: bash -c 'ls -d /home//.java' | xargs sudo rm -rf
手动清除JVMs: rm -rf /usr/lib/jvm/*
9· 64位ubuntu添加32位支持
sudo apt-get install lib32ncurses5
10· 安装git后从远程仓库读取,clone失败,提示no matching key exchange method found. Their offer: diffie-hellman-group1-sha1的解决方案。修改~/.ssh/config,加入
Host *
KexAlgorithms +diffie-hellman-group1-sha1
11· /bin/sh: : No such file or directory错误
1)编写好的可执行文件在运行时提示Permission Denied,修改执行权限为777:
chmod -R 777 可执行文件名
2)权限修改之后,提示错误No such file or directory,一般是系统的动态链接器与XXX这个程序中的动态链接器的名字或路径不对。在命令行中执行:
readelf -l 可执行文件名
3)在输出中有一行显示:
INTERP 0x000134 0x00008134 0x00008134 0x00019 0x00019 R 0x1
[Requesting program interpreter: /lib/ld-linux-armhf.so.3]
4)上述文件即为缺失的文件,安装该文件即可确保可执行文件正确运行。