N22-妙手-第十周博客作業

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

2016-10-21 14_21_15-演示文稿1 - PowerPoint.png

    (1) POST階段

        加電自檢,確保每個設備能正常工作

    (2) BIOS

        按次序查找跟引導設備,第一個有引導程序的設備即為本次啟動要用到的設備

    (3) Bootloader:引導加載器

        GRUB:提供一個菜單,允許用戶選擇要啟動的系統或不同的內核版本;把用戶選擇的系統或內核版本裝載到內存特定的空間中解壓、展開,完成后將控制權交給內核

    (4) Kernel:

        自身初始化:

        探測可識別到的所有硬件設備

        加載硬件驅動設備。

        注意:如果不能識別設備,需要臨時生成ramdisk來動態識別設備的驅動,并加載硬件設備

    (5) roofts:

        只讀的方式掛載跟文件系統

    (6) /sbin/init:開始啟動用戶空間程序

        設置默認運行級別

        運行系統初始化腳本:腳本存放位置:/etc/rc.d/rc.sysinit

        設置主機名

        設置歡迎信息

        激活udev和SELinux

        掛載/etc/fstab文件中定義的所有文件系統

        檢測跟文件系統,如果一切正常,以讀寫方式重新掛載根文件系統

        設置系統時鐘

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

        激活lvm及raid設備

        激活swap設備

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

        清理操作

        關閉對應級別需要停止的服務,啟動對應級別需要開啟的服務

        設置登錄終端

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

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

        創建分區:

21.png

        安裝grub

N22-妙手-第十周博客作業22.png

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

        內核和ramdisk文件

N22-妙手-第十周博客作業23.png

        第二個分區上的rootfs

N22-妙手-第十周博客作業24.png

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

N22-妙手-第十周博客作業25.png

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

        grub.conf配置文件放置于/tmp/boot/grub

N22-妙手-第十周博客作業26.png

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

        新建目標主機:Test Installation of Grub

N22-妙手-第十周博客作業27.png

        啟動正常

28.png

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

    (1) 制作kickstart文件

        安裝制作kickstart文件程序

            yum -y install system-config-kickstart

        啟動制作kickstart文件程序

            ksystem-config-kickstart

    

    (2) 制作引導鏡像

        在根用戶家目錄下創建myboot目錄

        掛載光盤鏡像至/media/cdrom

        復制/media/cdrom/isolinux目錄至/root/myboot

        復制制作完成的ks.cfg至/root/myboot目錄下

        創建光盤鏡像: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/

31.png

        在VMWare中選擇boot.iso作為引導鏡像

32.png

4、寫一個腳本
  (1) 能接受四個參數:start, stop, restart, status
   start: 輸出“starting 腳本名 finished.”
   …

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

#!/bin/bash
#
cat << EOF
start)   start the service
stop)    stop the service
restart) restart the service
status)  check the status of the service
*****************************************
*****************************************
EOF

read -p "Please input your selection: " selection

case $selection in
start) 
    echo "starting $0 finished"
    ;;
stop)
    echo "stopping $0 finished"
    ;;
restart)
    echo "restarting $0 finished"
    ;;
status)
    echo "checking the status of $0 finished"
    ;;
*)
    echo "please input valid selection"
    ;;
esac

5、寫一個腳本,判斷給定的用戶是否登錄了當前系統;
  (1) 如果登錄了,則顯示用戶登錄,腳本終止;
  (2) 每3秒鐘,查看一次用戶是否登錄;

#!/bin/bash
#

while true; do
    if who | grep "^meng\>" >& /dev/null; then
        break
    fi
    sleep 3
done

echo "$(date +"%F %T") meng login" >> /tmp/userinfo.log

6、寫一個腳本,顯示用戶選定要查看的信息;
   cpu) display cpu info
   mem) display memory info
   disk) display disk info
   quit) quit
   非此四項選擇,則提示錯誤,并要求用戶重新選擇,只到其給出正確的選擇為止;

#!/bin/bash
#
cat << EOF
Display information as following shown selection
cpu) display cpu info
mem) display memory info
disk) display disk info
quit) quit
************************************************
EOF

while true; do
    read -p "Please input your selection: " selection

    case $selection in
    cpu) 
        lscpu
        ;;
    mem)
        free -m
        ;;
    disk) 
        fdisk -l /dev/vd[a-z]
        ;;
    quit)
        echo "Bye Bye"
        exit 0
        ;;
    *)
        echo "Please input valid selection"
        ;;
    esac
done

