无忧启动论坛

标题: =====GRUB2_EFI&BIOS双启动===== [打印本页]

作者: 2012angelkyo    时间: 2016-3-4 02:11
标题: =====GRUB2_EFI&BIOS双启动=====
本帖最后由 2012angelkyo 于 2016-11-26 22:44 编辑

截图1.png
grub2 EFI
和BIOS双启动制作说明:
1.首先格式化需要制作成双启动磁盘的第一个分区为FAT32格式
2.然后打开Bootice,选择好磁盘后,点主引导记录—恢复—选择恢复文件g2ldr.mbr,点击恢复。.
11.png
为以防万一,恢复之前可先备份一下:
22.png
3.复制压缩包里的2个文件夹到第一步所格式化的那个分区里。
33.png
4.制作完成。
对于BIOS已经可以启动GRUB2了,BIOS的菜单文件为\boot\grub\grub-bios.cfg
用Notepad++打开自行修改添加你的启动项,不懂的请自行百度
不要用Windows的文本编辑它,会改变它的编码,那就无法启动了。
对于UEFI主板,只需要把EFI文件夹放到EFI分区里,然后用Bootice添加一个启动项。
首先用CMD命令行(管理员权限)的diskpart命令挂载你的EFI分区,如何挂载自行百度。
然后:
44.png
Done.
目录结构说明
55.png
目录名,文件名,请不要乱改。
你能改的只能是grub-bios.cfg这个菜单的内容。这是BIOS主板的启动菜单。
grub-efi-64.cfg,这是UEFI主板的启动菜单。
重要的事情再说一遍,请用Notepad++修改它们的内容,添加你的启动项。
你下载的主题包,解压后的文件夹,放在/boot/grub/themes下面,然后修改启动菜单就能就能更换主题了。
66.png
比如你下载的主题解压后文件夹名字为StylishDark,那么只需要将上图箭头部份的Vimix修改为StylishDark就行了。
77.png
链接:http://pan.baidu.com/s/1i56ZIz7 密码:vcts




作者: 2012angelkyo    时间: 2016-3-4 02:20
本帖最后由 2012angelkyo 于 2016-3-4 16:05 编辑

附相关文件的代码(基于grub-2.02~beta2-for-windows),能看懂的就看,看不懂就算了
EFI单文件批处理

  1. cd /d %~dp0
  2. mkdir out\boot\grub\x86_64-efi
  3. xcopy /s /e /y /i x86_64-efi out\boot\grub\x86_64-efi

  4. mkdir out\boot\grub\locale
  5. copy /y locale\zh_CN\grub.mo out\boot\grub\locale\zh_CN.mo
  6. copy /y grub.cfg out\boot\grub\grub.cfg

  7. mkdir out\boot\grub\fonts
  8. copy /y unicode.pf2  out\boot\grub\fonts
  9. copy /y background.png out\boot\grub\

  10. cd out
  11. find ./boot -print|cpio -o -H newc > ./memdisk.cpio
  12. cd ..
  13. grub-mkimage.exe -m out\memdisk.cpio -d out\boot\grub\x86_64-efi -c out\grub-bootstrap.cfg -p (memdisk)/boot/grub -O x86_64-efi -o .\out\bootx64.efi -v newc iso9660 part_msdos part_gpt ext2 cpio memdisk blocklist minicmd loopback fat ntfs gfxterm reboot configfile normal echo test gfxmenu gfxterm search

  14. @pause
  15. cd out
  16. rmdir /s /q boot
  17. del /s /q memdisk.cpio
复制代码
grub-bootstrap.cfg内容
  1. normal (memdisk)/boot/grub/grub.cfg
复制代码
grub.cfg内容,此文件在memdisk.cpio里面
  1. if [ "${grub_platform}" == "efi" ]; then
  2.         if [ "${grub_cpu}" == "x86_64" ]; then
  3.                 if        search -s -f /boot/grub/grub-efi-64.cfg ; then
  4.                         echo "Reading (${root})/boot/grub/grub-efi-64.cfg"
  5.                         configfile /boot/grub/grub-efi-64.cfg
  6.                 else
  7.                         echo "Could not find grub-efi-64.cfg file!"
  8.                 fi
  9.         fi
  10.         
  11.         if [ "${grub_cpu}" == "i386" ]; then
  12.                 if        search -s -f /boot/grub/grub-efi-32.cfg ; then
  13.                         echo "Reading (${root})/boot/grub/grub-efi-32.cfg"
  14.                         configfile /boot/grub/grub-efi-32.cfg
  15.                 else
  16.                         echo "Could not find grub-efi-32.cfg file!"
  17.                 fi
  18.         fi
  19. else
  20.         if [ "${grub_platform}" == "pc" ]; then
  21.                 if [ "${grub_cpu}" == "i386" ]; then
  22.                         if        search -s -f /boot/grub/grub-bios.cfg ; then
  23.                                 echo "Reading (${root})/boot/grub/grub-bios.cfg"
  24.                                 configfile /boot/grub/grub-bios.cfg
  25.                         else
  26.                                 echo "Could not find grub-bios.cfg file!"
  27.                         fi
  28.                 fi
  29.         else
  30.                 echo "unknow platform!"
  31.         fi
  32. fi
复制代码

find & cpio  for windows
find&cpio_windows.7z (639.09 KB, 下载次数: 338)