馬哥教育網絡班19期+第十周課程練習

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

POST

BIOS加電自檢,檢查CPU,內存等硬件是否正常,

–>Bootsequence(BIOS)

通過引導次序,找到第一塊有引導程序的設備,即完成。不管失敗與否,

–>Bootloader(MBR)

引導加載器程序,位于MBR前446字節,由操作系統提供,windows為ntloader,linux為grub,

功能:提供菜單,允許用戶選擇要啟動的系統和不同的內核版本,把選定的內核裝載到內存指定的空間解壓展開,并把控制權交給內核。

–>Kernel(ramdisk)

kernel自身初始化,探測所有設備,加載硬盤驅動、以只讀方式掛載根文件系統,運行用戶空間的第一個程序/sbin/init

–>rootfs(readonly)


–>/sbin/init

/sbin/init(/etc/rc.d/rc.sysinit — rc#.d–rc.local–/bin/local)

kernel自身初始化,探測所有設備,加載硬盤驅動、以只讀方式掛載根文件系統,運行用戶空間的第一個程序/sbin/init

Centos 5  SysV風格的啟動方式

1>運行/etc/inittab 設定運行級別 
    /etc/rc.d/保存rc1~6.d的目錄,每個目錄對應相應級別,目錄腳本全部鏈接到/etc/init.d/下面

    相應級別目錄下對應K*和S*開頭的腳本,根據對應級別啟動和停止相應腳本。

2>/etc/rc.d/rc.sysinit 執行該腳本,做以下操作

     (1) 設置主機名;

     (2) 設置歡迎信息;

     (3) 激活udev和selinux;

     (4) 掛載/etc/fstab文件中定義的文件系統;

     (5) 檢測根文件系統,并以讀寫方式重新掛載根文件系統;(內核是只讀掛載,這里重新掛載完成根切換)

     (6) 設置系統時鐘;

     (7) 激活swap設備;

     (8) 根據/etc/sysctl.conf文件設置內核參數;

     (9) 激活lvm及software raid設備;

     (10) 加載額外設備的驅動程序;

     (11) 清理操作;


Centos 6 upstart啟動風格

       /etc/inittab,  運行級別配置文件

       /etc/init/*.conf   啟動腳本來決定/etc/init.d/下的哪些服務器啟動與否

       /etc/init.d/啟動腳本和/etc/rc.d/init.d/一樣


2、為運行于虛擬機上的CentOS 6添加一塊新硬件,提供兩個主分區;

  (1) 為硬盤新建兩個主分區;并為其安裝grub;

添加一塊硬盤,創建2個分區,避免與/boot沖突,/dev/sdb1;/dev/sdb2

格式化并掛載分區/mnt/boot;/mnt/rootfs

grub-install –root-directory=/mnt/ /dev/sdb  #安裝grub 指定根路徑和磁盤

馬哥教育網絡班19期+第十周課程練習cf828d5273c8466ca20458f436259bc7.jpg

  (2) 為硬盤的第一個主分區提供內核和ramdisk文件; 為第二個分區提供rootfs;

拷貝/boot/目錄下的內核文件和ramdisk文件 至/mnt/boot/下

馬哥教育網絡班19期+第十周課程練習96423f8ecb554f39887b859d4d046509.jpg

  (3) 為rootfs提供bash、ls、cat程序及所依賴的庫文件;

創建和根目錄相同的目錄文件

拷貝/bin/ls /bin/bash /bin/cat 至/mnt/boot 對應的目錄內

ldd 命令查詢ls,bash,cat 對應的庫文件,拷貝至/mnt/boot對應目錄

馬哥教育網絡班19期+第十周課程練習clipboard.png

  (4) 為grub提供配置文件;

指定內核root=/dev/sda2根目錄 啟動程序init=/bin/bash

馬哥教育網絡班19期+第十周課程練習clipboard.png

  (5) 將新的硬盤設置為第一啟動項并能夠正常啟動目標主機;

新建虛擬機使用現有磁盤 

馬哥教育網絡班19期+第十周課程練習clipboard.png

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

kickstart文件的格式:

  命令段:指明各種安裝前配置,如鍵盤類型等;

  程序包段:指明要安裝的程序包組或程序包,不安裝的程序包等;

   %packages  開始

   @group_name

   package

   -package

   %end 結束

  腳本段:

   %pre: 安裝前腳本

    運行環境:運行于安裝介質上的微型Linux環境 isolinux/anaconda

   %post: 安裝后腳本

    運行環境:安裝完成的系統; 支持所有shell 腳本。

創建引導光盤:無服務器情況下,

   # mkisofs -R -J -T -v –no-emul-boot –boot-load-size 4 –boot-info-table -V "CentOS 6.6 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso myiso/

   也要自己指定KS文件。在本身光盤上。

   boot:linux ks=cdrom:/myks.cfg

   可以直接寫道linux.cfg 配置內的

   append initrd=initrd.img ks=cdrom:/myks.cfg 

4、寫一個腳本

  (1) 能接受四個參數:start, stop, restart, status

   start: 輸出“starting 腳本名 finished.”

   …

  (2) 其它任意參數,均報錯退出;

clipboard.png

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

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

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

馬哥教育網絡班19期+第十周課程練習clipboard.png


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

   cpu) display cpu info

   mem) display memory info

   disk) display disk info

   quit) quit

   非此四項選擇,則提示錯誤,并要求用戶重新選擇,只到其給出正確的選擇為止;

馬哥教育網絡班19期+第十周課程練習clipboard.png


7、寫一個腳本

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

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

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

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

馬哥教育網絡班19期+第十周課程練習clipboard.png


8、寫一個腳本,完成如下功能(使用函數)

   (1) 提示用戶輸入一個可執行命令的名字;獲取此命令依賴的所有庫文件;

   (2) 復制命令文件至/mnt/sysroot目錄下的對應的rootfs的路徑上,例如,如果復制的文件原路徑是/usr/bin/useradd,則復制到/mnt/sysroot/usr/bin/目錄中;

   (3) 復制此命令依賴的各庫文件至/mnt/sysroot目錄下的對應的rootfs的路徑上;規則同上面命令相關的要求;

08337353fd67467e9fa57f24234ee6f5.jpg



原創文章,作者:Net19_Lam,如若轉載,請注明出處:http://www.www58058.com/25146

(0)
Net19_LamNet19_Lam
上一篇 2016-07-21 04:26
下一篇 2016-07-22 10:05

相關推薦

  • linux是隨身筆記part1

    第一周學習

    2018-06-25
  • iptables/netfilter入門

      iptables是Linux中的重要組件,它是對報文進行過濾,在2001年的1月Linux 2.4內核發布以來,就已經是Linux的一部分了。     現在的iptbales已經成為了功能很大的防火墻,具備了專有的商業防火墻的大多數的功能了。 1、防火墻簡介 2、iptables/netfilter簡介 …

    Linux干貨 2017-01-31
  • loganalyzer——日志分析工具

    Loganalyzer是一款syslog日志和其他網絡事件數據的Web前端。它提供了對日志的簡單瀏覽、搜索、基本分析和一些圖表報告的功能。數據可以從數據庫或一般的syslog文本文件中獲取,所以LogAnalyzer不需要改變現有的記錄架構。基于當前的日志數據,它可以處理syslog日志消息,Windows事件日志記錄,支持故障排除,使用戶能夠快速查找日志數…

    Linux干貨 2016-10-18
  • Linux系統啟動過程中grub故障與修復(一)

    GRUB 是引導裝入器 — 它負責裝入內核并引導 Linux 系統。GRUB 可以引導多種操作系統,如Linux、 DOS、 Windows 。 GRUB共分為三個階段:stage1主要負責BIOS和GRUB之間的交接,載入存放于各個分區中的開機文件;stage1.5是連接stage1和stage2之間的通道,起著過渡的作用,負責識別stage2所在/bo…

    2017-09-03
  • 馬哥教育網絡班19期+第九周課程練習

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; 2、寫一個腳本     (1) 獲取當前主機的主機名,保存于hostname變量中;     (2) 判斷此變量的值是否為localhost,如果是…

    2016-07-04
  • 最簡單的Linux系統——更加深入了解Linux啟動過程

    自制一個最簡單的Linux: 1、有一個新的磁盤,并創建分區 2、掛載分區,創建目錄 3、拷貝內核文件 4、創建MBR和grub.conf文件 5、創建/etc/fstab文件,設置開機自動掛載 6、拷貝一個bash程序 7、卸載分區,以新磁盤重啟系統

    Linux干貨 2016-09-11

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-07-22 11:15

    寫的很好,排版還可以在漂亮一點,4 6 8 在仔細看看,不對。加油

欧美性久久久久