grub rescue

我是win7和ubuntu双系统,本来win7的分区都是网管帮忙做好了的,自己从最后一个分区F盘压缩出来点空间装的ubuntu,压缩时候不知道什么原因,只能压出80多个G,还有120个G的空间呢。平时一般都在ubuntu下干活,结果开发需要,就又安装了一个虚拟机win7,毕竟切换平台又要装很多环境,我只需要一个ie的测试而已吗。这样硬盘空间就不够了,我就又进入win7把F盘给删了,好挂在到linux里。

结果重启开机就告诉你说,unknown filesystem,grub rescue>

直接懵了,不过感紧百度了一下,找了别人的经验,结合自己的实际环境给搞好了。记录个过程吧。

只剩ls这个命令还能用了,就把所有分区信息输出了,类似

(hd0,1),(hd0,5),(hd0,3),(hd0,2),我的就是(hd0,msdos1),这可能是跟做系统分区时候使用的工具有关。

直接再ls (hd0,msdos1)/ 如果是linux分区就会有内容,windows分区就会显示unknown。我们关键是要找/boot/grub/这个东东的所在,有的boot单独分区,有的不是单独分区,会挂在/下面,挨个ls (),直到找到/boot/grub/所在位置。

然后设置:

grub rescue>set root=(hd0,msdos7)/boot
grub rescue>set prefix=(hd0,msdos7)/boot/grub

然后我看的文章都是让执行这个命令:

grub rescue>insmod /boot/grub/normal.mod


而实际上,我的目录里面压根就没这个文件,我就试着找了找,执行了这个命令:

insmod normal

然后界面字体的颜色就变了,说明生效了

然后输入normal回车就重启了,再进系统,打开终端

sudo update-grub
sudo grub-install /dev/sda ->比如我的/目录实际上挂在的是/dev/sda7,但这里还是要sda。

要注意的是,在ls那一步的时候,可能需要添加/到)后面,有时不需要,看个人情况吧。

转载于:https://my.oschina.net/u/1458693/blog/207900

### GRUB Rescue Mode Fix After 'No Such Partition' Error 当系统提示 `No such partition` 错误并进入 GRUB Rescue 模式时,通常表示 GRUB 的配置文件或引导扇区损坏,或者系统无法找到包含 `/boot` 分区的设备[^1]。GRUB 依赖于 `/boot/grub/grub.cfg` 文件来加载操作系统,若该文件丢失或分区未被正确识别,系统将无法正常启动。 #### 1. 手动引导系统进入 Linux 在 GRUB Rescue 模式下,可以尝试手动加载内核和 initramfs 文件,临时引导系统启动。首先,使用 `ls` 命令列出所有可用的磁盘和分区: ``` grub rescue> ls ``` 尝试识别包含 `/boot` 的分区,例如 `(hd0,msdos1)` 或 `(hd0,gpt1)`。一旦确认分区,使用以下命令加载 GRUB 模块和配置文件: ``` grub rescue> set root=(hd0,msdos1) grub rescue> insmod /boot/grub/i386-pc/normal.mod grub rescue> normal ``` 如果成功进入 GRUB 菜单,可以选择 Linux 内核启动系统。 #### 2. 重建 GRUB 引导环境 在系统正常启动后,应重新安装 GRUB 到 MBR 或 EFI 分区以修复引导问题。对于 BIOS 系统,使用以下命令: ```bash grub-install /dev/sda ``` 对于 UEFI 系统: ```bash grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB ``` 随后更新 GRUB 配置文件: ```bash update-grub ``` 这将重新扫描系统中的内核和分区,并生成新的 `grub.cfg` 文件。 #### 3. 检查 `/boot` 分区完整性 由于 GRUB 依赖 `/boot` 分区中的配置文件和内核镜像,必须确保该分区未被损坏或误删。使用 `fsck` 检查文件系统完整性: ```bash fsck /dev/sda1 ``` 若文件丢失,可尝试从备份恢复或重新生成 GRUB 配置。 #### 4. 恢复 GRUB Rescue 环境下的引导配置 若无法自动加载 GRUB,可尝试手动指定内核和 initrd 文件路径。例如: ``` grub rescue> linux /boot/vmlinuz-5.4.0-91-generic root=/dev/sda2 grub rescue> initrd /boot/initrd.img-5.4.0-91-generic grub rescue> boot ``` 此方法适用于临时启动系统,以便后续修复 GRUB。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值