admin管理员组文章数量:1531695
2024年7月1日发(作者:)
支持BIOS和uEFI启动的GRUB2引导盘
利用GRUB2启动程序,合并网上优秀资源(感谢原作者)生成一个启动的U盘/光盘。
根目录只有引导所需要的EFI、BOOT二个目录无其它内容,简洁清爽。
各种引用的ISO资源使用原版而没有解包出来,方便管理以及后期维护使用。现共享
相关的内容出来供有需要的朋友参考。
1、包含MAXDOS工具包(仅BIOS引导可用),Windows密码清除/绕过工具;
2、WinPE使用MEMDISK载入ISO镜像(仅BIOS引导时可用;uEFI引导因暂不支持
ISO装载不能使用,如需要可以使用EFIShell方式加载);
3、Parted_Magic、Linux Live CD使用linux/initrd方式载入。
添加LiveCD的一些光盘路径写法(findiso=$isofile、iso_filename=$isofile、
iso-scan/filename=$isofile),核心的引用参数可以参考各linuvCD内的配置文件,然后在配
置文件中加入ISO路径中引用即可。
4、镜像只有基础的引导程序,大家可根据实际需要放置相关文件,如各
种ISO文件WinPE、PartedMagic、Linux liveCD等(注意不支持本身通过MEMDISK加载
的各型PE ISO,例如众多GHOST系统盘中带的一般就是此类),然后修改GRUB2相关配
置菜单即可使用。
关于修改配置菜单,请使用文本编辑器(如:notepad++、UltraEdit)保存为无
签名的UTF8编码,详情参考配置文件。
光盘目录:
+--- /
|+-- /EFI —— GRUB2 uEFI引导文件
|+-- /BOOT/GRUB2 —— GRUB2 配置文件及相关模块
|+-- /BOOT/GRUB2/ —— GRUB2主配置文件
|+-- /BOOT/GRUB2/os_ —— LiveCD及系统安装配置文件
|+-- /BOOT/GRUB2/os_ —— 获取本地硬盘启动项配置文件
|+-- /BOOT/GRUB2/ —— PartedMagic配置文件
|+-- /BOOT/GRUB2/ —— Windows登陆密码工具配置文件
|+-- /BOOT/Tools —— 一些实用小工具软件
|+-- /BOOT/Tools/GrubLDR —— GRUB2引导文件备份
|+-- /SoftWare/ISO —— 各种ISO镜像文件,如:WinPE、PartedMagic、Linux liveCD等。
|+-- /SoftWare/ISO/ —— Parted_Magic_2015_05_04工具箱
|+-- /SoftWare/ISO/ —— WinPE工具盘
|+-- /SoftWare/ISO/***.iso —— CentOS ISO,详情请参见:/
|+-- /SoftWare/ISO/***.iso —— Ubuntu ISO,详情请参见:/
|+-- /SoftWare/Tools —— 各种Windows工具。
__
关于生成USB启动盘
GURB2对U盘启动兼容稍差,在Windows下暂无合适程序灵活创建,但也许与使用的
U盘有关。
下面介绍二种制作方式,完成之后可以随意格式化U盘,仅需要将相关文件保存至相
应目录即可,然后修改相关配置文件路径参数。
注意:以下操作将删除原U盘的所有资料,请保存备份。
方式一:Windows系统下面 UltraISO 制作方式:
1、下载镜像文件,UltraISO打开镜像文件,选择操作:启动——写入硬盘
映像。
注意:写入方式选择“RAW”方式,而非采用UltraISO的引导模式(对GRUB2兼容
不好),以RAW方式可以将镜像文件中完全写入U盘,包括引导记录。
2、此时在资源管理器发现U盘容量只有60M左右,其它空间为不可见状态,不用担心...
3、现复制全部目录文件到硬盘上备用,也可再次从镜像文件提取。
4、使用第三方分区软件(如:DiskGenius)根据需要重新对U盘分区格式化,不能使用
Windows自带的因为不支持对U盘多个主分区。
注意:不要再对U盘MBR进行相关写操作,如果只分一个区要格式化成FAT32格式,
其它选项默认即可。
附:镜像文件链接::/s/1gdtS6Nh 密码: jvuk
方式二:在linux系统操作过程,推荐!
1、准备USB分区:
fdisk -l —— 列出USB设置位置,假设为/dev/sdb。
fdisk /dev/sdb ——创建U盘分区, d(删除分区) > n(创建分区)> a(激活主分区)>w
(保存分区信息)
mkfs -t vfat /dev/sdb1 —— 格式化为FAT分区
mkdir /mnt/usb —— 创建U盘挂载目录。
mount /dev/sdb1 /mnt/usb —— 挂载U盘到/mnt/usb
2、安装GRUB2引导程序到U盘中
grub2-install --modules="biosdisk disk part_msdos part_gpt iso9660 udf fat exfat ext2 halt
reboot" --boot-directory=/mnt/usb/BOOT --target=i386-pc --removable /dev/sdb
grub2-install --modules="disk part_msdos part_gpt iso9660 udf fat exfat ext2 halt reboot"
--boot-directory=/mnt/usb/BOOT --target=x86_64-efi --efi-directory=/mnt/usb --removable
/dev/sdb
或使用如下命令:
grub2-install --boot-directory=/mnt/usb/BOOT --target=i386-pc --removable /dev/sdb
grub2-install --boot-directory=/mnt/usb/BOOT --target=x86_64-efi --efi-directory=/mnt/usb
--removable /dev/sdb
下面介绍启动盘相关信息:
一、GRUB2引导核心中默认模块:
BIOS引导:biosdisk disk part_msdos part_gpt iso9660 udf fat exfat ext2 halt reboot
EFI引导:disk part_msdos part_gpt iso9660 udf fat exfat ext2 halt reboot
其它模块在GRUB2配置文件中加载,模块相关配置Windows下操作示例如下:
1、生成bios启动文件:
1.1、配置BIOS引导核心
E: -d D:UPBOOTGRUB2i386-pc -p
/BOOT/GRUB2 -o D: -O i386-pc biosdisk disk part_msdos
part_gpt iso9660 udf fat exfat ext2 halt reboot
1.2、复制文件
copy /Y /b D: D:
1.3、生成BIOS启动文件
copy /Y /b
D:+D:
D:
2、生成EFI启动文件:
2.1、配置EFI引导核心
E: -d D:UPBOOTGRUB2x86_64-efi -p
/BOOT/GRUB2 -o D: -O x86_64-efi disk part_msdos
part_gpt iso9660 udf fat exfat ext2 halt reboot
2.2、复制到启动目录
copy /Y /b D: D:
2.3、生成EFI启动文件
E: D:
D:UPEFI /i /h /y
3、打包成可引导ISO文件
E: -v -d -N -R -J -boot-info-table -l -relaxed-filenames
-gbk4dos-filenames -gbk4win-filenames -no-emul-boot -boot-load-size 4 -o D:
-hide g -hidden g -hide-joliet g -v -V "MULTIBOOTCD" -b
BOOT/Tools/GrubLDR/ -eltorito-alt-boot -b BOOT/Tools/GrubLDR/
-no-emul-boot D:UP
一些引导菜单示例写法:
5. 添加LiveCD
完整的系统及各种Ports,已经足以满足FreeBSD的维护需求,但对于其他的操作系统,可
能还需要各种LiveCD作为补充。
有别于传统的刻录或dd命令写入方式,这里通过GRUB 2自带的loopback功能,能够非常
容易的实现多个LiveCD共存:只要将LiveCD对应的iso文件置于/media/iso/,然后在
/media/boot/grub/中添加引导菜单即可;而/media/位于FAT32分区,可以在任何系统
下操作。
以下将列出一些常用的LiveCD所对应的引导菜单,未列出的可以在其对应的网站上查询。
对于很多采用Syslinux引导的LiveCD,可能需要将其引导菜单手动转换为GRUB 2引导菜
单。
5.1 独立式LiveCD
1) GParted(分区操作)
menuentry "GParted" {
set root=(hd0,1)
set file="/iso/" 将下载后的iso文件更名为
loopback loop $file
linux (loop)/live/vmlinuz boot=live config union=aufs noswap noprompt ip=frommedia
toram=fs findiso=$file
initrd (loop)/live/
}
这里更名文件的目的在于:新版本的LiveCD发布时,只要下载对应的iso文件并覆盖即可
完成升级,无需再次修改引导菜单。
2) Clonezilla(磁盘镜像与克隆)
menuentry "Clonezilla" {
set root=(hd0,1)
set file="/iso/"
loopback loop $file
linux (loop)/live/vmlinuz boot=live live-config noswap nolocales edd=on nomodeset
ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_keymap=""
ocs_live_batch="no" ocs_lang="" ip=frommedia nosplash toram=fs
findiso=$file
initrd (loop)/live/
}
3) DBAN(数据擦除)
menuentry "DBAN" {
loopback loop (hd0,1)/iso/
linux (loop)/ nuke="dwipe"
}
5.2 集成式LiveCD
1) SystemRescueCd(基于Gentoo Linux)
menuentry "SystemRescueCd" {
set root=(hd0,1)
set file="/iso/"
loopback loop $file
linux (loop)/isolinux/rescue64 isoloop=$file docache setkmap=us dostartx
#linux (loop)/isolinux/altker64 isoloop=$file nomodeset
initrd (loop)/isolinux/
}
2) Parted Magic OS(基于Slackware)
menuentry "PartedMagicOS" {
set root=(hd0,1)
set file="/iso/"
loopback loop $file
linux (loop)/pmagic/bzImage edd=off load_ramdisk=1 prompt_ramdisk=0 rw loglevel=9
max_loop=256 vmalloc=320MiB iso_filename=$file
initrd (loop)/pmagic/
}
6.2 安装Linux
绝大多数Linux发行版都会提供ISO格式的LiveCD,同时支持从LiveCD安装系统;也就
是说,只要通过添加LiveCD一节的方法引导至LiveCD即可。
例如,使用此U盘安装Gentoo Linux时,对应的GRUB 2引导菜单可写作:
menuentry "Install Gentoo" {
set root=(hd0,1)
set file="/iso/" 将下载后的iso文件更名为
loopback loop $file
linux (loop)/isolinux/gentoo root=/dev/ram0 init=/linuxrc dokeymap looptype=squashfs
loop=/fs cdroot initrd= isoboot=$file
initrd (loop)/isolinux/
}
使用此种方式引导个别Linux发行版所提供的LiveCD可能会出现一些问题,需要执行额外
的修正操作。例如,下面的菜单用于引导openSUSEKDE LiveCD:
menuentry "openSUSE KDE LiveCD" {
set root=(hd0,1)
set file="/iso/" 将下载后的iso文件更名为
loopback loop $file
linux (loop)/boot/x86_64/loader/linux kiwidebug=1
initrd (loop)/boot/x86_64/loader/initrd
}
但此菜单仅能引导至LiveCD的的Debug模式(命令行界面),必须继续手动输入以下命令
来引导至图形界面:
# mkdir /livecd/
# mount /dev/sdb1 /mnt/
# mount -o loop /mnt/iso/ /cdrom/
# mount -o loop /mnt/iso/ /livecd/
# exit
6.3 安装Windows
由于GRUB 2并不能直接引导Windows安装所用的iso文件,因此需要使用另外一种方式。
这里假设iso文件名为,目标硬盘为/dev/ada0,以下为具体步骤:
1) 使用独立式LiveCD一节的方法为此U盘添加GParted并引导进入。
2) 使用GParted为/dev/sda(即FreeBSD下的/dev/ada0)创建msdos分区表,然后划分出系
统所在分区并格式化为ntfs,最后将其flag设置为boot。
3) 重启并引导进入U盘上的FreeBSD系统,使用Ports安装p7zip与fusefs-ntfs。
4) 挂载之前创建的Windows系统分区并写入Windows安装文件:
# kldload /usr/local/modules/ 加载ntfs-3g所需的模块
# ntfs-3g /dev/ada0s1 /mnt/ 这里假设之前创建的Windows系统所在分区为
/dev/ada0s1
# 7z x -o{/mnt/} 由于绝大部分Windows安装盘均为UDF格式,因
此无法使用tar解压
...
5) 重启并选择Continue菜单从目标硬盘引导后,即可正常安装Windows。
整个过程中需要注意两点:
之所以使用GParted,是因为在FreeBSD中无法格式化NTFS分区(fusefs-ntfs自带的mkntfs
命令格式化时会卡在99%)。
一旦引导进入了Windows安装环境,系统分区下除sources文件夹外的所有内容均可删除,
而安装完成后sources文件夹也可删除。
版权声明:本文标题:支持BIOS和uEFI启动的GRUB2引导盘 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1719846941a800172.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论