pxe+Kickstart自动装机补充知识点
1、vmlinuz
vmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。
vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接。
vmlinuz的建立有两种方式。
一是编译内核时通过“make zImage”创建,然后通过:“cp /usr/src/linux-2.4/arch/i386/linux/boot/zImage /boot/vmlinuz”产生。zImage适用于小内核的情况,它的存在是为了向后的兼容性。
二是内核编译时通过命令make bzImage创建,然后通过:“cp /usr/src/linux-2.4/arch/i386/linux/boot/bzImage /boot/vmlinuz”产生。bzImage是压缩的内核映像,
需要注意,bzImage不是用bzip2压缩的,bzImage中的bz容易引起误解,bz表示“big zImage”。 bzImage中的b是“big”意思。
zImage(vmlinuz)和bzImage(vmlinuz)都是用gzip压缩的。它们不仅是一个压缩文件,而且在这两个文件的开头部分内嵌有gzip解压缩代码。所以你不能用gunzip 或 gzip –dc解包vmlinuz。
内核文件中包含一个微型的gzip用于解压缩内核并引导它。两者的不同之处在于,老的zImage解压缩内核到低端内存(第一个640K),bzImage解压缩内核到高端内存(1M以上)。如果内核比较小,那么可以采用zImage 或bzImage之一,两种方式引导的系统运行时是相同的。大的内核采用bzImage,不能采用zImage。
vmlinux是未压缩的内核,vmlinuz是vmlinux的压缩文件。
我理解的技术vmlinuz是个压缩的内核
2、initrd-x.x.x.img
initrd是“initial ramdisk”的简写。initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。initrd-2.4.7- 10.img主要是用于加载ext3等文件系统及scsi设备的驱动。
比如,使用的是scsi硬盘,而内核vmlinuz中并没有这个scsi硬件的驱 动,那么在装入scsi模块之前,内核不能加载根文件系统,但scsi模块存储在根文件系统的/lib/modules下。
为了解决这个问题,可以引导一 个能够读实际内核的initrd内核并用initrd修正scsi引导问题。initrd-2.4.7-10.img是用gzip压缩的文件。
linuxrc这个脚本initrd实现加载一些模块和安装文件系统等。 initrd映象文件是使用mkinitrd创建的。mkinitrd实用程序能够创建initrd映象文件。这个命令是RedHat专有的。
其它 Linux发行版或许有相应的命令。这是个很方便的实用程序。具体情况请看帮助:man mkinitrd。
我理解的是内核vmlinuz很小,没有scsi的驱动。而scsi的驱动在根目录/lib/modules下面,initrd.img就是能帮你引导scsi驱动等,它是个中间人
3、关于pxelinux.0的配置文件为什么起名为default
pxelinux会以IP地址的16进制表示来搜索配置文件,如果没找到去除最低一位继续找。如果所有匹配都失败,就使用default文件。
举例来说:
192.168.0.15 16进制表示是 C0A8000F.
它会搜索下面的配置文件,最先找到的会被使用。
pxelinux.cfg/C0A8000F
pxelinux.cfg/C0A8000
pxelinux.cfg/C0A800
pxelinux.cfg/C0A80
pxelinux.cfg/C0A8
pxelinux.cfg/C0A
pxelinux.cfg/C0
pxelinux.cfg/C
pxelinux.cfg/default
4、dhcp服务器有多块网卡时,查看状态时一些异常信息
7、dhcp配置文件解释
[root@ks syslinux]# cat /etc/dhcp/dhcpd.conf ddns-update-style none; #设置与DHCP服务相关联的DNS数据动态更新模式,实际的DHCP应用中很少用改参数,设置为none即可。默认也是none ignore client-updates; #不允许客户机更新DNS记录 filename "pxelinux.0"; #告知客户端从TFTP根目录下载pexlinux.0 next-server 192.168.58.128; #告知客户端TFTP服务器ip subnet 192.168.58.0 netmask 255.255.255.0 { option routers 192.168.58.2; #设置客户机的网关 option subnet-mask 255.255.255.0; #设置netmask range dynamic-bootp 192.168.58.100 192.168.58.200; #可分配的起始IP-结束IP default-lease-time 21600; #设置默认的IP租用期限 max-lease-time 43200; #设置最大的IP租用期限 } [root@ks syslinux]#
如果dhcp服务器有多个网卡时可以设置只让某个网卡提供dhcp服务
[root@ks html]# cat /etc/sysconfig/dhcpd # Command line options here DHCPDARGS= [root@ks html]#
比如
[root@kickstart ~]# cat /etc/sysconfig/dhcpd #修改/etc/sysconfig/dhcpd配置文件, 表示dhcp将只在eth0网络接口上提供DHCP服务。 # Command line options here DHCPDARGS=eth0
8、关于tftp默认根目录由配置文件指定的 /var/lib/tftpboot
[root@ks html]# cat /etc/xinetd.d/tftp # default: off # description: The tftp server serves files using the trivial file transfer \ # protocol. The tftp protocol is often used to boot diskless \ # workstations, download configuration files to network-aware printers, \ # and to start the installation process for some operating systems. service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 } [root@ks html]#
9、Kickstart安装大体过程
PXE+Kickstart安装系统大体过程
1、网卡上的pxe芯片有512字节,存放了dhcp和tftp的客户端
2、启动计算机选择网卡启动
3、pxe上的dhcp客户端向dhcp服务器申请IP地址
4、dhcp服务器分配它IP地址的同时通过以下字段告诉pxe,tftp的地址和它要下载的文件
(1) next-server 192.168.0.12;
(2) filename "pxelinux.0";
5、pxelinux.0 告诉pxe要下载的配置文件是pxelinux.cfg目录下面的default
6、pxe下载并根据配置文件内容下载启动必须的文件,并通过ks.cfg开始系统安装