N25第十周博客作業

1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情)
        (1)post:加電自檢
                主要是bios完成,檢查主機各個組件是否完好,能否達到運行要求;
        (2)Boot Sequence:啟動順序
                這一步是按照bios的預先設置來選擇首選啟動項;
        (3)Boot Loader:引導加載器
                這一步是在選擇啟動介質后,在介質的第一扇區會有一段小程序來引導我們啟動不同的系統或內核版本;
        (4)kernel:加載內核
                 當選定內核或系統,由Bootloader將內核或系統加載到 內存中特定空間中,解壓、展開,而后把系統控制權叫給內核;
        (5)運行/sbin/init
                當內核被喚醒后,它開始完成系統的構建、加載驅動,然后開始運行第一個程序:init;
        (6)選擇默認級別:
                init會根據/etc/inittab等文件的定義來選擇默認啟動級別,完成系統開啟;
        (7)運行系統初始化腳本,完成系統初始化:
                在系統開啟后,init會根據/etc/rc.d/rc.sysinit來初始化系統,包括設置主機名、設置歡迎信息、激活udev和SELinux、掛載/etc/fstab文件中定義的所有文件系統等;
        (8)關閉對應級別下要停止的服務和啟動對應級別下需要開啟的服務:
                根據init配置文件,關閉/etc/rc.d/rc#.d/下K*的所有服務,開啟S*的所有服務,注#代表啟動級別;
        (9)設置登陸終端:
                這一步主要是開啟一個登陸接口,并為之加載環境變量、別名配置等文件,如果是5級別的話,還會開啟圖形界面,加載圖形界面所需的各種插件。

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

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

       ~]#  mkdir /mnt/{sysboot,sysroot}

       ~]#  fdisk /dev/sdb

              n–> p–>1–>+500M

              n–> p–>2–>+2G

              w

        ~]# partprobe /dev/sdb

        ~]# mkfs.ext4 /dev/sdb1

        ~]# mkfs.ext4 /dev/sdb2

        ~]# mount /dev/sdb1 /mnt/sysboot

        ~]# mount /dev/sdb2 /mnt/sysroot

        ~]# grub-install –root-directory=/mnt  /dev/sdb

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

        ~]# cp /boot/vmlinuz-2.6.32-431.el6.x86_64  /mnt/sysboot/vmlinuz

        ~]# cp /boot/initramfs-2.6.32-431.el6.x86_64.img /mnt/sysboot/initramfs.img     

        ~]# mkdir /mnt/sysroot/{bin,proc,lib64,mnt,sbin,…}   

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

        [root@localhost sysroot]# ldd /bin/{cat,ls,bash}

/bin/cat:

linux-vdso.so.1 =>  (0x00007fff91dff000)

libc.so.6 => /lib64/libc.so.6 (0x000000354a200000)

/lib64/ld-linux-x86-64.so.2 (0x0000003549a00000)

/bin/ls:

linux-vdso.so.1 =>  (0x00007fffc3f22000)

libselinux.so.1 => /lib64/libselinux.so.1 (0x000000354ba00000)

librt.so.1 => /lib64/librt.so.1 (0x000000354b200000)

libcap.so.2 => /lib64/libcap.so.2 (0x000000354de00000)

libacl.so.1 => /lib64/libacl.so.1 (0x0000003555a00000)

libc.so.6 => /lib64/libc.so.6 (0x000000354a200000)

libdl.so.2 => /lib64/libdl.so.2 (0x000000354aa00000)

/lib64/ld-linux-x86-64.so.2 (0x0000003549a00000)

libpthread.so.0 => /lib64/libpthread.so.0 (0x000000354a600000)

libattr.so.1 => /lib64/libattr.so.1 (0x0000003558600000)

/bin/bash:

linux-vdso.so.1 =>  (0x00007fff00dff000)

libtinfo.so.5 => /lib64/libtinfo.so.5 (0x000000355b200000)

libdl.so.2 => /lib64/libdl.so.2 (0x000000354aa00000)

libc.so.6 => /lib64/libc.so.6 (0x000000354a200000)

