当你没有光驱,没有现有的Windows系统,而有网络环境的时候,或者需要在一个LAN环境下安装一台或 多台Slackware的时候,或者你想尝试网络安装?Slackware提供了这条路径。
客户端
服务端
注:本文实验环境的服务端采用Slackware 11.0进行配置,下文中所有配置文件的某些参数请根据自身 情况进行修改设置。
$ cat /etc/dhcpd.conf:
#dhcpd.conf
#
# Configuration file for ISC dhcpd
#
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
uthoritative;
ddns-update-style none;
allow bootp;
allow booting;
subnet 192.168.123.0 netmask 255.255.255.0 {
next-server 192.168.123.248;
option routers 192.168.123.254;
option subnet-mask 255.255.255.0;
option domain-name "lab.lo";
option domain-name-servers 219.141.136.10,219.150.32.132;
option broadcast-address 192.168.123.255;
default-lease-time 604800;
max-lease-time 1209600;
range dynamic-bootp 192.168.123.150 192.168.123.160;
use-host-decl-names on;
}
host pxe-linux {
hardware ethernet 00:c0:9f:27:ff:00;
fixed-address 192.168.123.151;
filename "/slackware-11.0/pxelinux.0";
}
TFTP由inetd服务启动,确保/etc/inetd.conf 文件中的TFTP服务未被注释:
tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot -r blksize
就像你在上一行中看到的,TFTP工作在/tftpboot目录下,所以确保文件系统里有该目录,如果 没有:
$ sudo mkdir /tftpboot
然后,启动或者重新启动/etc/rc.d/rc.inetd。
NFSD的配置文件为/etc/exports,向其中加入以下这一行:
/var/mirror/slackware/slackware-11.0/192.168.123.0/24(ro,sync,all_squash)
这里的"/var/mirror/slackware/slackware-11.0/"为Slackware软件包存放地,根据自己的 设置修改,包括"192.168.123.0/24"这里的IP设置。然后启动或者重新启动NFSD:
$ sudo /etc/rc.d/rc.nfsd <start|restart>
$ sudo mkdir -p /var/mirror/slackware/slackware-11.0/
将Slackware的文件放到该目录下,此目录为Slackware目录树的根目录,也就是包含 ChangeLog.txt,slackware以及kernels等子目录。
$ sudo mkdir -p /tftpboot/slackware-11.0/pxelinux.cfg
$ sudo cp /usr/share/syslinux/pxelinux.0 /tftpboot/slackware-11.0/
PXE客户端将通过TFTP从该目录获取bootloader。
$ sudo cd /var/mirror/slackware/slackware-11.0/isolinux
$ sudo cp message.txt f2.txt f3.txt /tftpboot/slackware-11.0/
这里放置slackware开始安装时的交互信息。
$ cd ..
$ sudo cp -r kernels/ /tftpboot/slackware-11.0/
这里放置启动安装程序后可供选择的内核。
下面创建initrd.img。这一步不可少,当你进行网络安装的时候,slackware安装程序需要识别 客户端网卡。看到不少论坛上有人问为什么选择安装包后屏幕一闪"好像"安装已经结束了,就是 这个原因。这里将所有网卡的驱动加载进initrd.img。
$ sudo mkdir -p /tmp/pxe/{initrd,pcmcia,network,script}
在/tmp/pxe/script文件夹下放pxe scripts几个脚本。
$ gunzip -cd /var/mirror/slackware/slackware-11.0/isolinux/initrd.img | \
sudo tee /tmp/pxe/initrd.dsk
$ cd /tmp/pxe
$ sudo mount -o loop,ro initrd.dsk initrd/
$ sudo mount -o loop,ro /var/mirror/slackware/slackware-11.0/isolinux/pcmcia.dsk pcmcia/
$ sudo mount -o loop,ro /var/mirror/slackware/slackware-11.0/isolinux/network.dsk network/
$ sudo dd if=/dev/zero of=/tmp/pxe/newinitrd bs=1k count=9500
$ sudo mkfs.ext2 -m 0 -F /tmp/pxe/newinitrd
$ sudo tune2fs -i 0 /tmp/pxe/newinitrd
$ sudo mkdir /tmp/pxe/out/
$ sudo mount -o loop /tmp/pxe/newinitrd /tmp/pxe/out/
$ sudo cp -a /tmp/pxe/{initrd,network,pcmcia}/* /tmp/pxe/out/
修改脚本以使安装程序不再搜索光驱或者软驱来加载磁盘镜像,因为所有需要的都在新的 root文件系统里了。
$ cd /tmp/pxe/script
$ cat pcmcia | sudo tee /tmp/pxe/out/bin/pcmcia
$ cat network | sudo tee /tmp/pxe/out/bin/network
$ sudo patch -p0 /tmp/pxe/out/scripts/network.sh network.sh.diff
重新生成内核模块依赖性文件。
$ gunzip -cd /var/mirror/slackware/slackware-11.0/kernels/sata.i/System.map.gz | \
sudo tee /tmp/pxe/System.map
$ sudo rm -f /tmp/pxe/out/lib/modules/2.4.33.3/modules.*
$ sudo /sbin/depmod -a -b /tmp/pxe/out -F /tmp/pxe/System.map 2.4.33.3
gzip root文件系统,然后将它放到tftpboot目录下。
$ sudo umount /tmp/pxe/initrd
$ sudo umount /tmp/pxe/network
$ sudo umount /tmp/pxe/pcmcia
$ sudo umount /tmp/pxe/out
$ sudo gzip -9f /tmp/pxe/newinitrd
$ sudo mv /tmp/pxe/newinitrd.gz /tftpboot/slackware-11.0/initrd.img
清理临时文件
$ sudo rm -r /tmp/pxe
将pxelinux配置文件放到TFTP目录下。
$ sudo cp /var/mirror/slackware/slackware-11.0/isolinux/isolinux.cfg \
/tftpboot/slackware-11.0/pxelinux.cfg/default
修改最终文件里的绝对路径为相对路径
$ sudo sed -i -e "s/ramdisk_size=[[:digit:]]*/ramdisk_size=9500"/ -e "s#/kernels/#kernels/#" \
/tftpboot/slackware-11.0/pxelinux.cfg/default
至此,服务端设置完毕。
客户端从网络启动,搜索PXE服务器,加载PXE启动代码,完成后会出现slackware安装界面,选择 一个内核启动,以root登陆,分区,然后为客户端网卡选择一个内核模块加载,这里必须用network 命令让内核提供适合该网卡的驱动。
进入SOURCE对话框后,需要提供以下参数:
Your own IP Address (pick any unused) 192.168.123.222
Your netmask 255.255.255.0
The gateway 192.168.123.254
NFS server address 192.168.123.100
Slackware directory on the NFS server /var/mirror/Slackware/slackware-11.0/slackware
下面的步骤就像从光驱安装一样了,just go on...
| Valid XHTML | ©2010 dOtImes.cOm, All rights reserved. | Creative Commons | Powered by Slackware, Nginx. |
Posted and Maintained by Cowyn Li Last Update: Sunday, 2007-10-07, 1:10, GMT+0800. |