前言:此虚拟机在之前使用的时候,分配了20G的存储空间,昨天突然发现快要满了,于是准备扩容,本来以为很容易,结果趟了不少的坑,故记录在此方便大家参考。
系统版本:ubuntu16.04
1.在虚拟机设置扩展磁盘容量
我原来设置的是20G,现在增加到100G。(注意:需将虚拟机关机后才可设置,并且虚拟机快照需要删除掉)
2.ubuntu磁盘分区
此时我们已经将新的硬盘加到了虚拟机里,但若想使用,还需从ubuntu内部对磁盘挂载
进入虚拟机,进到root权限,然后输入fdisk /dev/sda
然后输入p查看信息
此时可以看到磁盘大小变成了100G,还有相关的分区信息
按q退出fdisk,接着输入df -h 查看当前硬盘的使用情况
home是用户分区,由于需要传进来的东西超过了500M,不够使用,故准备进行扩容,可以看到用户分区是挂载在sda7下的
此时再度输入fdisk /dev/sda
然后准备添加磁盘,输入n,新建分区,然后输入p选择主分区(l为逻辑分区,此处不选择),选择分区号4,然后直接回车默认创建第一分区。
接下来我们再创建一个分区,继续输入n,p,选择分区号3,接着输入起始地址,一般回车默认,接着输入结束地址,此处我直接回车取了剩余的80G所有空间,大家可以根据自己的需求输入结束地址来决定分配多少空间,也可以直接输入 +size 单位 来分配空间,比如输入 +10G 来分配10G空间,此时再次输入p可以看到,我们新增的分区已经建立好
3.磁盘格式化
输入df -T 查看文件系统类型,可以看到类型为ext4,接下来我们进行磁盘的格式化
输入mkfs -t ext4 /dev/sda3 将新增加的磁盘格式化
然后输入blkid命令,可以看到,格式化后的磁盘有了UUID,未格式化的sda4没有
4.分区挂载
由于是用户分区,想要每次启动时都自动挂载,所以需要修改/etc/fstab文件
首先,输入cd / 进入到根目录,然后输入cp home/ oldhome -r 将原来的用户数据保存一份(第一次挂,以防数据丢失,现行备份)
然后vi /etc/fstab 修改文件,通过UUID对比可以看到现在的home是挂载到sda7下的
修改此文件,将home挂载到新增分区sda3,然后将原来复制的oldhome依然挂载到原来的sda7上,保存文件,reboot重启
本以为此次扩容到此结束了,结果重启后出现了新的问题,就是启动后卡在了登录界面,输入正确的密码闪烁一下,又跳回到登录界面。
在网上找了很多解决办法,依次尝试。
1.认为遇到开机成功输入密码后无法进入桌面(无线循环提示输入密码)。可能是由于改动/etc/profile导致的
登陆界面键入Ctrl+Alt+F1~F6(任意一个)-> 输入用户名和密码 -> cd /etc -> sudo vim profile(可能是/usr/bin/sudo /usr/bin/vim profile) -> 将文件还原为初始状态(一般的可能是因为添加了export导入新环境变量) ,直接复制一下配置文件覆盖原配置即可
结果:更改后,无法登陆
2.认为执行了startx命令,startx是xinit的启动脚本,启动后会在/root
目录下生成.Xauthority
文件用来记录这次行为。那么在root用户下执行startx后,/root/.Xauthority
文件属主就变为了root,那么当用户在图形界面登陆的时候就会出现无法读取的情>况,直观给我们反映出来的现象就是不断地重复登录
解决方法:
输入如下命令:
sudo su -
ls -lha /root | grep Xauth
rm /root/ .Xauthority
删掉.Xauthority
文件,重新进入图形界面登录。
Ctrl
+Alt
+F7
结果:无法登陆
3.用户不是.Xauthority的所有者,无法登录
.Xauthority文件可以在每个用户主目录中找到,用于存储xauth用于X会话的身份验证。启动X会话后,cookie将用于验证与该特定显示的连接。您可以在xauth手册页中找到有关X身份验证和X权限的更多信息
解决方法:
输入如下命令:
sudo chown username:username .Xauthority
结果:无法登录
4.重新安装ubuntu桌面
sudo apt-get autoremove ubuntu-desktop 先卸载
sudo apt-get update 更新软件源列表
sudo apt-get install ubuntu-desktop 重新安装桌面
结果:可以登录进去了,但是出现了新的问题
尝试了第四种方法后,输入密码后可以登录了,登录后无法显示桌面,提示了新的报错信息:无法建立需要的文件夹,请创建以下文件夹,或设置好权限以便创建这些文件夹:
检查发现可能是权限出错:-rw------- 1 root root 13354 2009-12-06 10:51 /home/username/.ICEauthority
用命令行修改目录权限为当前用户:$sudo chown user -R /home/user(此处user为你的用户名)
更改后可以正常进入了
查看一下分区和挂载,一切正常:
对于直接将home挂载至新的磁盘中的做法,可能不是很正确,才导致了后续的问题,如果有大佬知道更好的方法,欢迎指点,多谢。
参考资料:
https://blog.51cto.com/lijuntao/1971931