文章目录

本人的笔记本电脑是win7+ubuntu14.04双系统,最近win7系统的系统盘快用完了,由于重装系统很麻烦,因此选择优化系统盘。由于平常都将软件装在非系统盘上,系统盘能够腾出空间的并不多,最终选择给系统盘扩容。由于是双系统,系统启动项是通过grub来引导的,在扩容后,系统无法进入开机启动项,在查找了很多资料后,终于恢复系统启动项。虽然以前也经历过这样的事情,但是到需要用到的时候,已经忘了怎么处理,且网上的很多解决方案并不完整,因此通过本文记录下这些问题的解决方案,方便日后再遇到时查阅。

首先,给系统盘扩容是采用EaseUS Partition Master工具,免费版本的就足够了。打开软件,可以看到如下磁盘的分区信息:

若要扩大C盘的大小,需要先从与C盘临近的盘释放一些空间出来,然后再将这些空间合并到C盘。具体步骤如下:

  1. 选中与C盘临近的E盘(一般是D盘,不过本人的系统以前编号被改动过),右键选择’resize/move partition’,拖动滑块,调整磁盘大小。释放出空间后,再以同样的方法更改C盘的大小,将释放出来的空间增加到C盘:

  2. 回到主界面单击Apply按钮,就可以开始分区。此过程需要重启系统,处理过程较慢。

其次,由于改变了磁盘的分区,双系统的启动项会出现问题,在启动电脑时,会出现如下的问题:

1
2
error:unknown filesystem   
grub rescue>

具体解决方式如下:

  1. 查看分区

    1
    grub rescue>ls
  2. 寻找Ubuntu所在分区

    1
    grub rescue>ls (hd0,msdos1)

    如果是unknown filesystem继续试下一个分区,直到找到Ubuntu所在分区,我的是在(hd0,msdos6)

  3. 修改启动分区:

    1
    2
    3
    4
    grub rescue>set root=(hd0,msdos6)
    grub rescue>set prefix=(hd0,msdos6)/boot/grub (这里的格式可能会随grub的版本不同而不同)
    grub rescue>insmod normal
    grub rescue>set (用来查看配置信息)

    其中可以用set命令来查看配置信息。到这里如果一切正常,继续,否则说明Ubuntu所在分区不正确,先找好再继续。

  4. 进入启动菜单:

    1
    grub rescue>normal
  5. 进入启动菜单后,立马按C进入命令行模式(如果直接进入系统,那么下次启动系统的时候启动项还是没有修复):

    1
    2
    3
    4
    5
    grub>set root=(hd0,msdos6)
    grub>set prefix=(hd0,msdos6)/boot/grub
    grub>linux /vmlinuz root=/dev/sda6(可按Tab键自动补全/vmlinuz)
    grub>initrd /initrd.img (可按Tab键自动补全/initrd*)
    grub>boot
  6. 进入Ubuntu修复grub:

    1
    2
    sudo update-grub
    sudo grub-install /dev/sda (重建grub到第一个硬盘,此处是sda而不是sda6,若报错可以加--force参数执行)
  7. 重启,完成。

文章目录