/lib64/ld-linux-x86-64.so.2 (0x0000003549a00000

[root@localhost ~]#cp /bin/{bash,ls,cat}  /mnt/sysroot/bin

[root@localhost ~]# cd /mnt/sysroot/lib64/

[root@localhost lib64]# cp /lib64/libc.so.6 ./

[root@localhost lib64]# cp /lib64/libselinux.so.1 ./

[root@localhost lib64]# cp /lib64/librt.so.1 ./

[root@localhost lib64]# cp /lib64/libcap.so.2 ./

[root@localhost lib64]# cp /lib64/libacl.so.1 ./

[root@localhost lib64]# cp /lib64/libc.so.6 ./

[root@localhost lib64]# cp /lib64/libdl.so.2 ./

[root@localhost lib64]# cp /lib64/ld-linux-x86-64.so.2 ./

[root@localhost lib64]# cp /lib64/libpthread.so.0 ./

[root@localhost lib64]# cp /lib64/libattr.so.1 ./

[root@localhost lib64]# cp /lib64/libtinfo.so.5 ./

[root@localhost lib64]# cp /lib64/libdl.so.2 ./  

[root@localhost lib64]# cp /lib64/libc.so.6 ./

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

        vim /mnt/sysboot/grub/grub.conf

            default=0

            timeout=5

            title Linux test

            root (hd0,0)

            kernel /vmlinuz ro root=/dev/sda2  selinux=0 init=/bin/bash

            initrd /initramfs.img

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

        新建虛擬機,再選擇磁盤時選擇這塊磁盤;


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

        首先安裝system-config-kickstart,然后打開;

            基本配置:主要是語言為中文,鍵盤默認,設置根密碼;

            安裝方法:根據情況選擇,以光盤驅動器為例;

            引導裝載程序選項:默認即可;

            分區信息:清除主引導記錄,然后開始添加磁盤分區,主要是根分區、swap、boot和home四個分區;

            網絡配置:最好配置一塊網卡,設定好ip等信息;

            防火墻配置:建議都先關閉,可在完成后激活;

            顯示配置:默認;            

            軟件包選擇:基本系統;

        配置好以后保存,路徑為/var/ftp/ks.cfg,然后安裝vsftpd服務,并啟動,測試是否可以正常訪問;

        然后新建一個虛擬機,在啟動時加載鏡像,在安裝界面摁esc,出現字符界面:boot::,輸入以下命令:

                linux ip=IP(根據實際情況,必須與有ftp訪問的服務器在同一網段上) netmask=NETMASK ks=ftp://ks.cfg完整路徑

        如果不出意外地話,虛擬機會根據ks.cfg來安裝部署。

             

  

4、寫一個腳本
  (1) 能接受四個參數:start, stop, restart, status
   start: 輸出“starting 腳本名 finished.”
   …
  (2) 其它任意參數,均報錯退出;

#!/bin/sh

case $1 in

start)

      echo “starting $0 finished “;;

stop)

     echo “stop $0 finished”;;

restart)

     echo “restart $0 finished”;;

status)

     echo “status $0 finished”;;

*)

   echo “error!!”

   exit 1

esac


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

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

         #!/bin/bash

         [ $# -ne 1 ] && echo “need 1 user!!” &&exit 1

usr(){

 if who | grep $1 &>/dev/null;then

  echo “$1 is login..”

  return 0

 else

  echo “$1 is not login..”

  return 2

 fi

}

while true;do

 usr $1

 rt=$?

 [ $rt -eq 0 ] && break || sleep 3

done


6、寫一個腳本,顯示用戶選定要查看的信息;
   cpu) display cpu info
   mem) display memory info
   disk) display disk info
   quit) quit

#!/bin/sh

cat <<a

=========================

cpu) display cpu info

mem) display memory info

disk) display disk info

quit) quit

=========================

a

ab() {

read -p “Please enter your choice: ”  i

case $i in

cpu)

  lscpu;;

mem)

  free -h;;

disk)

   fdisk -l  /dev/[s,h]d[a-z];;

quit)

   exit 0;;

*)

  echo “Please choose again!!”

  ab

esac

}

