Kickstart/Anaconda實現自動化安裝原理探究
內容概要:
1. 系統安裝基本流程圖示
2. Anaconda簡介
3. Kickstart簡介
4. 引導並指定安裝方式
5. kickstart檔案中的主要專案及引數介紹
6. kickstart配置檔案示例
7. RedHat 安裝光碟安裝樹介紹
8. Anaconda/Kickstart系統安裝過程簡圖
9. 安裝樹中boot.img及stage.img解構圖析
10. 使用Kickstart進行安裝的方式列舉概述
本文仍為課程學習的總結筆記,書寫過程參看了大量官方文件及網路上相關資料,在此謝過各位無私奉獻的Linuxer們,也貼上自己的筆記供大家參考,本文重點關注原理性層面的東西,對試驗實際操作過程不過多贅述;
水平有限,難免出現理解不透徹或是錯誤之處,望多指教;
實驗環境: RedHat5.5
一. 系統安裝一般流程
首先了解系統安裝一般流程:
二. Anaconda簡介
簡介:
Anaconda是Red Hat、CentOS、Fedora等Linux的安裝管理程式。它可以提供文字、圖形等安裝管理方式,並支援Kickstart等指令碼提供自動安裝的功能。此外,其還支援許多啟動引數,熟悉這些引數可為安裝帶來很多方便。該程式是把位於光碟或其他源上的資料包,根據設定安裝到主機上的一個程式;為實現該定製安裝,其提供一個定製介面,可以實現互動式介面供使用者選擇配置(如選擇語言,鍵盤,時區等資訊);
Anaconda支援的管理模式:
Kickstart提供的自動化安裝
對一個RedHat實施upgrade
Rescuse模式對不能啟動的系統進行故障排除;
要進入安裝步驟,需要先有一個載入程式引導啟動一個特殊的Linux安裝環境系統;引導有多種方式:
1. 基於網路方式的小型引導映象,需要提供小型的引導映象;
2. U盤引導,通過可引導儲存介質中的小型引導映象啟動安裝過程;
3. 基於PXE的網路安裝方式,要提供PXE的完整安裝環境;
4. 其他bootloder引導(如GRUB)
可用的安裝方式:
本地CDROM
磁碟驅動器
NFS映像
FTP
HTTP
通過網路方式安裝時:
不論通過FTP、HTTP還是NFS方式共享安裝,可以將安裝光碟先拷貝到網路伺服器上儲存為iso映象,然後loop掛載到共享目錄或網頁目錄(當然,拷貝映象中的所有檔案到指定位置或直接掛載到共享目錄也可),而通過NFS方式時,可以直接將光碟的iso檔案放到共享目錄即可,安裝程式掛載共享目錄後可以自動識別映象;
注:複製安裝光碟,並儲存為一個 iso 映像檔案的方法:
對於 DVD/CD:
# dd if=/dev/cdrom of=/location/of/disk/space/RHEL.iso bs=32k
注意拷貝時bs塊大小設定為32k,我實驗時設為1M,雖然減小了檔案體積,但是安裝讀映象時會報錯。
三、 Kickstart簡介:
簡介:
kickstart是一個利用Anconda工具實現伺服器自動化安裝的方法;通過生成的kickstart配置檔案ks.cfg,伺服器安裝可以實現從裸機到全功能服務的的非互動式(無人值守式)安裝配置;
ks.cfg是一個簡單的文字檔案,檔案包含Anconda在安裝系統及安裝後配置服務時所需要獲取的一些必要配置資訊(如鍵盤設定,語言設定,分割槽設定等);Anconda直接從該檔案中讀取必要的配置,只要該檔案資訊配置正確無誤且滿足所有系統需求,就不再需要同用戶進行互動獲取資訊,從而實現安裝的自動化;但是配置中如果忽略任何必需的專案,安裝程式會提示使用者輸入相關的專案的選擇,就象使用者在典型的安裝過程中所遇到的一樣。一旦使用者進行了選擇,安裝會以非互動的方式(unattended)繼續。
使用kickstart優勢:
1. 流線化自動化的安裝;
2. 快速大量的裸機部署;
3. 強制建立的一致性(軟體包,分割槽,配置,監控,安全性)
4. 減少人為的部署失誤
使用Kickstart方法安裝的過程:
1. 建立一個kickstart檔案
2. 建立有kickstart檔案的引導介質或者使這個檔案在網路上可用;
3. 籌備一個安裝樹
4. 開始ks安裝:anconda自身啟動 -->選取ks安裝模式--> 從ks檔案讀取配置 --> 最後安裝
建立kickstart配置檔案的方式:
1. 文字編輯器編輯生成:vim
2. 用圖形化介面配置:system-config-kickstat(需要安裝system-config-kickstart.noarch包)
注:圖形化介面配置時,磁碟選項無法建立配置LVM(邏輯卷);
檔案生成後,推薦使用ksvalidator命令檢查配置檔案語法及完整性錯誤;
[[email protected] ~]# ksvalidator ks.cfg
not enough arguments for format string
圖形化介面配置示例:
四. 引導並指定安裝方式:
系統引導介面:
系統引導後,會顯示boot:命令提示符;如上,介面上會有各種模式操作提示;
注:使用者互動的文字安裝方式中不能進行LVM的自定義配置,只能檢視、接受預設設定;
在boot:命令列裡有用的幾個項:
lowres
:強制GUI安裝時解析度調低為640*480
noipv6
:安裝過程不支援ipv6網路
noprobe
:不去自動檢測硬體,而是提示使用者;
dd=
:通過網路載入裝置驅動
ks=
:指定kickstart檔案的放置位置;
另外還有ip、netmask、gateway、dns、vnc等選項;
用ks選項被指定時kickstart檔案位置時,Anaconda進入Kickstart安裝模式;
安裝時獲取kickstart檔案的方式:
(1) boot:linux ks
ks命令單獨使用時,系統會嘗試通過dhcp伺服器配置網絡卡,並且從DHCP會話中獲取kickstart配置檔案的位置;
在dhcp伺服器dhcp配置檔案中有kickstart檔案位置說明,next-server關鍵字指向共享檔案的NFS主機,用filename關鍵字指向主機上的檔案路徑;如果沒有filename關鍵字,則嘗試在next-server關鍵字指向主機的/kickstart資料夾中找kickstart檔案;
下面是dhcp.conf檔案中kickstart配置欄位示例:
- # The following lines are examples of kickstart directives.
- filename "/data/ks/ks.cfg";
- next-server 192.168.1.10;
- # 注:上面部分需要寫在subnet子段中;
(2) boot:linux ks=url
基於網路的檔案伺服器(網路伺服器),獲取配置檔案,支援HTTP、FTP、NFS方式獲取檔案;例:
ks=ftp://192.168.0.254/pub/kistart/ks.cfg
ks=http:// 192.168.0.254/pub/kistart/ks.cfg
ks=nfs:ip_addr:/path/to/ks.cfg
(3) boot:linux ks=hd:device/path/to/your/kickstart_file
基於本地的安裝方式,需要依次指定裝置名,路徑,檔名等;例如:
檔案在光碟中:ks=cdrom:/ks.cfg
檔案在軟盤中: ks=floppy:/filedirectory/ks.cfg
檔案在硬碟中:ks=hd:/sdb1/myfile/ks.cfg
檔案也可被打包進initrd根檔案系統中:ks=file:/ks.cfg
kickstart檔案結構介紹:
1. 命令部分:配置系統的屬性及安裝中的各種必要設定資訊
2. %packages部分:設定需要安裝的軟體包及包組,Anaconda會自動解決依賴關係
3. 指令碼部分:用於定製系統,分為%pre部分在安裝前執行,%post在安裝後執行
%pre 部分指令碼作為一個bash shell指令碼執行,在Kickstart檔案解析後執行;
%post 解析器預設為bash,可以自定義,預設為chroot狀態,也可指定非chroot狀態;
五. Kickstart檔案中的主要專案及引數介紹:
每個專案都由關鍵字來識別;關鍵字可跟一個或多個引數;如果某選項後面跟隨了一個等號(=),它後面就必須指定一個值。
install (可選)
明確指定系統次次進行的是全新安裝系統;是預設項;
cdrom (可選)
以本地CD-ROM為源安裝系統;
harddrive (可選)
以硬碟分割槽中包含的映象為源(安裝樹)安裝新系統;當以該種方式安裝系統時,即使指定clearpart --all項,源所在分割槽也不會被重新抹去;
--partition= 指定分割槽
--dir= 指定包含映象的目錄
例:
harddrive --partition=/dev/sdb2 --dir=/data/iso
nfs (可選)
指定從NFS伺服器上獲取安裝樹;
--server= 指定NFS伺服器,主機名稱或IP
--dir= 包含安裝樹的目錄
--opts= 可以指定掛載NFS的目錄時的掛載選項
例:
nfs --server=192.168.1.254 --dir=/data/iso
url (可選)
指定通過FTP或HTTP從網路獲取安裝樹;
--url 指定資源位置
例:
url --url ftp://<username>:<password>@install.example.com/iso
url --url http://install.example.com/iso
bootloader (必需)
設定boot loader安裝選項;
--append= 可以指定核心引數
--driveorder= 設定裝置BIOS中的開機裝置啟動順序
--location= 設定引導記錄的位置; mbr:預設值;partition:將boot loader安裝於包含kernel的分割槽超級快中;none:不安裝boot loder。
示例:
bootloader --location=mbr --append=“rhgb quiet” --driveorder=sda,sdb
clearpart (可選)
在建立新分割槽前清空系統上原有的分割槽表,預設不刪除分割槽;
--all 擦除系統上原有所有分割槽;
--drives 刪除指定驅動器上的分割槽
--initlabel 初始化磁碟卷標為系統架構的預設卷標
--linux 擦除所有的linux分割槽
--none(default)不移除任何分割槽
例:
clearpart --drives=hda,hdb --all --initlabel
zerombr (可選)
清除mbr資訊,會同時清空系統用原有分割槽表
drivedisk (可選)
如果使用特殊儲存方式時,需要指定驅動程式盤位置以便載入儲存驅動;
1. 將驅動盤拷貝到本地硬碟某分割槽根目錄:
drivedisk <partition> [ --type=<fstype> ]
2. 也可以指定一個網路位置載入驅動程式盤
drivedisk --source=ftp://path/to/drive.img
drivedisk --source=http://path/to/drive.img
drivedisk --source=nfs:host://path/to/drive.img
firewall (可選)
配置系統防火牆選項;
firewall –enable|--disable [ --trust ] <device> [ --port= ]
--enable 拒絕外部發起的任何主動連線;
--disable 不配置任何iptables防禦規則;
--trust 指定完全信任網絡卡裝置;
--port 使用port:protocol格式指定可以通過防火牆的服務;
示例:
firewall --enable --trust eth0 --trust eth1 --port=80:tcp
selinux (可選)
設定系統selinux狀態;預設為啟用並處於enforcing模式;
selinux [ --disabled|–enforcing|--premissive ]
reboot (可選)
在系統成功安裝完成後預設自動重啟系統(kickstart方法時);在收到你敢裝系統完成後,會提示按任意鍵進行重啟;
在本檔案中沒有明確指明其他方法時就預設完成方式為reboot;
使用 reboot 選項可能會導致安裝的死迴圈,這依賴於安裝介質和方法。需要特別注意;
halt (可選)
在系統成功安裝完成後關機;預設為reboot;
其他選項還有shutdown、poweroff,需要使用請自行參考官方文件。
graphical (可選)
預設值,在圖形模式下進行kickstart方式安裝;
text (可選)
以文字方式進行kickstart安裝;預設為圖形介面
key (可選)
設定一個安裝碼(installration number),用於獲取redhat官方的支援服務;
--skip 跳過key設定,不進行設定;如果不設定可能跳轉到互動模式讓使用者選取動作;
keyboard (必需)
設定鍵盤型別;一般設定為us;
lang (必需)
設定安裝過程使用的語言及系統的預設語言;文字模式安裝時可能不支援某些語言(中、韓...),所以可能仍以預設的英文方式安裝;預設en_us,裝中文時,需要後期%packages部分裝上中文支援元件;
例:
lang en_US
timezone (可選)
設定系統的時區;
timezone [ --utc ] <timezone>
例:
timezone --utc Asia/Shanghai
auth/authconfig (必需)
設定系統的認證方式;預設為加密但不隱藏(shadow);
--enablemd5 使用MD5加密方式
--useshadow或—enableshadow 使用隱藏密碼;
--enablenis= 使用NIS認證方式
--nisdomain= NIS域
--nisserver= NIS伺服器
還可以設定LDAP、SMB及Kerberos 5認證方式,詳細請參考官方文件;
例:
authconfig --useshadow --enablemd5
rootpw (必需)
設定系統root賬號的密碼;
rootpw [ --iscrypted ] <passwd>
--iscrypted 表示設定的密碼為加密過的串;
例:
rootpw pa4word
rootpw --iscrypted $1$RPYyxobb$/LtxMNLJC7euEARg2Vu2s1
network (可選)
配置網路資訊;在網路安裝(NFS/HTTP/FTP)時必須指定;
--bootproto=dhcp|bootp|static 指定ip獲取方式,預設為dhcp/bootp;
--device= 設定安裝時啟用來進行系統安裝的網絡卡裝置;該引數只在kickstart檔案為本地檔案時有效;若kickstart配置檔案在網路上,安裝程式會先初始化網絡卡然後去尋找kickstart檔案;
--ip= ip設定
--gateway= 閘道器
--nameserver= DNS設定
--nodns 不設定DNS
--netmask= 掩碼
--hostname= 設定安裝後主機名稱
--onboot= 設定是否在系統啟動時啟用網絡卡
--class= 設定DHCP的class值
--noipv4 禁用該裝置的ipv4功能
--noipv6 禁用該裝置的ipv6功能
如將網路模式設定為靜態模式,則必須在一行內寫上ip,netmask、dns、gateway等資訊;
例:
network –bootproto=static –ip=1.1.1.1 --metmask=255.0.0.0 --gateway=1.1.1.254 --nameserver=1.1.1.2
netmask --bootproto=dhcp --device=eth0
skipx (可選)
如果該項存在,就不對系統的X進行設定;
xconfig (可選)
配置X window ;如果不給出選項,在安裝過程中需要手動調整設定;當然不安裝X時不應該新增該項;
--driver 為顯示卡設定X驅動
--videoram= 設定顯示卡的RAM大小
--defaultdesktop= 設定GNOME/KDE作為預設桌面;假定這兩個桌面環境在%packages例已經安裝
--startxonboot 使用圖形介面登入系統
--resolution= 設定圖形介面的解析度;可用值有640*480、800*600、1024*768等;確保設定指適合於顯示卡及顯示器;
--depth= 設定顯示色深;可用值有8/16/24/32;確保設定值適合於顯示裝置;
例:
xconfig --startxonboot --resolution=800*600 --depth=16
services (可選)
設定禁用或允許列出的服務;
--disabled 設定服務為禁用
--enabled 啟動服務
例:
services --disabled autid,cups,smartd,nfslock 服務之間用逗號隔開,不能有空格
iscsi(可選)
指定額外的ISCSI裝置;
issci --ipaddr= ipaddr [options].
--target
--port=
--user=
--password=
part/partition (install模式必須)
建立新分割槽;
part <mntpoint>|swap|pv.id|rdid.id options
mntpoint:掛載點,是在建立普通分割槽時指定新分割槽掛載位置的項;掛載點需要格式正確
swap: 建立swap分割槽;
raid.id: 表示建立的分割槽型別為raid型;必須用id號進行唯一區別;
pv.id: 表示所建立的分割槽型別為LVM型;必須用唯一id號進行區別;
--size= 設定分割槽的最小值,預設單位為M,但是不能寫單位;
--grow 讓分割槽自動增長利用可用的磁碟空間,或是增長到設定的maxsize值;
--maxsize 設定分割槽自動增長(grow)時的最大容量值,以M為單位,但不能寫單位;
--onpart=/--usepart= 設定使用原有的分割槽;
--noformat 設定不格式化指定的分割槽,在跟—onpart一同使用時,可以避免刪除原有分割槽上的資料,在新安裝的系統中保留使用資料;
--asprimary 強制制定該分割槽為主分割槽;若指定失敗,分割槽會失敗,導致安裝停止;
--fstype= 新增普通分割槽時指定分割槽的型別,可以為ext2、ext3、ext4、swap、vfat及hfs;
--ondisk=/--ondrive= 設定該分割槽建立在一個具體的磁碟上;
--start 指定分割槽以磁碟上那個磁軌開始;需要跟--ondisk引數一塊使用;
--end 指定分割槽以磁碟上那個磁軌結束;需要跟上述兩個引數一起使用;
--recommended:讓系統自行決定分割槽的大小;在建立swap分割槽時,若RAM<2G,則分割槽大小為2*RAM;若RAM>=2G時,分割槽大小為RAM+2G;
--bytes-pre-inode= 指定分割槽格式化時inode的大小;預設值為4096
--fsoptions= 指定建立fstab檔案時該分割槽掛載引數項;
例:
part /boot --fstype=“ext3” --size=100
part swap --fstype=“swap” –size=512
part / --bytes-pre-inode=4096 --fstype=“ext4”--size=10000
part /data --onpart=/dev/sdb1 --noformat
part raid.100 --size=2000
part pv.100 --size=1000
raid (可選)
設定RAID。
raid 掛載點 --level=<level> --device=<mddevices_name> <raid組成分割槽>
掛載點: 選取根/時,注意儘量避免/boot在RAID內,除非為RAID1;
--level= 設定RAID級別
--device= RAID裝置名稱,如md0,md1...
--byte-pre-inode= 設定該RAID分割槽上inode大小;若分割槽檔案系統型別不支援該引數,會靜默忽略引數;
--spares= 設定RAID的熱備盤
--fstype= 設定檔案系統型別
--fsoptions= 設定掛載該檔案系統時自定義的一些引數,引數寫入fstab檔案;
--useexisting 使用現有的RAID裝置並且重新格式化原裝置
--noformat 在使用現有的RAID裝置時不格式化原有RAID裝置
例:完整建立一個RAID1裝置示例;
part raid.10 --size=1000 --ondisk=/dev/sdb
part raid.11 --size=1000 --ondisk=/dev/sdc
raid /data --level=1 --device=md0 raid.10 raid.11
volgroup (可選)
建立一個LVM卷組VG;
volgroup vg_name partition [options]
--useexiting 使用現有的VG並且重新格式化
--noformat 使用現有的VG時不做格式化
--pesize 設定PE(physical extents)塊大小
例:
part pv.11 --size=2000
volgroup myvg pv.11
logvol (可選)
建立一個LVM邏輯卷LV;
logvel mnt_point --vgname=vg_name --size=lv_size --name=lv_name [options]
--useexiting 使用現有的LV並且重新格式化
--noformat 使用現有的LV時不做格式化
--fstype= 指定RAID分割槽型別
--fsoptions= 設定掛載該檔案系統時自定義的一些引數,引數寫入fstab檔案;
--byte-pre-inode= 設定該RAID分割槽上inode大小;
--precent= 設定LV大小為VG可用空間的比例;
例:
part pv.20 --size=5000
volgroup mvvg pv.20
logvol /data --vgname=myvg --size=3000 --name=mydata
六. kickstart配置檔案示例
- ##########################################################################
- #
- # kickstart install script
- # RHEL version 5
- # Platform=x86, AMD64, or Intel EM64T
- #
- ##########################################################################
- # Install OS instead of upgrade
- install
- # Use text mode install
- text
- # Installation Number configuration
- key --skip
- # Local installation Use CDROM installation media
- cdrom
- # Network installation via FTP of HTTP
- #url --url ftp://<username>:<password>@install.example.com/pub/RH
- #url --url http://install.example.com/pub/RH
- # Network installation via NFS
- #nfs --server=nfsserver.example.com --dir=/pub/install-tree
- # Local installation Use HD source
- #harddrive --partition /dev/sda2 --dir=/data/iso
- # If you use harddrive, you must use ISO images, not a tree
- # Note that even if though we clearpart --all, the install
- # partition will remain, which can be quite useful.
- # System authorization information
- auth --useshadow --enablemd5
- #Root password
- rootpw --iscrypted $1$1P72E10M$b47abC13/yUSzV9uvCoML0
- #rootpw redhat
- # System bootloader configuration
- bootloader --append="rhgb quiet" --location=mbr
- # Clear the Master Boot Record
- zerombr
- # Partition clearing information
- clearpart --all --initlabel
- # Run the Setup Agent on first boot
- firstboot --disable
- # System keyboard
- keyboard us
- # System language
- lang en_US
- # System timezone
- timezone --isUtc Asia/Shanghai
- # Installation logging level
- logging --level=info
- # Network information
- network --bootproto=dhcp --device=eth0 --onboot=on
- # Firewall configuration
- firewall --enabled --ssh --trust=eth0
- # SELinux configuration
- selinux --enforcing
- # X Window System configuration information
- xconfig --defaultdesktop=GNOME --depth=16 --resolution=800x600 --startxonboot
- # Do not configure X
- #skipx
- # Reboot after installation
- reboot
- # Disk partitioning information
- part /boot --bytes-per-inode=4096 --fstype="ext3" --size=100
- part / --asprimary --bytes-per-inode=4096 --fstype="ext3" --size=10240
- part pv.100 --size=4096 --grow
- volgroup myvg --pesize=32768 pv.100
- logvol /data --fstype="ext3" --name=mydata --vgname=myvg --size=1024 --grow --maxsize=2048
- # This packages is for RedHat5.5
- %packages
- @base
- @gnome-desktop
- @development-libs
- @admin-tools
- @base-x
- @development-tools
- @sound-and-video
- @chinese-support
- @gnome-software-development
- @x-software-development
- @openfabrics-enterprise-distribution
- @printing
- @server-cfg
- @legacy-software-support
- @mail-server
- @system-tools
- @graphical-internet
- @editors
- @text-internet
- @graphics
- @dialup
- @java
- @office
- %post --interpreter=/bin/bash
- # Let's log post-install
- (
- # Create two user
- /usr/sbin/useradd florian
- /usr/sbin/useradd douglas
- /bin/echo "florian" | /usr/bin/passwd --stdin florian
- /bin/echo "douglas" | /usr/bin/passwd --stdin douglas
- # Print message onboot: We are the fighter...
- /bin/echo "We are the fighter......Mr.Li" > /etc/issue
- ) 2>&1 >> /root/post-install.log
七. RedHat 安裝光碟安裝樹介紹:
光碟中包含資料夾isolinux、images、Cluster、ClusterStorage、Server、VT六個資料夾;包含隱藏檔案.discinfo及.treeinfo和一些普通檔案如TRANS.TBL等;
isolinux資料夾中有開機引導系統的安裝核心(vmlinuz)及RAM 映象(initrd.img),在引導力系統時會載入入記憶體,給系統的安裝提供一個Linux安裝引導平臺;資料夾中還有在不同模式下顯示資訊的.msg檔案;splash.lss是特殊格式的引導過程背景圖片(640*320,16位色,ppm格式);
images資料夾中包含有各種引導映象;有用於製作微型啟動光碟的boot.iso;有可放置於USB或其他大容量可引導介質的VFAT分割槽上,製作引導工具的映象diskboot.img;
也有用於製作PXE安裝方式引導介質的pxeboot資料夾;及XEN所需的xen資料夾;
Server、VT、Cluster、ClusterStorage四個資料夾包含安裝所需的所有RPM包;Server資料夾中包含基礎軟體包,VT包含xen相關的軟體包;Cluster、ClusterStorage是叢集及叢集儲存相關的軟體包;根據這四個包可以配置本地的yum源;
TRANS.TBL檔案記錄當前目錄的列表,用mkisofs的-T引數重新生成,主要是為了長檔名稱
.discinfo 是安裝介質的識別資訊;
.treeinfo 檔案記錄不同安裝方式安裝程式所在的目錄結構,如:PXE方式時,核心kernel=images/pxeboot/vmlinuz;根檔案系統initrd=images/pxeboot/initrd.img
stage2.img、minstg2.img是引導後第二階段安裝需要用到的映象檔案(這兩個映象檔案功能及結構在後面描述),若定製LiveCD,則需要修改;
repodata 是精確描述一個RPM包的詳細資訊,如依賴關係,包含檔案,校驗碼資訊等;
comps.xml是一個xml格式的資料檔案,將各個RPM包按照一定的原則組織成若干組,安裝時可以按照資訊直接安裝一組軟體包;
(stage2.img映像檔案中的主要部分是安裝程式anaconda,它的主執行體是/usr/bin下的anaconda,由其呼叫的大量例程分佈在/usr/lib/anaconda下,而安裝過程中要用到的資原始檔分佈在/usr/share/anaconda下。
當boot.img所代表的啟動介質被系統引導之後,在記憶體中就建立了一個完整的Linux系統(包括Linux核心和一個記憶體虛擬檔案系統),之後便執行檔案系統中存在的loader命令,從適當的介質中執行安裝程式(例:安裝介質是CD-ROM,就解析CD-ROM上的stage2.img,並從中執行安裝程式),即執行anaconda,完成Linux系統的安裝任務
詳細可參看:(Linux發行版製作指南)http://leozhao.livejournal.com/3128.html
)
八. Anaconda/Kickstart系統安裝過程圖示:
九. boot.img、stage2.img結構示意:
注:現在新版本的兩個映象略有出入,依實際為準(圖後附檢視img方法);
loop方式掛載特殊格式的img映象方法:
- [[email protected] images]# ls
- boot.iso diskboot.img minstg2.img pxeboot README stage2.img TRANS.TBL xen
- [[email protected] images]# file stage2.img
- stage2.img: Squashfs filesystem, little endian, version 3.0, 0 bytes, 8969 inodes, blocksize: 65536 bytes, created: Mon Mar 22 19:56:50 2010
- #從上面看出img檔案格式為squashfs,所以在下面掛載時明確指定該格式,否則會報錯;
- [[email protected] images]# mkdir ../img
- [[email protected] images]# mount -o loop -t squashfs stage2.img ../img/
- [[email protected] images]# ls ../img
- etc lib modules proc usr var
- [[email protected] images]#
十. 使用Kickstart進行安裝的多種方式列舉
(過程不再贅述,對於一些重要的實驗在後期會附上HOW-TO):
1. kickstart放置於映象中,重新制作ISO並刻盤,從光碟實現引導,自動配置並提供安裝樹安裝;
2. kickstart可放置於網路上,用FTP/HTTP/NFS提供出來;用光碟引導及提供安裝樹;
3. 用FTP/HTTP/NFS提供kickstart及安裝樹,用光碟或其他可引導的大象儲存裝置引導;
4. 搭建PXE純網路的架構,實現引導,kickstart,及安裝樹的提供完全自動化;
參考:
Red_Hat_Enterprise_Linux-5-Installation_Guide-en-US
相關推薦
Kickstart/Anaconda實現自動化安裝原理探究
內容概要: 1. 系統安裝基本流程圖示 2. Anaconda簡介 3. Kickstart簡介 4. 引導並指定安裝方式 5. kickstart檔案中的主要專案及引數介紹 6. kickstart配置檔案示例 7. RedHat 安裝光碟安裝樹介紹
kickstart/anaconda實現自動安裝
kickstart/anaconda實現kickstart是一個利用Anconda工具實現服務器自動化安裝的方法;通過生成的kickstart配置文件ks.cfg,服務器安裝可以實現從裸機到全功能服務的的非交互式(無人值守式)安裝配置; 1、安裝system-config-kickstart.noarch軟
CentOS6.9上安裝cobbler2.6實現自動化安裝Linux系統
cobbler 網絡安裝系統 CentOS6.9上安裝cobbler2.6實現自動化安裝Linux系統cobbler可以批量部署Linux系統,並實現無人值守安裝。cobbler依賴的服務:dhcp,tftp,http,pxe,kickstart服務對應的端口號為dhcp--67,68;tftp--6
kickstart模式實現批量安裝centos7.x系統
es2017 eth1 first 動態 centos7.x bios pre 順序 sub 1.1 安裝系統的方法 l 光盤(ISO文件,光盤的鏡像文件)===>>每一臺物理機都得給一個光驅,如果用外置光驅的話,是不是每臺機器都需要插一下 l
pxe實現自動化安裝centos系統
端口 錯誤 安裝系統 打開 use time splay rom sha 實驗:pxe實現自動化安裝centos7系統 將配置搭建為如下框架: . ├── initrd.img ├── menu.c32 ├── pxelinux.0
指令碼實現自動化安裝lamp&lnmp
#備註:前提是將lnmp和lnmp自動化指令碼寫好放在相應的路徑, 指令碼已寫好,請檢視我部落格中的 shell指令碼 專欄! 1 #!/bin/bash 2 #安裝lamp或者lnmp 3 4 path=/server/scripts #定義兩個指令碼路徑 5 [
Cobbler實現自動化安裝(下)--實現過程
實驗環境 [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [[email protected] ~]# ifconfig eno16777736
spring產生的代理物件都會實現SpringProxy介面原理探究【SpringProxy】
Spring使用JDK動態代理或者CGLIB的方式來生成代理物件,其中每個代理物件都會實現SpringProxy介面。具體原理請接著往下看: JDK動態代理建立代理的方法如下所示: public Object getProxy(@Nullable ClassLoader clas
Android——AIDL基礎實現demo以及原理探究
最近有一段時間沒寫部落格了,打算最近趁著有時間補補,本文是總結的AIDL的基本使用和原理。 分為兩個部分:一是簡單的上手demo,二是對程式碼邏輯進行分析。 一:簡單的AIDL小Demo: 服務端: 1.新建服務端工程AIDLserver,新建AIDL檔案: 2.開啟該
腳本安裝Discuz論壇(shell + Python 實現自動化安裝)
sed 個人 apache bash ado 退出 手動 引號 tcp 實驗環境 1.shell 腳本:linux centos 7 系統2.Python shell 腳本:window 系統 3.其他:python selenium 模塊,谷歌瀏覽器, 谷歌瀏覽器
實驗:PXE實現自動化安裝系統
min time sdi .com tps 家目錄 naconda 單位 centos7 實驗:PXE實現自動化安裝系統 前提條件:網卡:僅主機,關閉vmware 的dhcp服務 1 HTTPyum install httpd systemctl start httpd
劇本---Ansible實現自動化安裝MariaDB
The expect腳本 include 角色 cto database 數據庫數據 isa lin 創建劇本 構建思路,生成目錄樹 [[email protected] ansible]# tree . ├── ansible.cfg ├── hostname.
使用anaconda實現linux系統自動化安裝
系統安裝 anaconda的配置方式: (1) 互動式配置方式 (2) 通過讀取事先給定的配置檔案自動完成配置 按特定語法給出的配置選項 kickstart檔案 安裝boot引導選項: boot: text: 文字安裝方式 askmethod: 手動指定使用
kickstart自動化安裝--tftp+nfs+dhcp
優勢 ins efault too centos6.x disabled dia key usr 使用kickstart實現Centos 自動化安裝 Kickstart自動化安裝簡介: 規模化:同時裝配多臺 服務器 自動化 :安裝系統,配置各種服務 遠程實現:不需要光盤,
pxe+kickstart自動化安裝
環境 通過 ogg ask inf 壓縮 not x86_64 timeout 什麽是PXE? PXE(Pre-boot Execution Environment,預啟動執行環境)是Intel公司開發的最新技術,工作於Client/Server模式。PXE是一種遠程引導方
基於kickstart實現網絡共享以及制作光盤和U盤實現半自動安裝centos6系統
centos 一、使用kickstart實現網絡共享半自動化安裝。 ①在centos6上安裝system-config-kickstart、ftpd包。 ②使用system-config-kickstart命令,編輯裏面的內容,該文件生成ks.cfg文件。 修改完之後在File菜單中選擇Sa
如何利用PXE+kickstart實現批量安裝系統
pxe 無人值守 批量裝系統 kickstart PXE網絡快速自動安裝系統,以下實驗環境均在RedHat 7.2 配置PXE網絡裝機服務器,為了避免防火墻與selinux的幹擾,改為信任以及寬松模式 1. 將防火墻狀態設置為trusted 2.SELinux當前修改為permissiv
Kickstart自動化安裝系統及定制安裝
Kickstart 定制系統安裝 1.查看系統版本。防火墻,selinux關閉[root@fitme ~]# cat /etc/redhat-release > ## CentOS Linux release 7.2.1511 (Core)[root@fitme ~]# getenforce
CentOS自動化安裝: anaconda
anaconda 自動化安裝 anacondaREHL/CentOS系列的系統安裝程序名為anaconda(就是那個裝系統時,讓你下一步下一步的的程序),我們可以通過修改此程序的配置文件實現自動化安裝.應用於大批量的機器需要安裝系統時.anaconda是一個應用程序,要運行首先就需要內核,庫,在安裝光
使用LVS實現負載均衡原理及安裝配置詳解
配置 png 負載均衡 iptables .cn 詳解 文章 配置詳解 logs LVS是一個開源軟件,由章文嵩博士於1998年5月創立,可以實現Linux平臺下的簡單負載均衡。LVS是Linux Virtual Server的簡寫,是一個虛擬的服務器集群系統。LVS是基於