今天玩点花活儿,之前的文章再探从VHD文件中启动Windows 及Grub双启动VHD文件 Tiny Core Linux 中研了一下Grub和VHD文件的关联应用,那么结合PXE又会是怎么样的呢?

首先,得配置一下PXE服务器吧,Windows上最好用的就是Tiny PXE Server了:

pxe启动pe详细步骤(从PXE到GRUB到VHD文件启动)(1)

Tiny PXE Server

因我是BIOS固件(即不是UEFI固件),Filename里填上grub.img。又因为我使用的是grub 2.06,参照Tiny PXE Server的files/grub目录下grub2-readme.txt所述,拷贝grub 2.06相关文件到该目录下,使用make-grub-pxe.cmd制作grub.img,制作完毕后,把grub.img拷贝到Tiny PXE根目录下。

pxe启动pe详细步骤(从PXE到GRUB到VHD文件启动)(2)

准备GRUB环境

然后设置VMware从网卡启动:

pxe启动pe详细步骤(从PXE到GRUB到VHD文件启动)(3)

设置首选启动项是网卡

然后,按之前文章一样配置grub.cfg

set timeout=15 set default=0 # Set the default menu entry menuentry "Boot from VHD File" { set root=(hd0,1) probe -s dev_uuid -u (hd0,1); if [ "${grub_platform}" = "efi" ]; then chainloader /ntloader initrd=/initrd.lz1 uuid=${dev_uuid} file=/inner_win10.vhdx; else parttool hd0,1 hidden boot- linux16 /ntloader uuid=${dev_uuid} file=/inner_win10.vhdx; initrd16 /initrd.lz1; fi; } menuentry "Boot from Tiny Core Linux" { set root=(hd0,1) linux /vmlinuz my_ip=192.168.1.1 initrd /core.gz }

这样,虚拟机启动后自动进入Grub选单,可以随意选择你想进入的系统了。

注意:默认make-grub-pxe.cmd生成的grub.img是没有加载硬盘功能的,因此不能切换到硬盘启动,如果想用系统固件加载硬盘,注意把acpi、biosdisk模块包含进去,或在选单里使用insmod调用它们。

,