一、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情)
第一步:POST加電自檢
主要實現的功能是檢測各個外圍硬件設備是否存在而且能夠正常運行起來,實現這一自檢功能的是固化在主板上的ROM(主要代表為CMOS)芯片上的BIOS(Basic Input/Output System)程序。
第二步:Boot Sequence(選擇啟動設備以加載MBR)
主要實現的功能是選擇要啟動的硬件設備,選擇了之后就可以讀取這個設備上位于MBR里頭的bootloader了。這一步的實現是這樣的:根據BIOS中對啟動順序的設定,BIOS自己會依次掃描各個引導設備,然后第一個被掃描到具有引導程序(bootloader)的設備就被作為要啟動的引導設備。
第三步:加載bootloader(MBR)
這一步實現起來的步驟比較多,前面的BIOS通過讀取并執行啟動設備的MBR中的bootloader,而bootloader要實現的功能就是提供一個菜單給用戶,讓用戶去選擇要啟動的系統或不同的內核版本,然后把用戶選擇的內核版本加載至RAM中的特定空間,接著在RAM中解壓、展開,而后把系統控制權移交給內核。
第四步:Kernel自身初始化
Kerenl在得到系統控制權之后,首先要進行自身初始化
(1)探測可識別到的所有硬件設備;
(2)加載硬件驅動程序,即加載真正的根文件系統所在設備的驅動程序(有可能會借助于ramdisk加載驅動);
(3)以只讀方式掛載根文件系統;
(4)運行用戶空間的第一個應用程序:/sbin/init.
第五步:init管理用戶空間服務進程
init可以理解成是內核派來管理用戶空間的使者,就好像天使代表上帝來訪問人間一樣。init這個初始化程序會根據其配置文件執行一系列操作。
二、為運行于虛擬機上的Centos 6 添加一塊新硬盤,提供兩個主分區;
1.為硬盤新建兩個主分區;并為其安裝Grub
echo “- – -” > /sys/class/scsi_host/hos0/scan
fdisk /dev/sdb
mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdb2
mount /dev/sdb2 /mnt/minilinux/
mkdir -v /mnt/minilinux/{etc,bin,sbin,lib,lib64,var,proc,usr,sys,boot,dev,tmp}
mount /dev/sdb1 /mnt/minilinux/boot/
grub-install –root-directory=/mnt/minilinux /dev/sdb
2.為硬盤的第一個主分區提供內核和ramdisk文件;為第二個分區提供rootfs
cp /boot/initramfs-2.6.32-431.el6.x86_64.img /mnt/minilinux/boot/initramfs.img
cp /boot/vmlinuz-2.6.32-431.el6.x86_64 /mnt/minilinux/boot/vmlinuz
3.為rootfs提供bash、ls、cat程序及所依賴的庫文件
cp /bin/{bash,ls,cat} /mnt/minilinux/bin/
cp $(ldd /bin/{bash,ls,cat} |grep -o “/.*\.[0-9]”) /mnt/minilinux/lib64/
chroot /mnt/minilinux/
4.為grub提供配置文件
vi /mnt/minilinux/boot/grub/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Minilinux
root (hd0,0)
kernel /vmlinuz root=/dev/sda2 selinux=0 init=/bin/bash quiet
initrd /initramfs.img
5.將新的硬盤設為第一啟動項并能正常啟動目標主機
三、制作一個Kickstart文件以及一個引導鏡像,描述其過程
1、制作Ks文件
yum -y install system-config-kickstart
system-config-kickstart
2、創建引導鏡像
mkdir /root/miniboot
cp -r /media/CentOS_6.5_Final/isolinux/ /root/miniboot/
cp /root/ks.cfg /root/miniboot/
vim /root/miniboot/isolinux/isolinux.cfg
mkisofs -R -J -T -v –no-emul-boot –boot-load-size 4 –boot-info-table -V “CentOS 6 miniboot” -c isolinux/boot.cat -b isolinux/isolinux.bin -o? /root/boot.iso?? /root/miniboot/
四、寫一個腳本
(1)能接受四個參數:start,stop,restart,status
start:輸出”starting腳本名finished”
(2)其他任意參數,均報錯退出
五、寫一個腳本,判斷給定的用戶是否登錄了當前系統
(1)如果登錄了,則顯示用戶登錄,腳本終止
(2)每3秒鐘,查看一次用戶是否登錄
六、寫一個腳本,顯示用戶選定要查看的信息
cpu)display cpu info
mem)display memory info
disk)display disk info
quit)quit
七、寫一個腳本
(1)用函數實現返回一個用戶的UID和SHELL;用戶名通過參數傳遞而來
(2)提示用戶輸入一個用戶或輸入”quit”退出
當輸入的是用戶名,則調用函數顯示用戶信息;
當用戶輸入quit,則退出腳本;進一步地:顯示鍵入的用戶相關信息后,再次提醒輸出用戶名或quit
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/88910
思路清晰,步驟詳細,進度有點慢