本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn
接上一篇文章Esxi+NAS+Openwrt,这篇文章我们来讲无盘启动
读了上篇文章的童鞋知道我是有NAS的,为了存储管理方便,服务器的硬盘我做了RAID6然后整个给了NAS做数据盘(ESXI直通),ESXI和NAS还有Openwrt的系统都是安装在U盘上的,因此如果我想继续安装其他的虚拟机的话,就必须在NAS上划ISCSI出来,并且需要PXE进行引导。
话说我一开始只知道PXE,后来在b站上看到了一个视频,知道了IPXE这个东西,看了他操作一遍,再结合网上的一堆零碎的教程,终于我自己实现了,这玩意真的是难者不会,会者不难。
简单的理解,IPXE是PXE的加强版
网上有很多介绍,那些专业化的词语我就不说了(也不会说),就简单来说,ISCSI是指在服务器上划出来一个空间(通常用一个文件表示),将此空间以磁盘的形式(注意不是目录)提供给客户端使用。对于客户端而言就仿佛是添加了一块硬盘一样,同样可以进行格式化,分区等操作,毫无问题,并且可以通过在服务器端的修改,动态的扩展和缩小磁盘大小。无盘启动就是将操作系统安装在了ISCSI中。
贴一张网上的图片,个人觉得还是很形象的
下面我们来解答一些疑问
再次启动的话直接选择好ISCSI位置,直接boot就行
#!ipxe
# Variables are specified in boot.ipxe.cfg
# Some menu defaults
# set menu-timeout 0 if no client-specific settings found
isset ${menu-timeout} || set menu-timeout 0
set submenu-timeout ${menu-timeout}
isset ${menu-default} || set menu-default exit
# Figure out if client is 64-bit capable
cpuid --ext 29 && set arch x64 || set arch x86
cpuid --ext 29 && set archl amd64 || set archl i386
###################### SAN,ISCSI SELECTION ##########################
:san-choose
menu Choose the ISCSI target
item ubuntu1 ubuntu1(ipxe.ubuntu1)
item --gap -- ------------------------- Advanced options -------------------------------
item shell Drop to iPXE shell
item reboot Reboot computer
item --key x exit Exit iPXE and continue BIOS boot
choose --timeout ${menu-timeout} --default ${menu-default} selected || goto cancel
set menu-timeout 0
goto ${selected}
:ubuntu1
set iscsi-suffix ipxe.ubuntu1
set iscsi-name ubuntu-18.04-desktop
goto install-boot
####################### Install or Boot #############################
:install-boot
menu Install or direct boot ?
item install install
item boot boot
item custom-back Back to top menu
iseq ${menu-default} install-boot && isset ${submenu-default} && goto menu-install-boot-timed ||
choose selected && goto ${selected} || goto san-choose
:menu-install-boot-timed
choose --timeout ${submenu-timeout} --default ${submenu-default} selected && goto ${selected} || goto san-choose
:boot
echo Booting ${iscsi-name} from iSCSI for ${initiator-iqn}
set root-path ${base-iscsi}:${iscsi-suffix}
set keep-san 1
sanboot ${root-path} || goto failed
goto san-choose
:custom-back
set submenu-timeout 0
clear submenu-default
goto san-choose
###################### Install ######################################
:install
menu The system image(iso)
item ubuntu18.04 Install Ubuntu 18.04 desktop (ubuntu-18.04.1-desktop-amd64)
item custom-back Back to top menu
iseq ${menu-default} install && isset ${submenu-default} && goto menu-cinstall-timed ||
choose selected && goto ${selected} || goto san-choose
:menu-cinstall-timed
choose --timeout ${submenu-timeout} --default ${submenu-default} selected && goto ${selected} || goto san-choose
:ubuntu18.04
echo Starting Ubuntu 18.04 ${archl} installer for ${initiator-iqn}
set root-path ${base-iscsi}:${iscsi-suffix}
set base-url ${sanboot-url}ubuntu
set keep-san 1
sanhook ${root-path} || goto failed
kernel ${base-url}/ubuntu-18.04.1-desktop-amd64/install/netboot/ubuntu-installer/amd64/linux
initrd ${base-url}/ubuntu-18.04.1-desktop-amd64/install/netboot/ubuntu-installer/amd64/initrd.gz
imgargs linux auto=true DEBCONF_DEBUG=5 partman-iscsi/login/address=${iscsi-server} partman-iscsi/login/targets=${base-iqn}:${iscsi-suffix}
boot || goto failed
goto san-choose
目前暂时只实现了Ubuntu的,根据IPXE的官网,Linux系统与Ubuntu类似,FreeBSD应该也没问题,Windows系统需要用WinPE(微软官方的PE制作工具)
用了一个新的方法做WinPE,做完了然后我就没测试了,搞的太累了不想折腾。Unix like蛮好的,反正咱不缺Windows主机
本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn
接上一篇文章Esxi+NAS+Openwrt,这篇文章我们来讲无盘启动
读了上篇文章的童鞋知道我是有NAS的,为了存储管理方便,服务器的硬盘我做了RAID6然后整个给了NAS做数据盘(ESXI直通),ESXI和NAS还有Openwrt的系统都是安装在U盘上的,因此如果我想继续安装其他的虚拟机的话,就必须在NAS上划ISCSI出来,并且需要PXE进行引导。
话说我一开始只知道PXE,后来在b站上看到了一个视频,知道了IPXE这个东西,看了他操作一遍,再结合网上的一堆零碎的教程,终于我自己实现了,这玩意真的是难者不会,会者不难。
简单的理解,IPXE是PXE的加强版
网上有很多介绍,那些专业化的词语我就不说了(也不会说),就简单来说,ISCSI是指在服务器上划出来一个空间(通常用一个文件表示),将此空间以磁盘的形式(注意不是目录)提供给客户端使用。对于客户端而言就仿佛是添加了一块硬盘一样,同样可以进行格式化,分区等操作,毫无问题,并且可以通过在服务器端的修改,动态的扩展和缩小磁盘大小。无盘启动就是将操作系统安装在了ISCSI中。
贴一张网上的图片,个人觉得还是很形象的
下面我们来解答一些疑问
再次启动的话直接选择好ISCSI位置,直接boot就行
#!ipxe
# Variables are specified in boot.ipxe.cfg
# Some menu defaults
# set menu-timeout 0 if no client-specific settings found
isset ${menu-timeout} || set menu-timeout 0
set submenu-timeout ${menu-timeout}
isset ${menu-default} || set menu-default exit
# Figure out if client is 64-bit capable
cpuid --ext 29 && set arch x64 || set arch x86
cpuid --ext 29 && set archl amd64 || set archl i386
###################### SAN,ISCSI SELECTION ##########################
:san-choose
menu Choose the ISCSI target
item ubuntu1 ubuntu1(ipxe.ubuntu1)
item --gap -- ------------------------- Advanced options -------------------------------
item shell Drop to iPXE shell
item reboot Reboot computer
item --key x exit Exit iPXE and continue BIOS boot
choose --timeout ${menu-timeout} --default ${menu-default} selected || goto cancel
set menu-timeout 0
goto ${selected}
:ubuntu1
set iscsi-suffix ipxe.ubuntu1
set iscsi-name ubuntu-18.04-desktop
goto install-boot
####################### Install or Boot #############################
:install-boot
menu Install or direct boot ?
item install install
item boot boot
item custom-back Back to top menu
iseq ${menu-default} install-boot && isset ${submenu-default} && goto menu-install-boot-timed ||
choose selected && goto ${selected} || goto san-choose
:menu-install-boot-timed
choose --timeout ${submenu-timeout} --default ${submenu-default} selected && goto ${selected} || goto san-choose
:boot
echo Booting ${iscsi-name} from iSCSI for ${initiator-iqn}
set root-path ${base-iscsi}:${iscsi-suffix}
set keep-san 1
sanboot ${root-path} || goto failed
goto san-choose
:custom-back
set submenu-timeout 0
clear submenu-default
goto san-choose
###################### Install ######################################
:install
menu The system image(iso)
item ubuntu18.04 Install Ubuntu 18.04 desktop (ubuntu-18.04.1-desktop-amd64)
item custom-back Back to top menu
iseq ${menu-default} install && isset ${submenu-default} && goto menu-cinstall-timed ||
choose selected && goto ${selected} || goto san-choose
:menu-cinstall-timed
choose --timeout ${submenu-timeout} --default ${submenu-default} selected && goto ${selected} || goto san-choose
:ubuntu18.04
echo Starting Ubuntu 18.04 ${archl} installer for ${initiator-iqn}
set root-path ${base-iscsi}:${iscsi-suffix}
set base-url ${sanboot-url}ubuntu
set keep-san 1
sanhook ${root-path} || goto failed
kernel ${base-url}/ubuntu-18.04.1-desktop-amd64/install/netboot/ubuntu-installer/amd64/linux
initrd ${base-url}/ubuntu-18.04.1-desktop-amd64/install/netboot/ubuntu-installer/amd64/initrd.gz
imgargs linux auto=true DEBCONF_DEBUG=5 partman-iscsi/login/address=${iscsi-server} partman-iscsi/login/targets=${base-iqn}:${iscsi-suffix}
boot || goto failed
goto san-choose
目前暂时只实现了Ubuntu的,根据IPXE的官网,Linux系统与Ubuntu类似,FreeBSD应该也没问题,Windows系统需要用WinPE(微软官方的PE制作工具)
用了一个新的方法做WinPE,做完了然后我就没测试了,搞的太累了不想折腾。Unix like蛮好的,反正咱不缺Windows主机