背景:笔记本电脑上之前只安装了 CentOS 8。后来加装了 Windows 7,结果没有 CentOS 的启动菜单了。
磁盘分区情况:
sda1 Windows C:
sda2 Windows D:
sda3 /boot
sda5 swap
sda6 /
sda7 /home
解决步骤:
1. 下载一个CentOS8 iso安装镜像(可以是boot盘),并使用 Win32DiskImager写入U盘。
2. 从U盘启动,进入安装界面时,选择 Troubleshooting,然后选择 Rescue a CentOS Linux system。
3. 进入rescue环境,输入1(选择continue),将会把在硬盘上找到的Linux系统挂载到 /mnt/sysimage。然后回车,激活shell。
4. 切入硬盘Linux系统:chroot /mnt/sysimage
5.重新安装grub2: grub2-install /dev/sda
注意是 grub2,而不是 grub。
此时,重启系统,发现 CentOS 启动菜单已恢复:
CentOS Linux (4.18.0-80.e18.x86_64) 8 (Core)
CentOS Linux (0-rescue-...) 8 (Core)
但是,没有Windows的启动项。
6. 进入CentOS,vim /etc/grub.d/40_custom, 添加:
menuentry 'Windows 7' {
insmod ntfs
set root='hd0,msdos1'
chainloader +1
}
保存,退出。
注:这里 msdos1 表示Windows系统盘在第一个分区。
7. 重新生成grub2配置: grub2-mkconfig -o /boot/grub2/grub.cfg
8. 重启电脑,发现多出了 Windows 启动项。
参考:
1、centos7引导Windows,实现双系统选择启动
https://blog.csdn.net/qq_20906903/article/details/78431248
2、安装centos7 windows7 (32位) 双系统以及grub2引导windows 7
https://blog.csdn.net/liu454638324/article/details/49621525?locationNum=4&fps=1