msdos1‘ search -f /windows/notepad.exe --set-root chainloade

时间:2022-04-22 08:35:28

为CentOS 7添加win7的引导菜单

案例配景
      本案例是在已安置了windows 7系统的根本上,,在一个空闲的分区上安置CentOS 7 Linux系统。当告成安置Linux系统后并不会像Centos 6版本那样保存windows 7系统的启动菜单。而是只有Centos7的系统启动菜单。必需在进入Linux系统后由打点员在/boot/grub2/grub.cfg文件中手动添加windows 7的启动菜单。

方案一:将以下内容先写入到/etc/grub.d/40_custom文件中,从头生成grub.cfg启动菜单文件。
第1步,编纂/etc/grub.d/40_custom文件。
vi   /etc/grub.d/40_custom   添加如下内容(菜单内容参考方案一)
menuentry   ‘win7‘ {
    insmod  part_msdos
    set  root=‘hd0,msdos1‘
    search  -f   /windows/notepad.exe   --set-root
    chainloader  +1
}

第2步,更新grub.cfg菜单文件。
grub2-mkconfig  -o   /boot/grub2/grub.cfg

第3步,将win7设置为默认启动。
grep   win7   /boot/grub2/grub.cfg
grub2-set-default   ‘win7‘
grub2-editenv   list

第4步,reboot重启Linux系统,验证是否有win7的启动菜单,以及能否正常启动win7系统。

-------------------
附录:
vi   /etc/grub.d/40_custom   添加如下内容(最优化的菜单内容参考方案一)
menuentry   ‘win7‘ {               #指定菜单标题
    insmod  part_msdos          #加载msdos分区模块
    set  root=‘hd0,msdos1‘      #设置根分区为第1块硬盘的msdos1分区
    search  -f   /windows/notepad.exe   --set-root         #将搜索到的notepad.ext文件地址的分区设置为根
    chainloader  +1          #链接引导
}


/etc/grub.d/40_custom  菜单文件内容参考方案二
menuentry  ‘win7‘  {
   set   root(hd0,1)
   chainloader   +1
}

/etc/grub.d/40_custom  菜单文件内容参考方案三
menuentry  ‘win7‘  {
    insmod   chain
    insmod   ntfs
    set   root(hd0,msdos1)
    chainloader   +1
}