有了前面这些铺垫,下面终于要进入到实际引导安装环节了,本来我可以写一堆脚本,一起放入到文件夹,笼统的说一下操作,但是为了让读者深刻理解引导流程,我的无盘安装系列教程采用了循序渐进的方式,一步一步操作来达到目的,包括目前ipxe脚本都没准备,目的就是为了让读者知道脚本该怎么写才能达到我们想要的效果,现在我们需要找一台物理机或者一台虚拟机,我这边的测试机是PVE下的一台虚拟机,配置如下:

建立后我删除了硬盘,网卡选择了e1000,这块网卡能跑满千兆,从群晖读取的时候速度很重要,我局域网环境就是千兆环境,bios选择默认seabios 也就是传统引导方式,选项当中的引导顺序把网卡排第一位,理论上来说我启动这台虚拟机,网卡就会进入PXE环境,PXE从爱快的dhcp服务器自动获取IP以及net-server和启动文件名称是 undionly.kpxe ,从来连接群晖的tftp文件夹中的undionly.kpxe并进入ipxe环境.

看实际引导,事实也是如此,只不过进入ipxe之后不知道该干什么了,我们按ctrl+b进入ipxe命令模式,输入dhcp再次获取到ip地址,为什么要再获取一遍,因为从pxe环境进入ipxe环境,之前的信息全部丢失,包括网卡的ip地址,所以要获取一下ip地址,这样才能和外部联系。这里怎么才能启动pe呢,答案是通过http,ipxe可以执行一个后缀名为.ipxe的脚本,可以通过http形式链式调用,所以我们需要写一个脚本放在http目录下,让ipxe执行。

这个脚本命名为bootPE.ipxe ,脚本内容如下:

#!ipxe

 kernel /PE/wimboot
 initrd /PE/media/Boot/BCD   BCD
 initrd /PE/media/Boot/boot.sdi   boot.sdi
 initrd /PE/media/sources/boot.wim   boot.wim
 boot

将脚本放入www目录下,这个脚本什么意思呢,它的作用是通过wimboot这个内核文件去加载PE映像文件,那iscsi目录谁负责挂载,是PE还是ipxe,PE挂载的话默认有iscsi客户端吗?显然是没有的,但是PE环境下却可以通过命令挂载smb,也就是PE可以挂载win10安装文件顺便执行。但是磁盘需要交给ipxe去挂载,这样在PE环境下安装win10才有磁盘出现。所以在引导PE之前,我们需要先挂载ISCSI磁盘。再定义一个脚本,命名为mountISCSI_bootPE.ipxe

#!ipxe
 sanhook  iscsi:192.168.0.104:::1:iqn.2000-01.com.synology:ipxe.os
 prompt -k 0x197e -t 10000 Press F12 to install Windows... || exit
 chain bootPE.ipxe

将该脚本一并放入www目录下,该脚本的意思是先挂载iscsi 通过sanhook命令挂载,格式如下:

iscsi:群晖ip地址:::1:你建立的iscsi的iqn名称 特别注意中间:::1: 这个数字是根据你IQN的编号来的,具体查看请见下图。

prompt -k 0x197e -t 10000 Press F12 to install Windows... || exit 的意思是按F12进入下一句指令,如果超过10s就退出。

chain bootPE.ipxe 的意思是链式调用刚刚写好的bootPE.ipxe来引导PE系统,因为这两个文件都放在www这个同级目录下,所以可以直接调用,放完以后www目录结构如下:

切回虚拟机命令终端,ipxe此时是已经获取到了ip地址,具备通信能力,下一步是调用http中写好的ipxe脚本,我们通过

 chain http://192.168.0.104:9000/mountISCSI_bootPE.ipxe

来挂载iscsi并且启动PE.

输入命令,挂载引导
提示iscsi硬盘已挂载,按F12进入安装windows的pe
pe引导正常,boot.wim 100%后进入PE

终于进入了熟悉又陌生的PE系统了,陌生是因为它就一个命令窗口,不过对于我们安装系统来说足够了,前面挂载的iscsi在PE中已经可以识别了,我们只要执行win10安装就可以在磁盘目录看到了。

由于win10所有安装文件存放在群晖,群晖通过smb协议给到PE系统,所以我们在PE系统需要挂载SMB盘,要通过命令

net use \\192.168.0.104\public\win10

挂载win10所在目录 输入用户名和密码,会有提示成功信息。

执行win10安装,输入

\\192.168.0.104\public\win10\setup.exe

期待已久的 win10安装界面出现

随便选个版本

这边的磁盘就是群晖的ISCSI磁盘,我们将系统装入主分区,一路下一步,后面的操作没有任何难度了,安装完毕后就重启系统,至此PE安装WIN10到iscsi磁盘结束。

补充:

文中所涉及到的命令请参考IPXE文档 https://ipxe.org/cmd , 我没有将这个安装过程写成自动化的脚本,而是用手动输入来替换,可以让读者更直白的看到整个过程,后面做自动化只要参考ipxe写一个脚本,基本没什么难度,我看到网上很多文章都只是给一堆脚本,让阅读的人不明所以,而我却是一个要知其所以然的人,所以我也想让我的读者可以知其所以然。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注