1、簡述linux操作系統啟動流程
當電腦開機時內存是空的,開機時BIOS會將RAM中的程序映射到內存中來(BIOS中是存儲在RAM中的一段程序代碼,這段代碼可以實現電腦自身狀況的檢查,BIOS中設置了如何檢查健康狀況),自檢完成沒有問題后會根據BIOS中的啟動順序去挨個找啟動設備的MBR,如果設備的MBR壞了,系統會報錯,無法啟動,只有在第一個設備沒有MBR時才會找第二個設備,第二個如果是硬盤的話,就會讀取硬盤的MBR,因為硬盤的MBR開始是bootloader,所以BIOS這段程序就會把bootloader裝載到內存,這段bootloader會再讀取硬盤MBR中的分區表,分區表大小64bytes。之后會根據我們的配置加載分區上的操作系統,因此這段bootloader一定要能讀取分區表,如果沒有分區表就找不到操作系統了。bootloader加載進內存后,BIOS就退出了,退出前會把執行的指令告訴CPU。bootloader根據我們先的操作系統運行,會找到操作系統那個分區上操作系統的內核,找到后就會將內核加載進內存,內核讀進內存后會先解壓縮,之后bootloader將管理權交給內核,于是內核開始啟動自身,之后根據電腦能找到文件系統在什么地方,以及要啟動的程序,最終啟動完成。
2、簡述grub啟動引導程序配置及命令行接口詳解
grub工作階段
1st: mbr, bootloader加載到mbr
1.5st: 驅動,mbr之后的扇區,提供stage2在的分區的文件系統驅動;
2st: boot目錄所在分區
grub功用:
(1) 提供菜單、并提供交互式接口
e: 編輯模式,用于編輯菜單;
c: 命令模式,交互式接口;
(2) 加載用戶選擇的內核或操作系統
允許傳遞參數給內核
可隱藏此菜單
(3) 為菜單提供了保護機制
為編輯菜單進行認證
為啟用內核或操作系統進行認證
配置文件:/boot/grub/grub.conf
配置項:
default=#: 設定默認啟動的菜單項;落單項(title)編號從0開始;
timeout=#:指定菜單項等待選項選擇的時長;
splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE:指明菜單背景圖片文件路徑;
hiddenmenu:隱藏菜單;
password [–md5] STRING: 菜單編輯認證;
title TITLE:定義菜單項“標題”, 可出現多次;
root (hd#,#):grub查找stage2及kernel文件所在設備分區;為grub的“根”;
kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:啟動的內核
initrd /PATH/TO/INITRAMFS_FILE: 內核匹配的ramfs文件;
password [–md5] STRING: 啟動選定的內核或操作系統時進行認證;
進入單用戶模式:
(1) 編輯grub菜單(選定要編輯的title,而后使用e命令);
(2) 在選定的kernel后附加
1, s, S或single都可以;
(3) 在kernel所在行,鍵入“b”命令;
grub的命令行接口
help: 獲取幫助列表
help KEYWORD: 詳細幫助信息
find (hd#,#)/PATH/TO/SOMEFILE:
root (hd#,#)
kernel /PATH/TO/KERNEL_FILE: 設定本次啟動時用到的內核文件;額外還可以添加許多內核支持使用的cmdline參數;
例如:init=/path/to/init, selinux=0
initrd /PATH/TO/INITRAMFS_FILE: 設定為選定的內核提供額外文件的ramdisk;
boot: 引導啟動選定的內核;
手動在grub命令行接口啟動系統:
grub> root (hd#,#)
grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE
grub> initrd /initramfs-VERSION-RELEASE.img
grub> boot
安裝grub:
(1) grub-install
grub-install –root-directory=ROOT /dev/DISK
(2) grub
grub> root (hd#,#)
grub> setup (hd#)
3、實現kickstart文件制作與光盤鏡像制作
通過anaconda自動生成的ks配置文件可以實現自動安裝操作系統,在配置文件中可以定義安裝時的其本信息,如語言,管理員密碼,時區,網絡,磁盤分區,防火墻,需要安裝的軟件,系統的安裝源,安裝前腳本,安裝后腳本等。定義好之后要生成ks.cfg配置文件,之后可將配置文件放于網絡上,通過系統鏡像引導啟動,并指定ip地址,掩碼,ks文件所在網絡路徑,讓主機可以通過網絡加載配置文件實現自動安裝?;蛘呖梢酝ㄟ^將ks配置文件與isolinux目錄打包成一個啟動鏡像(isolinux目錄是系統鏡像中的一個目錄,是一個小的系統,可以實現引導啟動),通過此啟動鏡像來啟動加載ks配置文件,并按照ks配置文件中的系統安裝源(這個安裝源是自定義的,可以是本地網絡中的源,也可以是互聯網上的源)實現自動安裝
測試安裝使用CentOS6.6系統,測試6.5時總在進入安裝界面后提示不支持CPU。但6.6版本也會提示不支持磁盤。取消使用之前所用的安裝后自動生成的ks.cfg文件后,自建ks.cfg文件可以安裝。
1.準備centos6.6,將鏡像掛載到/var/www/html/media目錄下,為的是可以在安裝httpd后訪問此目錄
2.安裝system-config-kickstart,X窗口系統,桌面,桌面開發這四個軟件,因為安裝后三個軟件才能打開kickstart的圖形界面。
3.在打開kickstart圖形界面后要注意第二項安裝方法要寫明光盤掛載的目錄,這里用了HTTP方法,軟件地址192.168.1.6,目錄/media/,(不知道不能安裝與media后的斜線是否有關系,需再測試);還要注意劃分分區,(需再測試不劃分是否可以安裝),另外要選擇不要初始化磁盤標簽,不要清除引導記錄
選擇好之后要保存ks.cfg文件,保存在/root目錄下。另外在/root目錄下創建myboot目錄。將/var/www/html/media/目錄下的isolinux目錄和ks.cfg復制到myboot目錄下。下面有兩種安裝方法
1.將ks.cfg文件復制到/var/www/html目錄下,安裝時用系統盤引導,之后按ESC,輸入boot: linux text ip=192.168.1.64 netmask=255.255.255.0 ks=http://192.168.1.6/ks.cfg。之后就可以自動安裝了。
2.這種方法不將ks文件放在網絡上,而是同isolinux一起做成啟動光盤。創建光盤前可以修改isolinux目錄中的isolinux.cfg文件,在第一段label linux中加入append initrd=initrd.img ip=192.168.1.10 netmask=255.255.255.0 ks=cdrom:/ks.cfg。之后用命令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 /root/boot.iso myboot/制作光盤。之后將光盤復制到主機桌面,用虛擬機加載此光盤啟動自動安裝?;蚩梢孕薷膋s.cfg文件,在其中加入network –onboot yes –device eth0 –bootproto dhcp –noipv6,但這要求有dhcp服務器,如果沒有就不能自動獲得地址了。
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/91186