欢迎光临!
若无相欠,怎会相见

使用grub2制作多重启动盘(下)

接着昨天

链接地址:使用grub2制作多重启动盘(上)

上一篇文章写到了,安装传统BIOS启动,昨天有点遗漏,需要注意的是,我写的--boot-directory=h:\boot\bios ,这里的h: 是我的U盘在这台电脑上的实际盘符。那么接下来开始支持efi 的grub2的安装。

64位efi

注意,使用管理员权限打开命令行,使用cd命令到grub目录下,然后输入命令如下:

grub-install.exe --removable --target=x86_64-efi --efi-directory=h: --boot-directory=h:\boot --bootloader-id=Grub --modules="part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal search_fs_file"

只要后面没有报错,一般来说就成功了。h:是我的U盘的实际盘符。

我这个是已经做成功的,grub.cfg是自己创建的,名字必须是这个。同时在efi/boot 命令下生成BOOTX64.EFI文件。

32位efi

同样,执行命令就可以安装32位efi:

grub-install.exe --removable --target=i386-efi --efi-directory=h: --boot-directory=h:\boot --bootloader-id=Grub --modules="part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal search_fs_file"

上图中的i386-efi 就是。

同时在efi/boot 下生成2个文件,即:BOOTIA32.EFI和grub.efi。

其他

根据以上步骤,已经完成整个步骤的80%,接下来还需要几个文件。

  1. 在U盘 boot/bios/grub/ 目录下面创建grub.cfg文件, 这个就是到时候传统bios启动时的配置文件。
  2. 在U盘 boot/grub/ 目录下面创建grub.cfg文件,这个是UEFI启动时加载的配置文件。
  3. 将grub-2.02-for-windows目录下面的unicode.pf2复制到U盘的boot/bios/grub/fontsboot/grub/fonts 目录下。这个是字体文件。
  4. grub-2.02-for-windows/locale/zh_CN 目录下面的grub.mo文件复制到boot/bios/grub/localeboot\grub\locale 目录下,并改名为zh_CN.mo

grub.cfg

由于我也不是太熟悉grub的一些语法,我就把我的支持efi启动的,也就是boot/grub/ 目录下的grub.cfg文件贴出来。它可以正常启动Fedora的LiveCD映像,因为我已经重新安装Fedora系统了,并且开始搞项目了。建议grub.cfg文件用VS code打开,因为有语法高亮,其他的如sublime,notepad++没有高亮。

#默认启动第一个菜单项
set default=0
#如果第一个菜单项启动失败,转而启动第二个菜单项
set fallback=1
#优先使用最常规的1024x768分辨率,以保证在不同的屏幕上拥有一致的菜单效果,如果失败再自动匹配分辨率
set gfxmode=1024x768,auto
#将GRUB2设置为简体中文界面
set locale_dir=/boot/grub/locale
set lang=zh_CN
#每一满屏后暂停输出,以免信息太多一闪而过看不清
set pager=1
#设置菜单的超时时间为10秒
set timeout=10

#两种最流行的磁盘分区格式
insmod part_gpt
insmod part_msdos
#常见文件系统驱动
insmod btrfs
insmod exfat
insmod ext2
insmod fat
insmod iso9660
insmod jfs
insmod ntfs
insmod reiserfs
insmod udf
insmod xfs
insmod zfs
#一次性加载所有可用的视频驱动
insmod all_video
#图形模式终端
insmod gfxterm
#背景图片支持
insmod png

#激活图形模式的输出终端,以允许使用中文和背景图
terminal_output  gfxterm

#加载unicode字体
loadfont /boot/grub/fonts/unicode.pf2

#设置背景图片
background_image /boot/16.png

#颜色
set color_normal=white/black
set color_highlight=white/cyan

set USBUUID="64ED-EC79"

if search --file --set --no-floppy /iso/LiveCD/Fedora-MATE_Compiz-Live-x86_64-27-1.6.iso ; then
    menuentry 'Fedora 27 MATE LiveCD'{
        loopback loop0 /iso/LiveCD/Fedora-MATE_Compiz-Live-x86_64-27-1.6.iso
        linux  (loop0)/isolinux/vmlinuz rd.live.image root=live:CDLABEL=Fedora-MATE-Live-27-1-6 iso-scan/filename=/iso/LiveCD/Fedora-MATE_Compiz-Live-x86_64-27-1.6.iso   rootwait locale.LANG=zh_CN.utf8 inst.lang=zh_CN.UTF-8
        initrd (loop0)/isolinux/initrd.img
    }
fi

if search --file --set --no-floppy /iso/LiveCD/Fedora-KDE-Live-x86_64-27-1.6.iso ; then
    menuentry 'Fedora 27 KDE LiveCD'{
        loopback loop0 /iso/LiveCD/Fedora-KDE-Live-x86_64-27-1.6.iso
        linux  (loop0)/isolinux/vmlinuz rd.live.image root=live:CDLABEL=Fedora-KDE-Live-27-1-6 iso-scan/filename=/iso/LiveCD/Fedora-KDE-Live-x86_64-27-1.6.iso   rootwait locale.LANG=zh_CN.utf8 inst.lang=zh_CN.UTF-8
        initrd (loop0)/isolinux/initrd.img
    }
fi

menuentry "Archlinux-2018.01.01 install ISO" {
    set isofile="/ISO/DVD/archlinux-2018.01.01-x86_64.iso"
    if cpuid; then 
        set cputype="x86_64"; 
    else set cputype="i686"; 
    fi
    loopback loop0 $isofile
    linux (loop0)/arch/boot/$cputype/vmlinuz archisolabel=ARCH_201801 img_dev=$imgdevpath img_loop=$isofile earlymodules=loop
    initrd (loop0)/arch/boot/$cputype/archiso.img
}
#注意:这个启动PE的选项只能在传统BIOS启动时有效
menuentry 'Boot WePE_64_V2 ISO'{
    insmod linux16
    search --no-floppy --fs-uuid --set=root ${USBUUID}
    linux16 /boot/MEMDISK iso raw
    echo 'Loading WINPE ISO...'
    initrd16 /ISO/WinPE/WePE_64_V2.0.iso
}

menuentry "启动第一存储器主引导记录 " {
    set root=(hd0)
    chainloader +1
}
menuentry "启动第二存储器主引导记录 " {
    set root=(hd1)
    chainloader +1
}
menuentry "重启"{
    reboot
}
menuentry "关机"{
    halt
}

其中两个Fedora选项是没有错的,archlinux的选项我不确定。

相关下载

我把Qemu启动测试器的源代码也附上,这个软件是无忧论坛的一名大神开发的。

Qemu启动测试器.zip: https://liangz.ctfile.com/fs/15717665-234687492

Q启动测试器Final源码.zip: https://liangz.ctfile.com/fs/15717665-234687506

bootice_2013.1.3.3.zip: https://liangz.ctfile.com/fs/15717665-234687536

如有错误,敬请指出,感谢阅读!   —2018-01-22  14:49:23

赞(0) 打赏
转载请注明:飘零博客 » 使用grub2制作多重启动盘(下)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

欢迎光临