检查启动分区是否存在错误

检查启动分区是否存在错误

我遇到了一个大问题,我 10/12 天前才安装了 Ubuntu。今天,当我运行我的电脑时,它显示一个黑屏,就像 CMD 一样。以下是消息:

error:file'grub/i386-pc/normal.mod' not found.
Entering rescue mode...
grub rescue> [here is the cursor]

现在我得到了一些解决方案,我尝试了以下方法:

>ls
(hd0,msdos2)(hd0,msdos1)(hd0,msdos 5) #.....I saw such things

然后我发现 (hd0,msdos1) 的文件系统是 ext2。然后,

>set boot=(hd0,msdos1)
>set prefix=(hd0,msdos6)/boot/grub
>insmod normal
>normal

但当我下达命令时正常安装,命令未找到显示,请帮助我:'(

答案1

我认为您的启动分区已损坏。请尝试从 livecd/live usb 启动以修复它。

首先,使用lsblk命令找到您的硬盘。检查文件系统是否有错误。然后检查您的启动分区是否未满。可能需要删除一些以前版本的内核或映像。

然后挂载你的根分区和机器人分区,绑定/sys、、、/proc目录到这个空间并。/dev重启。/runchrootupdate-grub2

像这样:

lsblk

NAME                       MAJ:MIN RM   SIZE RO MOUNTPOINT
sda                          8:0    0 298.1G  0
├─sda1                       8:1    0   500M  0 
└─sda2                       8:2    0 297.6G  0
  ├─vg_main-lv_swap (dm-0) 253:0    0   5.8G  0 
  ├─vg_main-lv_root (dm-1) 253:1    0    50G  0 
  └─vg_main-lv_home (dm-2) 253:2    0 241.8G  0
    └─home (dm-3)          253:3    0 241.8G  0 
sr0                         11:0    1  1024M  0

检查启动分区是否存在错误

fsck /dev/sda1

挂载硬盘根分区

mount /dev/dev/vg_main-lv_root /mnt

或者像这样取决于你的磁盘布局

mount /dev/sda2 /mnt

安装启动项

mount /dev/sda1 /mnt/boot

绑定目录

 for x in proc dev sys run ; do
      mount -o bind /${x} /mnt/${x}
 done

Chroot 并重新安装 grub

  chroot /mnt
  grub-install /dev/sda
  grub-mkconfig -o /boot/grub/grub.cfg
  exit

清理并重启

cd /
umount /mnt/boot /mnt/sys /mnt/proc /mnt/dev /mnt/run /mnt
reboot

相关内容