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服務器有多塊網卡時,查看狀態時一些異常信息

下面一些報錯沒關系,主要是機器上有2個網卡,沒針對另一個網卡划分信息什么的

 

 

 

5、現網中,無系統時不建議調啟動項,不然安裝完成后會一直重復循環安裝。

 

6、為了防止批量部署失敗,關閉虛擬機自帶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開始系統安裝

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM