2012angelkyo 发表于 2016-3-4 02:11:06

=====GRUB2_EFI&BIOS双启动=====

本帖最后由 2012angelkyo 于 2016-11-26 22:44 编辑


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


2012angelkyo 发表于 2016-3-4 02:20:53

本帖最后由 2012angelkyo 于 2016-3-4 16:05 编辑

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

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

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

mkdir out\boot\grub\fonts
copy /y unicode.pf2out\boot\grub\fonts
copy /y background.png out\boot\grub\

cd out
find ./boot -print|cpio -o -H newc > ./memdisk.cpio
cd ..
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

@pause
cd out
rmdir /s /q boot
del /s /q memdisk.cpiogrub-bootstrap.cfg内容
normal (memdisk)/boot/grub/grub.cfggrub.cfg内容,此文件在memdisk.cpio里面
if [ "${grub_platform}" == "efi" ]; then
      if [ "${grub_cpu}" == "x86_64" ]; then
                if      search -s -f /boot/grub/grub-efi-64.cfg ; then
                        echo "Reading (${root})/boot/grub/grub-efi-64.cfg"
                        configfile /boot/grub/grub-efi-64.cfg
                else
                        echo "Could not find grub-efi-64.cfg file!"
                fi
      fi
      
      if [ "${grub_cpu}" == "i386" ]; then
                if      search -s -f /boot/grub/grub-efi-32.cfg ; then
                        echo "Reading (${root})/boot/grub/grub-efi-32.cfg"
                        configfile /boot/grub/grub-efi-32.cfg
                else
                        echo "Could not find grub-efi-32.cfg file!"
                fi
      fi
else
      if [ "${grub_platform}" == "pc" ]; then
                if [ "${grub_cpu}" == "i386" ]; then
                        if      search -s -f /boot/grub/grub-bios.cfg ; then
                              echo "Reading (${root})/boot/grub/grub-bios.cfg"
                              configfile /boot/grub/grub-bios.cfg
                        else
                              echo "Could not find grub-bios.cfg file!"
                        fi
                fi
      else
                echo "unknow platform!"
      fi
fi
find & cpiofor windows





jzura 发表于 2016-11-26 06:44:45

请楼主继续发好贴,支持你











static/image/common/sigline.gif
重庆民间道士道法驱邪,收徒弟

2012angelkyo 发表于 2016-3-4 15:01:21

2011cwj6958 发表于 2016-3-4 13:53
先赞一个,一个与众不同的模板,目录结构简单清爽。
提个建议,BIOS版能直接引导g2ldr.mbr文件就更加方便

可以啊,菜单里自己添加一个启动项呗。。。

2011cwj6958 发表于 2016-3-4 13:53:16

先赞一个,一个与众不同的模板,目录结构简单清爽。
提个建议,BIOS版能直接引导g2ldr.mbr文件就更加方便

boy6585948 发表于 2016-3-4 11:37:43

LZ给力啊!!GRUB2什么时候可以跟G4D一样强大呢???

dfswb 发表于 2016-3-4 10:13:39

顶,好帖,这个版块太安静了!

shan 发表于 2016-3-4 09:39:40

顶帖子,谢谢分享技术,

2012angelkyo 发表于 2016-3-4 02:26:21

本帖最后由 2012angelkyo 于 2016-3-4 16:03 编辑

BIOS版批处理
cd /d %~dp0

mkdir out\boot\grub\i386-pc
xcopy /s /e /y /i i386-pc out\boot\grub\i386-pc

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

mkdir out\boot\grub\fonts
copy /y unicode.pf2out\boot\grub\fonts
copy /y background.png out\boot\grub\


grub-mkimage.exe -d i386-pc -C auto -c out\grub-bootstrap-bios.cfg -p /boot/grub -o .\out\core.img -O i386-pc -v biosdisk loopback tar part_msdos fat exfat ntfs search_fs_file

copy /B out\boot.img + out\core.img out\g2ldr

@pause执行完批处理,进入out文件里夹,用7zip手动压缩boot文件夹为memdisk.tar,然后将它放到最终成品的boot/grub/下面。

grub-bootstrap-bios.cfg内容
search.file /boot/grub/grub-bios.cfg root
loopback memdisk /boot/grub/memdisk.tar
set prefix=(memdisk)/boot/grub
insmod part_gpt
insmod iso9660
insmod memdisk
insmod ext2
insmod blocklist
insmod echo
insmod test
insmod configfile
normal (memdisk)/boot/grub/grub.cfg

(memdisk)/boot/grub/grub.cfg内容跟EFI版一样,看楼上。。。



2011cwj6958 发表于 2016-3-4 16:04:22

本帖最后由 2011cwj6958 于 2016-3-4 16:23 编辑

我的意思是用其他的引导比如Windows的bcd或者 Grub4DOS的grldr,直接引导g2ldr.mbr文件 换句话说就是不修改原来引导的从其他的引导环境进入grub2,

2011cwj6958 发表于 2016-3-4 16:04:43

2012angelkyo 发表于 2016-3-4 15:01
可以啊,菜单里自己添加一个启动项呗。。。

我的意思是用其他的引导比如Windows的bcd或者 Grub4DOS的grldr,直接引导g2ldr.mbr文件
页: [1] 2 3 4 5
查看完整版本: =====GRUB2_EFI&BIOS双启动=====