问题描述,电脑开机后出现错误,找不到文件系统,如上图:一般是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/