赞
踩
系统:windows 7(先安装) + Ubuntu 18.04(后安装),通过grub引导ubuntu启动
背景:由于当时在安装ubuntu的时候只预留了60G的磁盘空间,导致后来空间不够用,所以尝试把windows的一个磁盘分区格式化成ext4格式后挂载给/home目录下的一个文件夹,扩展ubuntu的空间(参考https://mp.csdn.net/console/editor/html/104808208)。
问题:在设置后windows可以正常启动,启动后发现格式化成ext4后的磁盘分区已无法识别其格式;ubuntu无法正常启动,停留在grub命令行模式。
分析:grub在启动ubuntu之前会检查所有的磁盘,不能识别格式化成ext4的磁盘分区,导致无法启动ubuntu
解决方案:
1. 通过一个ubuntu的启动U盘,在开机启动选项里选择U盘启动,然后选择试用不安装模式进入系统,就可以查看原windows和ubuntu的磁盘文件。有人说可以在terminal中使用root账户修改和恢复系统文件,我没有尝试过。
2. 在grub命令行模式输入命令,进入单用户模式,命令如下:
grub> set root=(hd1,9) //设置根目录 / 所在的分区
grub> set prefix=(hd1,9)/grub //可以通过 ls (hd1,9)/grub 确认/grub存在,确认启动分区
grub> root (hd1,9) //挂载启动分区,从而可以访问其中的内核文件
grub> kernel /vmlinuz-(使用TAB键选择一个内核镜像) ro root=/dev/sdb9 rhgb quiet 1 //1代表进入单用户模式 sdb9为根目录分区, /dev/sdb9为/分区位置
grub> initrd /initrd.img-(使用TAB键选择一个initrd镜像)
grub> boot //重启,进入单用户模式
出现以下提示:
You are in rescue mode, After logging in, type "journalctl -xb" to view system logs, :"systemctl reboot" to reboot, "systemctl default" or "exIt" to boot into default mode.
root
(or Control-D)
输入root密码(如果忘了还得绕过root密码检查), 进入单用户模式,此时就可以进行文件修复活动,然后“exit”正常进入系统。也可以直接“exit”正常进入系统。(说明:我在另一篇文章中对/etc/fstab的修改其实不会影响ubuntu的启动,因为完全不涉及/分区和/boot分区,只是在/home分区下面的目录挂载了一个新分区,但是由于我使用了grub引导,并且grub设置在windows下,导致在grub引导之前检查磁盘格式不通过, unknown filesystem, 最终影响了ubuntu的启动)
修复/etc/fstab后,可以通过df -h, cat /proc/mounts,fdisk -l查看是否挂载已取消。
重启,发现通过grub引导ubuntu仍然不行,然后进入windows将原来格式化为ext4的分区恢复成NTFS格式,再通过grub引导ubuntu启动成功。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。