开机启动找不到文件系统的修复步骤

问题描述,电脑开机后出现错误,找不到文件系统,如上图:一般是grub找不到引导文件,只需要让他找到引导文件就好了。步骤如下

1.输入  命令“set”,  查看grub指向哪个盘,然后等下可以跳过该盘进行查找引导文件。

2.“ls”  查看磁盘的分区情况,其中hd0代表第一块硬盘,hd1代表第一块硬盘。 

3.“ls  (hd0,msdos9)/”依次查看哪个分区下会有引导文件。我的刚好在(hd0,msdos9)下,(只要不是出现not found 类型的文件就可能是了)

4.接下来用set 命令  来设置root和prefix

“set  root = hd0,msdos1”

"set prefix=(hd0,msdos1)/grub2"

5.输入命令   "set"  查看是否已修改好

6.输入“insmod  normal”  回车,再输入normal 这样就可以正常进入启动界面了。

注:这个时候不要进入window系统,否则关机重启后依然会重新出现刚刚的问题,选择进入linux系统然后继续。

7.进入redhat系统后打开终端,执行命令更新grub。

  redhat下使更新调整后的grub生效的命令为:sudo grub2-mkconfig -o /boot/grub2/grub.cfg

  ubuntu下使更新调整后的grub生效的命令为:sudo update-grub

8.执行命令“grub2-install /dev/sdx”来安装grub2到磁盘启动区。(sdx表示磁盘第几个磁盘,如sda表示第一个磁盘)

  ubuntu执行的命令是“sudo grub-install /dev/sda”

////////////此时已经完全恢复了redhat的开机启动,但是却没有windows的启动项,接下来配置windows启动//////////////////////////

9.修改redhat的grub2引导,添加windows的启动项

 1 sudo vi /boot/grub2/grub.cfg 

找到 ### BEGIN /etc/grub.d/30_os-prober ###
在后面添加

1 menuentry "Windows 7 (loader) (on /dev/sda1)" {
2      insmod ntfs
3      set root=(hd0,1) #由于我的windows安装在硬盘的C盘,故(hd0,1)
4      chainloader +1
5  }

参考https://blog.csdn.net/peerless1994/article/details/52226169

  https://blog.csdn.net/endeavour_zhao/article/details/52877749

  https://bbs.qunyingkeji.com/645/

原文地址:https://www.cnblogs.com/edan/p/9248490.html