1. 程式人生 > >Linux學習第六周作業

Linux學習第六周作業

Linux學習 第六周作業

1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情)

第一步:加電自檢

這個步驟中,CPU在通電後會自動到指定位置找一段代碼執行加電自檢動作。

第二步:啟動BIOS

加載Bootloader程序,這個階段可以分為三步:1、運行GRUB第一階段,這個階段的作用是運行一個程序加載GRUB的程序代碼。2、由於GURB的程序代碼在磁盤上,第1.5階段就是掛載GRUB所在分區讀取GRUB程序代碼 第二階段就是運行GRUB程序並啟動內核程序。

第三步:內核加載

第一步探測可識別的所有硬件設備

第二步加載硬件設備驅動程序(有可能需要借助ramdisk)

第三步以只讀的方式掛在根文件系統(防止內核將根文件系統破壞,當系統運行正常後再以讀寫方式掛載)

第四步運行用戶空間的第一個應用程序/sbin/init

第四步:設置默認運行級別

第五步:運行系統初始化操作

1、設置主機名

2、設置歡迎信息

3、激活udev和selinux

4、掛載/etc/sysctl.conf文件的設置,來設定內核參數

5、檢測根文件系統,並以讀寫方式重新掛載根文件系統

6、設置系統時鐘

7、根據/etc/sysctl.conf文件的設置,來設定內核參數

8、激活LVM及RAID設備

9、加載額外設備的驅動程序

10、清理操作

第六步:關閉、啟動對應級別下要停止的服務

第七步:設置登錄終端

第八步:啟動圖形界面(可選)


2、通過現有系統,添加第二塊硬盤,在該硬盤上安裝grub及相關程序,可以讓第二塊硬盤成為其他設備的啟動盤(CentOS6)

第一步向現有系統添加硬盤

技術分享圖片

第二步 將新添加的硬盤進行分區處理

一共分為三個分區:一個用於boot分區,一個用於swap分區,一個用於root根分區

技術分享圖片

第三步 將分區格式化

在安裝grub的過程中,grub程序必須匹配boot目錄,所以/dev/sdb1的掛載點必須是以/boot結尾的路徑,現在演示的路徑為/tmp/boot

將用於根分區的分區掛載到/tmp/sysroot目錄上

第四步 在設備上安裝grub

技術分享圖片

現在簡單講下grub-install的命令

技術分享圖片

--root-directory的參數主要是為了指明boot目錄的父目錄,grub-install會在指定的父目錄裏找到boot目錄並安裝grub程序。

最後的/dev/sdb是指定grub安裝的磁盤設備。

現在來看看安裝了grub之後的/tmp/boot目錄

技術分享圖片

技術分享圖片

第五步 現在grub程序有了,需要將內核文件復制到/tmp/boot目錄下

技術分享圖片

第六步 創建或者修改/tmp/boot/grub/grub.config的配置文件

一般使用現有系統的配置文件進行改動

技術分享圖片

改的結果是這樣的。

必須要寫selinux=0 和 init=/bin/bash(如果沒有啟動程序,需要直接運行bash的情況下)

第七步 配置根文件系統創建必須要的目錄,目錄裏可以沒有文件,但是需要有目錄

技術分享圖片

第八步 將想要運行的程序的二進制文件和庫文件都拷入到相應的目錄中,通過ldd命令查看命令執行需要的庫文件

技術分享圖片


第九步 通過切換根進行簡單的應用測試

技術分享圖片

第十步 將新增的硬盤用於其他設備的啟動盤


3、制作一個kickstart文件以及一個引導鏡像。描述其過程。

KickstartAnaconda程序的配置文件,裏面記錄了Anaconda的執行過程的參數。Kickstart文件的生成有三種方式:1、在手動安裝完系統後在root的家目錄下就會有一個anaconda-ks.cfg的文件 2、通過system-config-kickstart命令生成 3、通過現有的kickstart文件來改

System-config-kickstart程序需要先安裝才能使用

技術分享圖片

上面這個就是kickstart-config-start程序的界面。

制作一個引導鏡像文件需要包含幾個重要的文件。

技術分享圖片

需要將光盤鏡像中的isolinux目錄封裝到引導鏡像中。

通過下面的命令去封裝鏡像文件

mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS6-test" -c isolinux/boot.cat -b isolinux/isolinux.bin -o /boot-test1.iso /boot-test/

最後一個參數/boot-test/是isolinux/xxx文件的父目錄。


Linux學習第六周作業