CentOS啟動流程及Shell腳本編程練習

一、請詳細描述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)其他任意參數,均報錯退出

10.4

五、寫一個腳本,判斷給定的用戶是否登錄了當前系統

(1)如果登錄了,則顯示用戶登錄,腳本終止

(2)每3秒鐘,查看一次用戶是否登錄

10-5

六、寫一個腳本,顯示用戶選定要查看的信息

cpu)display cpu info

mem)display memory info

disk)display disk info

quit)quit10.6

七、寫一個腳本

(1)用函數實現返回一個用戶的UID和SHELL;用戶名通過參數傳遞而來

(2)提示用戶輸入一個用戶或輸入”quit”退出

當輸入的是用戶名,則調用函數顯示用戶信息;

當用戶輸入quit,則退出腳本;進一步地:顯示鍵入的用戶相關信息后,再次提醒輸出用戶名或quit

10.7

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/88910

(0)
N27_wjxN27_wjx
上一篇 2017-11-26
下一篇 2017-11-26

相關推薦

  • Linux文本處理三劍客之一grep

            終于又到了一周一篇博客的日子 在這學習已經三周了,慢慢養成了寫博客的好習慣,也慢慢的懂得了怎么寫博客。這周給我印象最深刻的就是正則表達式,原本打算要寫前幾天所學的內容,但是昨天學到正則表達式讓我有點懵,所以我今天會用一天的時間去給大家詳細講解正則表達式,爭取讓那些和我一樣困解的人能夠豁然開朗,也正是因為…

    2017-07-29
  • N21沉舟-第八周作業

    1、  請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 #網橋:鏈接層設備,基于MAC地址過濾。 #集線器:物理層設備,基本都屬于半雙工模式。集線器與網橋在現在的局域網中基本都不用了。 #二層交換機:工作在數據鏈路層,基本MAC轉發數據,功能齊全的可支持VLAN等功能。常見的有100/1000M、16口/24口/48口。…

    Linux干貨 2016-08-24
  • 初學Linux之 vim 文本編輯器

    vim 的模式切換;命令模式相關操作,拓展命令模式的相關操作;可視化和多窗口;定制vim的工作特性;vim幫助

    2017-12-31
  • Linux磁盤配額

    磁盤配額 什么是磁盤配額? 磁盤配額(Quota)是Linux系統中由于是多用戶、多任務的環境,所以會有多用戶共同使用一個硬盤空間的情況發生,如果其中少數幾個用戶大量占掉了磁盤空間的話,那肯定影響其他用戶的使用權限。因此我們就需要對每個用戶限制硬盤使用空間,來避免此種情況的發生,這就是磁盤配額。 Quota的一般用途: *針對WWW server,例如:每個…

    Linux干貨 2016-09-01
  • 磁盤管理

    磁盤管理

    Linux干貨 2017-10-27
  • 搜索引擎-倒排索引基礎知識

    1.單詞——文檔矩陣        單詞-文檔矩陣是表達兩者之間所具有的一種包含關系的概念模型,圖3-1展示了其含義。圖3-1的每列代表一個文檔,每行代表一個單詞,打對勾的位置代表包含關系。          …

    Linux干貨 2015-12-10

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-12-08 16:36

    思路清晰,步驟詳細,進度有點慢

欧美性久久久久