簡述grub啟動載入程式和製作kickstart檔案
1、簡述linux作業系統啟動流程
2、簡述grub啟動載入程式配置及命令列介面詳解
3、實現kickstart檔案製作與光碟映象製作
1、簡述linux作業系統啟動流程
- 啟動流程:
- BIOS上電自檢(POST)
- 引導載入程式bootloader(MBR)
- 核心初始化(ramdisk技術)
- 根切換
- 啟動系統第一個程式
在按下電源鍵後電腦開始執行BIOS(基本輸入輸出系統)的POST(上電自檢)過程,它將找到裝置的引導扇區,幷包含有效記錄的第一個引導扇區(MBR)裝載入記憶體,並且控制權也將轉移到此段程式碼。根據MBR中的資訊找到磁碟上的kernel檔案和initrd檔案,如果bootloader是grub2那將繼續載入隨後扇區中的1.5階段程式碼其主要功能是執行存放階段2檔案的/boot檔案系統的驅動程式,並將載入相關的驅動程式。階段2的grub檔案都存放於/boot/grub2目錄下,在這個時候核心已經被載入到記憶體中,如果是ramdisk則展開一個偽根檔案系統,藉助這個來載入相關的模組。然後把真正的根掛載上來,將系統控制權移交給核心,並做根切換,然後核心啟動第一個程式init或者systemd。
是所有程式的父程式,它將設定預設的執行級別,執行系統初始化指令碼,並關閉或啟動系統對應級別下的服務,啟動終端。
2、簡述grub啟動載入程式配置及命令列介面詳解
grub的三個階段
stage 1: 用於啟動Boot loader 來載入stage2的內容至記憶體中
stage 1_5:用於識別和載入核心和stage2所在分割槽的檔案系統的相關驅動程式,引導stage2
stage 2: 讀取 grub.conf 配置檔案,並真正開始載入程式
grub的配置檔案
grub程式在引導啟動時會按照檔案的配置引數去引導啟動系統
檔案的內容如下:
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
password --md5 $1$CUmM50$x8G4awdSAPT4SZjvWSE0/0
title CentOS 6 (2.6.32-642.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=/dev/mapper/vg_centos6-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=vg_centos6/lv_swap crashkernel=auto LANG=zh_CN.UTF-8
rd_LVM_LV=vg_centos6/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-642.el6.x86_64.img
default=0:表示預設選擇第一個選項進行配置
timeout: 表示選擇選單的時間,如果過了這個時間沒有選擇則表示使用預設選項
splashimage: 指定引導選單中的背景圖片的路徑
titile: 指定選項的名稱
root: 表示kernel和initrd檔案所在的分割槽路徑,而不是”根分割槽”;其格式為:
root (hd0,0) 第一個數字表示第幾塊硬碟,第二個數字表示硬碟上的第幾個分割槽,都是從零開始
kernel:指定要執行的核心檔案路徑,後面可以加引數,根掛載的目錄,以何種方式去掛載,lvm等的啟用,語言的設定,鍵盤等外設的設定
initrd:為核心執行指定的ramdisk檔案,版本必須與核心保持一致
grub的命令列介面
在選單頁面按c即可進入命令列介面,我們可以配置相關的grub設定,等同於在配置檔案中做出的設定常用的指令有:
help:檢視命令幫助;
root ():指定ramdisk和核心檔案所在的分割槽,如root(hd0,0)。
find (hd0,0) /path/to/file:用於查詢對應分割槽下的檔案kernel /path/to/kernel_file:用於指定要執行的kernel檔案。
initrd /path/to/ramdisk_file:指定ramdisk檔案;
boot:以當前配置好的grub配置啟動系統;
3、實現kickstart檔案製作與光碟映象製作
Kickstart簡介
kickstart利用anaconda工具實現自動化安裝,通過生成的的配置檔案,伺服器可以實現安裝的全自動化不需要人機互動,該檔案裡包含anconda在安裝系統以及安裝後的一些必要的配置資訊。
kickstart檔案的位置:
ks=
DVD drive: ks=cdrom:/PATH/TO/KICKSTART_FILE
Hard Drive: ks=hd:/DEVICE/PATH/TO/KICKSTART_FILE
HTTP Server: ks=http://server
FTP Server: ks=http://server
HTTPS Server: ks=http://server
如果時使用光碟安裝,則則需要將配置檔案isolinux/isolinux.cfg的apped後面新增ks=cdrom:/ks.cfg(需要將ks檔案放在光碟的根目錄下)
label linux
menu label ^Install CentOS 7 thsi is mytest
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 ks=cdrom://ks.cfg
kickstart檔案的格式
install
cdrom
lang zh_CN.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto static --ip 192.168.31.200 --netmask 255.255.255.0 --gateway 192.168.31.1 --noipv6 --nameserver 114.114.114.114 --hostname Centos6.8
rootpw --iscrypted $6$xU9mWzHlFMaLyxbw$30awESpjiQF0Gg/qtYAa8eOpOJicBDD2noR1uS92lb.hSnuir3bqAObiy2OSnJ0tevlzZxvjVLY8mU1P3fgNV/
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --enforcing
timezone --utc Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100
%packages
@base
@chinese-support
@workstation-policy
@x11
mtools
pax
python-dmidecode
libXmu
%end
1、命令段:
命令段:
指定各種安裝前配置選項,如鍵盤型別等;
必備命令
可選命令
2、程式包段:
指明要安裝程式包,以及包組,也包括不安裝的程式包;
%packages
@group_name:需要安裝的包組
package:需要安裝的包
-package:不需要安裝的包
%end
3、指令碼段:
預設檔案裡並沒有這一段
%pre:安裝前指令碼
執行環境:執行安裝介質上的微型Linux系統環境;
%post:安裝後指令碼
執行環境:安裝完成的系統;
使用system-config-kickstart工具建立ks檔案
也可以通過檔案開啟一個模板,模板位於/root/anaconda.cfg
配置完成後用ksvalidator命令檢查kickstart檔案是否有語法錯誤:
~]# ksvalidator ks.cfg
如無報錯資訊,至此kickstart檔案製作完成。
製作光碟映象
我們自己製作的光碟映象可以不加不需要的軟體包只將isolinux目錄以及我們剛剛製作的ks檔案也複製過去同時複製過來的檔案要新增寫許可權,修改isolinux.cfg檔案指明ks檔案的位置,這裡我們修改下標籤以便更直觀得看到實驗得效果:
建立映象檔案:
mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6 x86_64 boot" -c isolinux/boot.cat -b isolinux/isolinux.bin -o /tmp/mycdrom.iso /mnt/mycdromiso
然後測試其效果我們將它傳給windows然後用vmware建立一臺虛擬機器用我們自己建得映象檔案來安裝系統
到此一個kicksart檔案就製作完成啦,需要注意得是mkisofs命令製作映象檔案得格式很重要,如果製作錯了後面得實驗就都無法進行了。
相關文章
- 『學了就忘』Linux啟動引導與修復 — 70、grub啟動載入程式的配置檔案說明Linux
- 『學了就忘』Linux啟動引導與修復 — 69、啟動載入程式(grub)Linux
- js動態載入 js檔案和 css檔案JSCSS
- wim檔案製作U盤啟動盤教程【圖文】
- wim檔案製作隨身碟啟動盤教程【圖文】
- SpringBoot啟動如何載入application.yml配置檔案Spring BootAPP
- PHP名稱空間與自動載入簡述PHP
- Spring Boot啟動流程簡述Spring Boot
- 【系統之音】Android程式的建立及啟動簡述Android
- oracle11g啟動過程中載入配置檔案Oracle
- 簡述Linux開機啟動流程Linux
- 遠端登入和複製檔案
- Matlab製作shp檔案Matlab
- Profile配置和載入配置檔案
- UEFI和Legacy相容啟動U盤製作
- 製作ISO檔案 與 提取ISO檔案
- Linux 中複製和移動檔案Linux
- PHP檔案的自動載入(autoloading)PHP
- javascript如何動態載入js檔案JavaScriptJS
- 如何製作windows啟動盤 u盤製作win10啟動盤WindowsWin10
- 便捷的檔案啟動器:Butler 啟用下載
- Python製作egg檔案包Python
- 原生JS動態載入JS、CSS檔案及程式碼指令碼JSCSS指令碼
- Drools與動態載入規則檔案
- PHP:檔案載入PHP
- Linux好玩的:給GRUB2載入程式給個背景吧Linux
- Ventoy製作啟動盤和使用VMware測試啟動盤(論文版)
- 載入常量-從檔案中載入
- 如何製作一個 RPM 檔案
- rootfs -根檔案系統製作
- 使用zig語言製作簡單部落格網站(四)專案檔案整理網站
- Unity3D動態載入FBX檔案Unity3D
- springboot擴充套件配置檔案自動載入Spring Boot套件
- Protobuf 動態載入 .proto 檔案並操作 Message
- 微信小程式檔案預覽和下載-檔案系統微信小程式
- Ubuntu18.04啟動盤製作Ubuntu
- 檔案程式設計、檔案下載程式設計
- 通過 Grub 來引導啟動 UBUNTUUbuntu