有了前面这些铺垫,下面终于要进入到实际引导安装环节了,本来我可以写一堆脚本,一起放入到文件夹,笼统的说一下操作,但是为了让读者深刻理解引导流程,我的无盘安装系列教程采用了循序渐进的方式,一步一步操作来达到目的,包括目前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.
终于进入了熟悉又陌生的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写一个脚本,基本没什么难度,我看到网上很多文章都只是给一堆脚本,让阅读的人不明所以,而我却是一个要知其所以然的人,所以我也想让我的读者可以知其所以然。
用实体机怎么弄啊
实体机同样的操作
实体机到pe命令窗口之后,net use命令不通
net use 是挂载smb磁盘,你smb服务搭建好没?
搭建好了的,我找个其他机子用net use都能通,就这个pe的窗口不通
可以加联系方式吗,275079425,拍个视频给你,帮忙看看