启动windows,
1. 安装tftp服务器
sudo apt install tftpd-hpa
2. 设置tftp,sudo systemctl restart tftpd-hpa
sudo nano /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure --create"
3. 安装dhcp服务器
sudo apt install isc-dhcp-server
4. 设置dhcp服务器的工作网卡
sudo nano /etc/default/isc-dhcp-server
# Defaults for isc-dhcp-server (sourced by /etc/init.d/isc-dhcp-server)
# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf).
#DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
#DHCPDv6_CONF=/etc/dhcp/dhcpd6.conf
# Path to dhcpd's PID file (default: /var/run/dhcpd.pid).
#DHCPDv4_PID=/var/run/dhcpd.pid
#DHCPDv6_PID=/var/run/dhcpd6.pid
# Additional options to start dhcpd with.
# Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead
#OPTIONS=""
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACESv4="ens34"
INTERFACESv6=""
5. 设置dhcp的工作网段,sudo systemctl restart isc-dhcp-server
sudo vi /etc/dhcp/dhcpd.conf
# Global parameter options for the PXE network environment
default-lease-time 600;
max-lease-time 7200;
authoritative;
# Log DHCP actions to the system log (/var/log/syslog)
log-facility local7;
# Subnet profile bound strictly to the 10.10.1.0/24 infrastructure
subnet 10.10.1.0 netmask 255.255.255.0 {
range 10.10.1.10 10.10.1.50; # IP pool reserved for PXE clients
option subnet-mask 255.255.255.0;
option broadcast-address 10.10.1.255;
# Point clients directly to your Ubuntu TFTP service configuration
next-server 10.10.1.100; # Server IP hosting your TFTP files
filename "undionly.kpxe"; # Network boot loader payload filename
}
6. 安装isci targetcli-fb
sudo apt update
sudo apt install -y targetcli-fb
7. 创建一个磁盘文件
sudo mkdir -p /var/iscsi_disks
8. 配置iscsi
# 1. Register the image file into the LIO backend allocator
/backstores/fileio create name=disk01 file_or_dev=/var/iscsi_disks/disk01.img size=6G
# 2. Create your Unique iSCSI Target Name (IQN)
/iscsi create iqn.2026-05.ubuntu.storage:target01
# 3. Create a Logical Unit Number (LUN) mapping the storage block to your IQN
cd /iscsi/iqn.2026-05.ubuntu.storage:target01/tpg1/luns
create /backstores/fileio/disk01
# 4. Define which client is allowed to connect (ACL)
# For testing, map it to the standard iPXE initiator name
cd ../acls
create iqn.2010-04.org.ipxe:initiator
cd /iscsi/iqn.2026-05.ubuntu.storage:target01/tpg1
# Permit any initiator to connect without an explicit ACL entry
set attribute generate_node_acls=1
# Allow write operations for these dynamically created client nodes
set attribute cache_dynamic_acls=1
# Turn off explicit CHAP (username/password) validation mechanisms
set attribute authentication=0
set attribute demo_mode_write_protect=0
cd /
saveconfig
exit
9. 打开防火墙,启动服务
sudo ufw allow to any port 3260 proto tcp
sudo systemctl enable target
sudo systemctl restart target
sudo systemctl status target
10. 编写ipxe脚本,boot.ipxe
#!ipxe
dhcp
sanboot iscsi:10.10.1.100::::iqn.2026-05.ubuntu.storage:target01
11. 下载的编译ipxe
git clone https://github.com/ipxe/ipxe.git
cd ipxe/src
sudo apt install gcc
sudo apt install make
sudo apt install liblzma-dev
make bin-x86_64-pcbios/undionly.kpxe EMBED=boot.ipxe
cp bin-x86_64-pcbios/undionly.kpxe /srv/tftp
11. 在同一个网段启动目标pc, 先使用sanhook和winpe进入系统,分区
DISKPART> list disk
DISKPART> select disk [Your iSCSI Disk Number]
DISKPART> clean
DISKPART> convert mbr
DISKPART> create partition primary
DISKPART> select partition 1
DISKPART> active
DISKPART> format quick fs=ntfs label="WinPE_BIOS"
DISKPART> assign letter=C
DISKPART> exit
12. 安装系统到 C:
dism /Apply-Image /ImageFile:Z:\path\to\boot.wim /Index:1 /ApplyDir:C:\
13. 安装bootloader
bcdboot C:\Windows /s C: /f BIOS
14. 修改注册表msiscsi的设置
reg load HKLM\TARGET_SYSTEM C:\Windows\System32\config\SYSTEM
reg add HKLM\TARGET_SYSTEM\ControlSet001\Services\Ndis /v Start /t REG_DWORD /d 0 /f
reg add HKLM\TARGET_SYSTEM\ControlSet001\Services\msiscsi /v Start /t REG_DWORD /d 0 /f
reg add HKLM\TARGET_SYSTEM\Setup /v "SystemSetupInProgress" /t REG_DWORD /d 1 /f
reg unload HKLM\TARGET_SYSTEM
15. 禁用早段网络
reg load HKLM\TARGET_SYSTEM C:\Windows\System32\config\SYSTEM
:: Add the override parameter to skip standard initialization
reg add HKLM\TARGET_SYSTEM\Setup /v "DisableWpeinitNetwork" /t REG_DWORD /d 1 /f
:: Disable the NDIS lightweight filter driver execution path
reg add HKLM\TARGET_SYSTEM\ControlSet001\Services\NdisWdf /v Start /t REG_DWORD /d 4 /f
reg unload HKLM\TARGET_SYSTEM
16. 修改使用ipxe.pxe作为bootfile
make bin-x86_64-pcbios/ipxe.pxe EMBED=boot.ipxe
cp bin-x86_64-pcbios/ipxe.pxe /srv/tftp
#make bin-x86_64-pcbios/undionly.kpxe EMBED=boot.ipxe
#cp bin-x86_64-pcbios/undionly.kpxe /srv/tftp
17. 修改boot.ipex
#!ipxe
dhcp
set keep-san 1
set net0.dhcp/gateway 0.0.0.0
sanboot --keep iscsi:10.10.1.100::::iqn.2026-05.ubuntu.storage:target01

2096

被折叠的 条评论
为什么被折叠?



