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開始系統安裝