ab

   非此四項選擇,則提示錯誤,并要求用戶重新選擇,只到其給出正確的選擇為止;
7、寫一個腳本
  (1) 用函數實現返回一個用戶的UID和SHELL;用戶名通過參數傳遞而來;
  (2) 提示用戶輸入一個用戶名或輸入“quit”退出;
    當輸入的是用戶名,則調用函數顯示用戶信息;
    當用戶輸入quit,則退出腳本;進一步地:顯示鍵入的用戶相關信息后,再次提醒輸出用戶名或quit: 

#!/bin/bash

usr() {

 grep “^$1\>” /etc/passwd|awk  -F: ‘{print $3,$7}’

}

cat <<a

user)  display user info;

quit)  quit

a

ub() {

while true;do

  read -p “please input: ” i

  case $i in

    quit)

       exit 0;;

    $i)

       usr $i

       ub

  esac

done

}

ub

        

原創文章,作者:N25_韓奇洋,如若轉載,請注明出處:http://www.www58058.com/70591

(0)
N25_韓奇洋N25_韓奇洋
上一篇 2017-03-10 13:21
下一篇 2017-03-10 15:12

相關推薦

  • 安裝LNMP + 搭建WordPress個人博客

    安裝LNMP + 搭建Wordpress個人博客 前言 來到馬哥教育也有幾個月了,學了很多知識?,F在想要把這些知識能夠存儲在一個地方,隨時隨地的都能看到,于是乎我就想到了博客,以下我搭建Wordpress的過程。 安裝LNMP 一、關掉防火墻 # chkconfig iptables off 二、安裝開發包和庫文件 #&nbsp…

    Linux干貨 2016-05-31
  • 關于生命中的根

    關于生命中的根    擦干心中的血和淚痕    留住我們的根 關于生命中的根 鴻蒙初辟,萬物生于根 尋根之旅 根就是根 我即為根 路在何方 鴻蒙初辟,萬物生于根    自linux老祖Torvalds創根之始至今,根一直為linux之本,而FHS(Filesystem Hierarchy Stand…

    Linux干貨 2016-10-27
  • 馬哥教育網絡班21期-第八周課程練習

    第八周作業 1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 集線器:集線器工作在OSI七層模型的物理層;功能是將傳輸信號再生或放大,收到數據后將數據轉發至除接收接口外的所有接口(廣播)),但是由于集線器所有端口屬于共享帶寬,屬于同一個沖突域和屬于同一個廣播域,容易產生信號沖突導致幀碎片,現今大部分集線器已經被交換機所替代; 網…

    Linux干貨 2016-09-01
  • Linux命令幫助及history命令的使用

    1.Linux命令幫助的獲取詳解 在Linux中獲取命令幫助時,內部命令和外部命令的獲取方式是有區別的: 即  (1)內部命令:#help COMMAND ?            #man bash  (2)外部命令:<1> # COMMAND –hel…

    Linux干貨 2016-08-05
  • 磁盤管理

    一、知識整理 1、每個扇區:512字節;每個柱面:256個磁頭*63個扇區*512字節,大概為8M。centos6中分區使用起始結束柱面;centos7中分區使用起始結束扇區。EBR:擴展分區的第一個扇區。 2、MBR:master root record,1982年,使用32位表示扇區數,分區不超過2T。其中,一共512bytes字節,446bytes為b…

    Linux干貨 2016-08-29
  • 你會用Python寫洗腦神曲嗎?

    Python實戰班-學員學習成果展示 同樣是周末,有些人是閑聊著度過,有些人是學習充電度過。 人與人最大的區別,是下班后的時間??茨阍趺慈ダ?。 周末時,馬哥Python實戰班的學員正在認真上課,他們中的不少人,月薪在10k以上,甚至月薪20k以上。 但他們沒有虛度周末時光。 #最浪費時間的就是:思而不學+猶豫不決。# 馬哥Python實戰班二期的小伙伴們才…

    Linux干貨 2016-07-05

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-03-15 00:41

    操作系統的啟動過程能用圖示來說明會更好~~cp的那部分可以使用循環~~繼續加油~

欧美性久久久久