ubuntu系统grub修复及/home扩容
几天前重装了ubuntu系统,重装的时候有覆盖安装选项,以为能省去好多麻烦,不用再重新格式化分区了。然而七七八八环境都搭好了之后发现之前几百G的/home分区被保留下来了,当做一个普通的磁盘挂载在电脑上。于是打算将挂载的分区格式化后给新的/home扩容。用系统自带的“磁盘”格了后选择开机自动挂载到/home,重启。
显示挂载到home时出现错误,取消挂载,然后重启,压根就进不去系统了。
Grub修复
进不去系统直接就显示到
grub rescue>
想想系统选择菜单都没了,应该时找不到grub了,开始动手拯救grub。
1.在grub rescue中输入以下命令
ls
可以看到所有磁盘分区的信息,列表大概是这个样子。
(hd0,1)(hd0,2)(hd0,3)(hd0,4)(hd0,5)(hd0,6)(hd0,7)
2.按照上面的分区信息
1)若有boot分区,则依次执行
ls (hd0,x)/grub #x为分区号码,下同
2)无boot分区,则依次执行
ls (hd0,x)/boot/grub
3.直到找到一个分区,显示有grub.cfg等许多看起来像grub的文件,说明grub装在这里。
4.但是我是装的双系统,所以grub和真正的ubuntu并不在一起,可以用命令继续试,直到也找到ubuntu所在的分区,一定要记好分区的号码(grub分区和系统分区两个)。
5.找到了grub,就把grub的临时信息写下来进系统吧,假设我grub是在(hd0,5)分区上
#根据上面是否有boot分区,执行以下命令
set root=(hd0,5)
set prefix=(hd0,5)/boot/grub
insmod (hd0,5)/boot/grub/i386-pc/normal.mod
或者
set root=(hd0,5)
set prefix=(hd0,5)/grub
insmod (hd0,5)/grub/i386-pc/normal.mod 我装了双系统,所以normal.mod在grub/i386-pc中,否则也可能在grub中,用2中的ls命令仔细找找这个文件
6.接下来执行
normal 发现久违的grub菜单出现了,直接选ubuntu系统后又出错了,错误信息如下:(没有出错就直接看第7步吧)
Give up waiting for root device. Common problems:
-boot args (cat.proc/cmdline)
-check root delay=(did the system wait long enough?)
-check root=(did teh system wait for the right device?)
-miss modules (cat/proc/modules;ls/dev)
ALERT! /dev/disk/by-uuid/acc3414d-926c-453c-b458-cf47088d77d2 does not exist.dropping to a shell! 这样子看起来是找不到系统的文件,或者在这个uuid是 acc3414d-926c-453c-b458-cf47088d77d2 的磁盘上找不到系统
命令行里输入
ls -l /dev/disk/by-uuid/ 记录下来系统所在分区的uuid。 重启,按照上面的步骤再来一遍,又见到了久违的grub,这次可不能在直接选系统了,高亮ubuntu系统,按下e键编辑grub启动选项。
其中有一行是Linux … /dev/disk/by-uuid/acc3414d-926c-453c-b458-cf47088d77d2 … ,没错就是它了,把by-uuid/后边的一串uuid改成你系统所在分区的uuid(上面记下来的)。
然后按ctrl+x根据此引导启动系统,就能见到你的桌面了。
7.还没完,记得把grub信息更新保存,总不能每次启动都重写上面部分。
sudo update-grub
sudo grub-install /dev/sda(系统在sda盘的第七个分区,所以此处是sda,根据电脑情况修改) 至此,grub修复部分结束。
/home扩容
grub修复了,系统能用了,800G的盘还得继续扩到/home下。
1.格式化分一下区,记下它的分区号码(比如/dev/sda8)
2.切到root用户,根目录下新建一个copy的文件夹,然后把分区挂载上。
mkdir /copy
mount /dev/sda8 /copy/
3.将/home下的数据全部复制到copy目录下,ls命令查看一下copy目录下是否是原/home的内容
mv /home/ /copy/
ls /copy/
4.确认copy目录下没有少内容后,将sda8分区卸载掉
umount /dev/sda8
5.删除/home目录并且重新创建/home目录
rm -rf /home
mkdir /home
6.新分区(sda8)挂载到新的/home下
mount /dev/sda8 /home/
7.将/home/home下的内容移动到/home中去
mv /home/home/(用户名) /home
8.最后别忘了在/etc/fstab中添加内容病设置开机自动挂载
vim /etc/fstab
#增加
/dev/sda8 /home ext4 defaults 0 0
9.重启并查看/home分区下容量,确认是800G,扩容搞定。