7、寫一個腳本
  (1) 用函數實現返回一個用戶的UID和SHELL;用戶名通過參數傳遞而來;
  (2) 提示用戶輸入一個用戶名或輸入“quit”退出;
    當輸入的是用戶名,則調用函數顯示用戶信息;
    當用戶輸入quit,則退出腳本;進一步地:顯示鍵入的用戶相關信息后,再次提醒輸出用戶名或quit:

#!/bin/bash
#


userInfo() {
        local userLine=$(grep $1 /etc/passwd)
        local userSHELL=${userLine##*:}
        local userID=$(echo $userLine | cut -f3 -d:)
        echo "$userSHELL and $userID"
        
}

quit() {
    if [ "$1" == "quit" ]; then
        echo "Bye Bye"
        exit 2
    fi
}
 
while true; do
    read -p "Please input your username or input 'quit': " choice

    if [ "$choice" == "quit" ]; then
        quit $choice
        break
    fi

    if id $choice >& /dev/null; then
        userInfo $choice
    fi
done

8、寫一個腳本,完成如下功能(使用函數)
   (1) 提示用戶輸入一個可執行命令的名字;獲取此命令依賴的所有庫文件;
   (2) 復制命令文件至/mnt/sysroot目錄下的對應的rootfs的路徑上,例如,如果復制的文件原路徑是/usr/bin/useradd,則復制到/mnt/sysroot/usr/bin/目錄中;
   (3) 復制此命令依賴的各庫文件至/mnt/sysroot目錄下的對應的rootfs的路徑上;規則同上面命令相關的要求;

read -p "Please input a command: " cmd

cmdPath=$(which $cmd | grep bin)

cpCmd() {

cp $cmdPath /mnt/sysroot$cmdpath
echo "Copy $cmdPath to path /mnt/sysroot/"

}

cpFile() {

libFile=$(ldd $cmdPath | grep -o "/[^[:space:]]\{1,\}")
for i in $libFile; do

    cp $lib /mnt/sysroot$cmdPath
    echo "Copy $libFile to path/mnt/sysroot/$cmdPath"
done
}

cpCmd

cpFile

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

(0)
mxb93mxb93
上一篇 2016-12-05 17:04
下一篇 2016-12-05 17:05

相關推薦

  • 正則表達式的概念和用法

    概念 正則表達式是對字符串操作的一種邏輯表達方式,很多情況下我們需要在茫眾多的文件中找到我們需要的文件時,就需要用到正則表達式了 正則表達式就如同一個過濾器,能夠篩選出希望得到的字符串。它可以檢索、替換符合我們自己規定格式的所有文本。 正則表達式分兩類: 基本正則表達式 擴展正則表達式 正則表達式的用法和選項 在Linux中,正則表達式通常會配合文本過濾工具…

    2017-06-10
  • samba服務

    一、什么是SAMBA   Linux之間可以通過NFS服務方便的掛載遠程主機上的共享目錄,那么SAMBA主要是用于實現Windows主機與Linux主機之間共享文件互訪。它們之間的通信依賴于CIFS協議。 二、SAMBA使用的daemon     1、nmbd:在Linux上實現NetBIOS;     &n…

    Linux干貨 2016-02-14
  • CentOS 7 安裝 mysql-5.7.14

    在centos7上安裝 路上遇過各種坑 把在centos7正確安裝mysql-5.7.14分享一下 1. CentOs7 默認的數據庫為MariaDB,先卸載MariaDB,否則安裝mysql,引起沖突 rpm -qa mariadb rpm -e –nodeps mariadb 2. 準備好工作環境 mkdir /application&nbs…

    Linux干貨 2017-05-07
  • SSL應用系列之一:CA證書頒發機構(中心)安裝圖文詳解

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://jeffyyko.blog.51cto.com/28563/140518        如果你需要在組織里發布exchange,或者需要給IIS配置SSL的訪問方…

    Linux干貨 2015-03-26
  • shuc之學習目標

    1,每天學習二小時 2,半年熟悉數據中心LINUX技術

    Linux干貨 2016-10-23
  • LVM管理

    1、邏輯卷管理器(LVM) (1)邏輯卷管理器(LVM,logical volume manager)可以整合多個物理分區在一起,讓這些分區看起來就像一個磁盤一樣,而且,還可以在將來其他的物理分區或將其從這個LVM管理的磁盤中刪除。這樣可以實現磁盤空間的動態管理,相對于普通的磁盤分區有很大的靈活性,同時LVM還有快照功能。 (2)邏輯卷管理器的基本術語 物理…

    Linux干貨 2016-09-01
欧美性久久久久