使用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传入参数引导进入安装界面。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值