使用dnsmasq从网络PXE引导安装Arch/Debian/Suse Linux系统
一、网络安装Arch Linux
1.服务器环境
Linux Mint 19.1 Tessa
笔记本电脑直接运行Linux。
4. 准备安装环境
1). 安装软件dnsmasq
$ sudo -s
# apt-get install dnsmasq
2). 安装httpd
$ cd /usr/src
$ wget https://fossies.org/linux/www/darkhttpd-1.12.tar.gz
$ tar -zxvf darkhttpd-1.12.tar.gz
$ cd darkhttpd-1.12/
$ make
$ sudo ln -s `pwd`/darkhttpd /usr/bin/
3). 登录局域网的路由器,关闭DHCP功能。
4). 挂载iso文件
$ cd /media/xy/DataSoft/download/iso
$ sudo mount -o loop,ro archlinux-2019.05.02-x86_64.iso /mnt/archiso
安装iso文件直接支持网络启动。
检查主要启动文件
$ cd /mnt/archiso
$ ll arch/boot/syslinux/archiso.cfg
-rw-r--r-- 1 root root 195 5月 2 23:51 arch/boot/syslinux/archiso.cfg
$ ll arch/boot/syslinux/lpxelinux.0
-rw-r--r-- 1 root root 74751 5月 2 23:51 arch/boot/syslinux/lpxelinux.0
5). 配置并验证dhcp功能
采用无线网卡,ip ad确认网卡名为wlp7s0,地址段为192.168.199.x,网卡信息:
$ ip addr
...
3: wlp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 4c:34:88:20:f9:b8 brd ff:ff:ff:ff:ff:ff
inet 192.168.199.126/24 brd 192.168.199.255 scope global dynamic noprefixroute wlp7s0
$ sudo vi /etc/dnsmasq.conf
port=0
interface=wlp7s0
bind-interfaces
dhcp-range=192.168.199.50,192.168.199.80,12h
dhcp-boot=/arch/boot/syslinux/lpxelinux.0
dhcp-option-force=209,boot/syslinux/archiso.cfg
dhcp-option-force=210,/arch/
dhcp-option-force=66,192.168.199.126
enable-tftp
tftp-root=/mnt/archiso
启动dnsmasq并检查启动正常
$ sudo systemctl start dnsmasq
$ sudo systemctl status dnsmasq
● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2019-05-12 07:58:46 CST; 1h 59min ago
$ sudo darkhttpd /mnt/archiso # 启动darkhttpd
darkhttpd/1.12, copyright (c) 2003-2016 Emil Mikulic.
listening on: http://0.0.0.0:80/
5. 安装验证
新开shell窗口,检查dhcp及tftp日志
$ journalctl -u dnsmasq -f
客户端电脑(atom D525 CPU的古董机器)设置为PXE启动,重启电脑,无日志更新。
把服务器的wifi关闭,用有线网卡启动,静态IP地址
重新修改了配置文件,接口和对应IP地址,其他未修改。
interface=enp6s0
dhcp-option-force=66,192.168.199.128
$ tail /etc/dnsmasq.conf #完整配置
port=0
interface=enp6s0
bind-interfaces
dhcp-range=192.168.199.50,192.168.199.80,12h
dhcp-boot=/arch/boot/syslinux/lpxelinux.0
dhcp-option-force=209,boot/syslinux/archiso.cfg
dhcp-option-force=210,/arch/
dhcp-option-force=66,192.168.199.128
enable-tftp
tftp-root=/mnt/archiso
$ sudo systemctl restart dnsmasq
客户端电脑启动进入WinXP系统进行测试,禁用启用网卡能够正常获取到IP地址,服务器也打印日志
5月 12 10:16:44 xydpc dnsmasq-dhcp[12049]: DHCPOFFER(enp6s0) 192.168.199.62 00:0e:c4:ca:06:bb
重启电脑,出现带图片的启动界面,和iso光盘启动相同。
服务器有些报错,但不影响:
5月 12 10:19:43 xydpc dnsmasq-dhcp[12049]: DHCPDISCOVER(enp6s0) 00:0e:c4:ca:06:bb
5月 12 10:19:43 xydpc dnsmasq-dhcp[12049]: DHCPOFFER(enp6s0) 192.168.199.62 00:0e:c4:ca:06:bb
5月 12 10:19:47 xydpc dnsmasq-dhcp[12049]: DHCPREQUEST(enp6s0) 192.168.199.62 00:0e:c4:ca:06:bb
5月 12 10:19:47 xydpc dnsmasq-dhcp[12049]: DHCPACK(enp6s0) 192.168.199.62 00:0e:c4:ca:06:bb
5月 12 10:19:47 xydpc dnsmasq-tftp[12049]: error 0 TFTP Aborted received from 192.168.199.62
5月 12 10:19:47 xydpc dnsmasq-tftp[12049]: failed sending /mnt/archiso/arch/boot/syslinux/lpxelinux.0 to 192.168.199.62
5月 12 10:19:47 xydpc dnsmasq-tftp[12049]: sent /mnt/archiso/arch/boot/syslinux/lpxelinux.0 to 192.168.199.62
5月 12 10:19:48 xydpc dnsmasq-tftp[12049]: 没找到文件 /mnt/archiso/arch/ldlinux.c32
5月 12 10:19:48 xydpc dnsmasq-tftp[12049]: 没找到文件 /mnt/archiso/arch//boot/isolinux/ldlinux.c32
5月 12 10:19:48 xydpc dnsmasq-tftp[12049]: 没找到文件 /mnt/archiso/arch//isolinux/ldlinux.c32
5月 12 10:19:48 xydpc dnsmasq-tftp[12049]: 没找到文件 /mnt/archiso/arch//boot/syslinuxldlinux.c32
选择第3项 Boot Arch Linux (x86_64) (HTTP)
提示vmlinuz等文件下载成功
5月 12 10:25:55 xydpc dnsmasq-tftp[12049]: sent /mnt/archiso/arch/boot/x86_64/vmlinuz to 192.168.199.62
5月 12 10:25:56 xydpc dnsmasq-tftp[12049]: sent /mnt/archiso/arch/boot/intel_ucode.img to 192.168.199.62
5月 12 10:25:56 xydpc dnsmasq-tftp[12049]: sent /mnt/archiso/arch/boot/amd_ucode.img to 192.168.199.62
5月 12 10:26:05 xydpc dnsmasq-tftp[12049]: sent /mnt/archiso/arch/boot/x86_64/archiso.img to 192.168.199.62
客户端出现报错:
:: running hook [archiso_pxe_http]
:: running hook [archiso_pxe_nfs]
:: Mounting '192.168.199.128:/run/archiso/bootmnt'
connect: Connection refused
read: Connection refused
......
NFS over TCP not available from 192.168.199.128
ERROR: Mounting '192.168.199.128:/run/archiso/bootmnt'
...
[rootfs ]#
应该是自己选择错误了: 第2项 Boot Arch Linux (x86_64) (NFS)
再次重启,选HTTP,正常下载文件
:: Downloading ‘http://192.168.199.128/arch/x86_64/airrootfs.sfs’
该文件496M,客户端还显示进度百分比,速度11.2M
但随后死机
RIP: 0010:PANIC+0x261/0x2a7
…
Code: Bad RIP value.
看起来是kernel内核错误,无解。
6. 更换安装iso重新引导
重新下载一个较老一点的安装包
$ curl -O http://mirrors.163.com/archlinux/iso/archboot/2018.06/archlinux-2018.06-1-archboot-network.iso
这是包里没有启动映像
$ fg
sudo darkhttpd /mnt/archiso (wd: /mnt/archiso)
^C
$ sudo umount /mnt/archiso
$ sudo mount -o loop,ro /media/xy/DataSoft/download/iso/archlinux-2018.06-1-archboot-network.iso /mnt/archiso
$ sudo systemctl stop dnsmasq
$ sudo vi /etc/dnsmasq.conf
修改了接口和相关IP地址,路径未修改,保持和指导文档相同
$ tail /etc/dnsmasq.conf
port=0
interface=enp6s0
bind-interfaces
dhcp-range=192.168.199.50,192.168.199.80,12h
dhcp-boot=/boot/syslinux/lpxelinux.0
dhcp-option-force=209,syslinux/syslinux.cfg
dhcp-option-force=210,/boot/
dhcp-option-force=66,192.168.199.128
enable-tftp
tftp-root=/mnt/archiso
$ sudo -s
启动失败
root@xydpc:/mnt/archiso# systemctl start dnsmasq
Job for dnsmasq.service failed because the control process exited with error code.
See "systemctl status dnsmasq.service" and "journalctl -xe" for details.
root@xydpc:/mnt/archiso# systemctl status dnsmasq.service
...
5月 12 11:36:42 xydpc dnsmasq[13390]: dnsmasq: TFTP directory /mnt/archiso inaccessible: 权限不够
5月 12 11:36:42 xydpc dnsmasq[13390]: TFTP directory /mnt/archiso inaccessible: 权限不够
5月 12 11:36:42 xydpc dnsmasq[13390]: 启动失败
5月 12 11:36:42 xydpc systemd[1]: dnsmasq.servi
root@xydpc:/mnt/archiso# chmod 777 /mnt/archiso
chmod: 更改'/mnt/archiso' 的权限: 只读文件系统
drwx------ 1 root root 2048 6月 24 2018 archiso/
反复测试发现是该iso文件本身的问题
-rwxrwxrwx 1 xy xy 414187520 5月 12 11:10 /media/xy/DataSoft/download/iso/archlinux-2018.06-1-archboot-network.iso*
先挂载到临时目录下拷贝过来
sudo mount /media/xy/DataSoft/download/iso/archlinux-2018.06-1-archboot-network.iso /mnt/tmp
xy@xydpc:~$ sudo cp -rp /mnt/tmp/* /mnt/archiso
cp: 无法获取'/mnt/tmp/*' 的文件状态(stat): 没有那个文件或目录
xy@xydpc:~$ sudo -s
root@xydpc:~# cp -rp /mnt/tmp/* /mnt/archiso
root@xydpc:/mnt# exit
exit
xy@xydpc:~$ sudo systemctl start dnsmasq
xy@xydpc:~$
xy用户还是无法访问/mnt/archiso
$ sudo darkhttpd /mnt/archiso
引导出现启动菜单,并无安装项。由于并未安装arch linux,只能尝试引导已有的winXP,启动正常。
再次折腾
http://mirror.lzu.edu.cn/archlinux/iso/
Index of /archlinux/iso/
../
2019.03.01/ 01-Mar-2019 16:06 -
2019.04.01/ 01-Apr-2019 15:42 -
2019.05.02/ 02-May-2019 16:00 -
archboot/ 25-Jun-2018 05:47 -
latest/ 02-May-2019 16:00 -
curl -O http://mirror.lzu.edu.cn/archlinux/iso/2019.03.01/archlinux-2019.03.01-x86_64.iso
查看租约
cat /var/lib/misc/dnsmasq.leases
二、网络安装Debian9
1. 服务器环境
Linux Mint 19.1 Tessa
笔记本电脑直接运行Linux。
软件dnsmasq
不需要启动http服务,直接使用Internet的镜像网站进行在线安装。
2. 准备安装环境
1). 准备网络引导软件
xy@xydpc:~/debian_netboot$ echo ~
/home/xy
xy@xydpc:~$ mkdir debian_netboot
xy@xydpc:~$ cd ~/debian_netboot/
xy@xydpc:~/debian_netboot$ wget http://mirror.lzu.edu.cn/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz
xy@xydpc:~/debian_netboot$ tar -zxvf netboot.tar.gz
xy@xydpc:~/debian_netboot$ ll
总用量 29316
drwxrwxr-x 3 xy xy 4096 4月 24 09:32 ./
drwxr-xr-x 46 xy xy 4096 5月 12 20:33 ../
drwxrwxr-x 3 xy xy 4096 4月 24 09:32 debian-installer/
lrwxrwxrwx 1 xy xy 47 4月 24 09:32 ldlinux.c32 -> debian-installer/amd64/boot-screens/ldlinux.c32
-rw-rw-r-- 1 xy xy 29992072 4月 24 09:32 netboot.tar.gz
lrwxrwxrwx 1 xy xy 33 4月 24 09:32 pxelinux.0 -> debian-installer/amd64/pxelinux.0
lrwxrwxrwx 1 xy xy 35 4月 24 09:32 pxelinux.cfg -> debian-installer/amd64/pxelinux.cfg/
-rw-rw-r-- 1 xy xy 62 4月 24 09:32 version.info
2). 登录局域网的路由器,关闭DHCP功能。
3). 配置dhcp和tftp服务
xy@xydpc:~/debian_netboot$ sudo vi /etc/dnsmasq.conf
port=0
interface=enp6s0
bind-interfaces
dhcp-range=192.168.199.50,192.168.199.80,12h
dhcp-boot=/pxelinux.0
#dhcp-option-force=209,/debian-installer/amd64/boot-screens/syslinux.cfg
#dhcp-option-force=210,/
dhcp-option-force=66,192.168.199.1
enable-tftp
tftp-root=/home/xy/debian_netboot
root@xydpc:~# systemctl restart dnsmasq
root@xydpc:~# journalctl -u dnsmasq -f
3. 安装验证
重启电脑,出现引导菜单
Debian GUN/Linux installer boot menu
Install
Advanced options
Help
选择Install
正常进入安装界面,在配置NameServer(DNS)之后
按键Ctrl+Alt+F2进去修改一下默认网关
ip route 查看网关
ip route delete default
ip route add default 192.168.199.1
按键Ctrl+Alt+F1继续安装
选择mirror of the Debian archive时选择China,选择mirror.lzu.edu.cn,(第一次选择mirrors.ustc.edu.cn在base system卡在6%)这里表示从网络直接下载安装。
分区时先选择Manual,选择预留的空闲Free分区,Automatically partition ehe free space,不划分home等分区(第一个选项),自动划分了/和swap分区(和内存大小相同),Finish.
Software选择了Debian Desktop environment,Xfce,SSH server, standard system utilities
安装完成后,修改为从硬盘启动,独立启动正常,Xfce图形界面非常精简,包含了大量软件,包LibOffice5软件等,CPU和内存占用低,运行比较流畅。
补充:dhcp优化
在/etc/dnsmasq.conf增加配置并重启
dhcp-option-force=3,192.168.199.1
dhcp-option-force=6,192.168.199.1
xy@xydpc:~$ dnsmasq --help dhcp #参考帮助
Known DHCP options:
1 netmask
2 time-offset
3 router
6 dns-server
配置网关和DNS之后,手机连接可以正常上网了。也就是说,在安装时不需要切换去修改网关了。
三、网络安装Suse/SLES Linux
1、安装环境及基本软件
利用虚拟机的Arch Linux新安装dnsmasq服务器,第一块网卡采用nat方式,第二块网卡采用Host-Only方式。
并新建虚拟机,采用网络安装suse linux 11sp3
1)dhcp和tftp服务器软件dnsmasq
[root@xyarch etc]# uname -r
5.0.13-arch1-1-ARCH
[root@xyarch ~]# pacman -S dnsmasq
[root@xyarch ~]# pacman -Q dnsmasq
dnsmasq 2.80-3
Host-Only网卡信息
[root@xyarch ~]# ip addr show enp0s8
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:b3:d4:aa brd ff:ff:ff:ff:ff:ff
inet 192.168.56.7/24 brd 192.168.56.255 scope global noprefixroute enp0s8
关闭虚拟机的DHCP服务器
2)测试网络互通:
开启另外一台虚拟机ubuntu18,可以ping 192.168.56.7正常。
virtualBox–管理–主机网络管理器–DHCP服务器–启用服务器,去掉勾v
reboot重启虚拟机ubuntu18,shutdown关闭虚拟机再从virtualBox启动,ip addr仍然可以获取地址。
virtualBox–管理–主机网络管理器–DHCP服务器–自动配置网卡,有一个感叹号,选择手动配置网卡,应用报错;
在物理机的控制面板\网络和 Internet\网络连接\VirtualBox Host-Only Network,为网卡收到配置IP地址,应用成功。仍然可以获取地址。
完全关闭Oracle VM VirtualBox,虚拟机ubuntu18不能获取IP地址了,shutdown。
重启arch,dhcpcd,nat网卡可以获取IP,但Host-Only无法获取IP,OK。
补充: # dhcpcd -k可以释放IP地址
配置静态IP地址
https://wiki.archlinux.org/index.php/Network_configuration_(简体中文)
临时配置一个
# ip addr add 192.168.56.200/24 dev enp0s8
3)准备安装文件
准备安装光盘,SLES11_SP3_X86_64.iso,挂载到F盘。
光盘缺少 pxelinux.0和ldlinux.c32,直接使用debian的
[root@xyarch tmp]# curl -O http://mirror.lzu.edu.cn/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz
将上面2个文件,以及
F:\boot\x86_64\loader下的linux和initrd
拷贝到 /home/xy/netboot/
[root@xyarch netboot]# mkdir pxelinux.cfg
[root@xyarch netboot]# vi pxelinux.cfg/default
#参考F:\boot\x86_64\loader\isolinux.cfg,只保留如下配置
default install
label install
kernel linux
append initrd=initrd splash=silent showopts
增加install参数,修改后为
append initrd=initrd install=ftp://192.168.56.1/suse splash=silent showopts
最后的文件列表
[root@xyarch netboot]# ll
-rw-r--r-- 1 root root 35868917 May 14 17:23 initrd
-rw-r--r-- 1 root root 116552 Apr 24 09:32 ldlinux.c32
-rw-r--r-- 1 root root 3941312 May 14 22:33 linux
-rw-r--r-- 1 root root 42058 Apr 24 09:32 pxelinux.0
drwxr-xr-x 2 root root 4096 May 14 22:01 pxelinux.cfg
[root@xyarch netboot]# ll pxelinux.cfg/
-rw-r--r-- 1 root root 706 May 14 21:55 default
此时在PC机物理机上(192.168.56.1)配置3CDaemon软件,允许匿名anonymous访问帐户,允许登录和下载,启动FTP服务,指定目录为F:\。
[root@xyarch netboot]# ftp 192.168.56.1
输入anonymous用户和任意密码,pwd或者ls命令执行正常。
4) 配置新的DHCP服务
[root@xyarch ~]# grep -v ^# /etc/dnsmasq.conf #默认仍然是无任何配置
[root@xyarch ~]# vi /etc/dnsmasq.conf #新增如下配置
port=0
interface=enp0s8
bind-interfaces
dhcp-range=192.168.56.50,192.168.56.80,12h
dhcp-boot=/pxelinux.0
dhcp-option-force=66,192.168.56.200 #66 tftp-server
enable-tftp
tftp-root=/home/xy/netboot
[root@xyarch ~]# systemctl start dnsmasq
5) 安装验证及找不到安装源问题
新建虚拟机,只保留一块Host-Only的网卡,设置为从网络启动,可以获取到IP地址,进入引导菜单。
[root@xyarch amd64]# journalctl -u dnsmasq -f
如果缺少文件,可以从这里的日志看出缺少的文件及路径。
选择Install,提示找不到安装源no repository found,但有命令行安装界面,多次选择后
(a) 选择FTP安装
在PC机关闭防火墙后,TFTP、FTP都可以开始自动下载文件,随后仍然提示no repository found。
在虚拟机窗口可以按 Ctrl+Alt+F3或者F4窗口查看详细日志,在F3窗口可以看到
下面的报错全手工敲键盘
loading ftp://192.168.56.1/boot/x86_64/root -> /download/file_0002 #手工测试确实可以mount
sha1 …
sha1 ok
mount /download/file_0002 --> /mounts/mp_0001
mount: /download/file_0002: we need a loop device
mount: using /dev/loop1
loading ftp://192.168.56.1/boot/x86_64/cracklib-dict-full.rpm -> /download/file_0003
sha1 …
sha1 ok
mount /download/file_0003 --> /mounts/mp_0002
/download/file_0003 -> /download/file_0003:converting to squashfs
sh: line 1: 1254 Killed mksquashfs /mounts/mp0002 /download/file_0003 -noappend -no-progress > /dev/null
mount: mksquashfs failed
instsys mount failed: /mounts/mp_0002
disk: mount ok but test failed
url mount: ftp://192.168.56.1/?device=eth0 failed
repository: not found
no SUSE Linux Enterprise Server 11 repository found
Automatic setup not possibile.
(b) http安装
修改为http安装,
临时安装make和gcc便于编译安装darkhttpd。
[root@xyarch netboot]# mount /dev/sr0 /mnt
改用http
[root@xyarch netboot]# cd /usr/src
[root@xyarch src]# curl -O https://fossies.org/linux/www/darkhttpd-1.12.tar.gz
[root@xyarch src]# tar -zxvf darkhttpd-1.12.tar.gz
[root@xyarch src]# cd darkhttpd-1.12
[root@xyarch darkhttpd-1.12]# pacman -S make
[root@xyarch darkhttpd-1.12]# pacman -S gcc
[root@xyarch netboot]# ln -s /usr/src/darkhttpd-1.12/darkhttpd /sbin/darkhttpd
[root@xyarch darkhttpd-1.12]# ./darkhttpd /mnt
新报错
loading http://192.168.56.200/content -> /content
error 22: The requested URL returned error: 404
disk: mount ok but test failed
url mount: http://192.168.56.200/?device=eth0 failed
repository: not found
no SUSE Linux Enterprise Server 11 repository found
Automatic setup not possibile.
V 挂错iso文件啦,重新挂载(在VirtualBox的设备-分配光驱-选择虚拟盘,找到suse的iso文件)
httpd日志
1557911809 192.168.56.53 “GET /content” 200 14579 “” “”
1557911809 192.168.56.53 “GET /content.asc” 200 526 “” “”
1557911809 192.168.56.53 “GET /boot/x86_64/config” 200 2630 “” “”
1557911810 192.168.56.53 “GET /boot/x86_64/common” 200 24772846 “” “”
1557911812 192.168.56.53 “GET /boot/x86_64/root” 200 54919406 “” “”
1557911812 192.168.56.53 “GET /boot/x86_64/cracklib-dict-full.rpm” 200 3776983 “” “”
客户端报错和FTP时差不多。
© 光驱引导安装
直接采用光驱启动虚拟机,执行Install之后,现象和日志几乎是完全相同的错误,只是下载方式不同:
loading file:/var/adm/mount/boot/x86_64/cracklib-dict-full.rpm -> /download/file_0002
(d) 问题解决(内存过小)
了解了一下squashfs文件系统,检查虚拟机配置,内存只有256M,调整为1G
图形安装界面显示不出来(只有绿白色的背景),把显示修改为VBoxVGA后正常。
在第一步选择语言界面时,使用mstsc远程桌面也可以正常操作和显示;
Ctrl+Alt+F2可以出现shell提示,提示控制台有2/5/6/9,可以dhcpcd eth0设置网络。
rcssh start启动ssh,测试了3款客户端,输入用户名后,只出现如下提示,不能输入和后续显示,。
login as: root
Server refused to allocate pty
Welcome to the inst-sys on linux 3.0.76-0.11-default x86_64
F5窗口可以看到错误:
sshd: error: openpty: No such file or directory
sshd: error: session_pty_req: session 0 alloc failed
这个问题没有去处理。
blkid可以看到没有挂载硬盘,只有6个squashfs类型的设备 。
6)autoyast自动安装
选择从网络启动,挂载/dev/sr0,启动httpd
正常进入图形安装界面且自动安装,但是分区时错误,减小分区大小(小于虚拟机分配的空间),并修改为/dev/sda(ls /dev/sd*)
在安装界面Installation Settings界面,有红色提示 set disk label of /dev/sda to MSDOS,需要手工点击Install安装。
安装完成后自动重启,会再次进入并停止在这个界面,点击Abort,关闭电脑,修改为从硬盘启动。
遗留问题: 重启后需要到BIOS去修改启动方式,从服务器端去判断和修改是个大问题。
7) 重置root密码
正常启动到login界面,但输入root直接提示Login incorrect,配置自动化安装的时候,连用户和密码都没有配置。
修改为光驱启动,进入rescue模式
根据blkid挂载
mount /dev/sda1 /mnt
mount /dev/sda2 /mnt/usr
ls -l /dev/urandom #因为第一次passwd时提示找不到这个文件
chroot /mnt
mknod /dev/urandom c 1 9
passwd #直接修改密码成功
exit
umount 实际操作时没有做
shutdown now
修改为从硬盘启动,启动正常,dhcpcd后ssh登录正常,最小化安装大约1.7G左右,
四. 总结:
PXE启动流程
1、电脑从BIOS加载PXE进入引导。
2、通过DHCP获取IP地址;
3、通过TFTP获取pxelinux.0文件,可以通过dhcp-boot参数指定;
4、通过TFTP获取pxelinux.cfg目录下的default文件,该文件指定重要启动参数,包括内核,root文件系统,install是重要的传入参数。
suse linux的样例(带自动部署脚本autoyast):
default install
# install
label install
kernel linux
append initrd=initrd autoyast=tftp://192.168.56.200/autoyast.xml install=http://192.168.56.200 splash=silent showopts
基本文件共5个
initrd ldlinux.c32 linux pxelinux.0 pxelinux.cfg/default
5、通过append initrd传入参数引导进入安装界面。