N26-第十周

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

    看到同學的圖不錯拿來用用 ~ ~

    N26-第十周

2、為運行于虛擬機上的CentOS 6添加一塊新硬件,提供兩個主分區;
  (1) 為硬盤新建兩個主分區;并為其安裝grub;
  (2) 為硬盤的第一個主分區提供內核和ramdisk文件; 為第二個分區提供rootfs;
  (3) 為rootfs提供bash、ls、cat程序及所依賴的庫文件;
  (4) 為grub提供配置文件;

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

    

--創建兩個分區--
[root@localhost ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xa59bf598

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          65      522081   83  Linux
/dev/sdb2              66        1371    10490445   83  Linux
--格式化分區--
[root@localhost ~]# mkfs -t ext4 /dev/sdb1
[root@localhost ~]# mkfs -t ext4 /dev/sdb2
--創建掛載目錄并掛載-- [root@localhost ~]# mkdir  /mnt/{boot,sysroot}
[root@localhost ~]# mount /dev/sdb1 /mnt/boot/
[root@localhost ~]# mount /dev/sdb2 /mnt/sysroot/
--復制內核文件和ramdisk文件--
[root@localhost ~]# cp /boot/vmlinuz-2.6.32-358.el6.x86_64  /mnt/boot/vmlinux_new
[root@localhost ~]# cp /boot/initramfs-2.6.32-358.el6.x86_64.img  /mnt/boot/initramfs_new.img
--創建根下需要的目錄--
[root@localhost ~]# mkdir /mnt/sysroot/{bin,dev,etc,home,lib,lib64,media,mnt,opt,proc,root,sbin,selinux,srv,sys,tmp,usr,var}

--復制bash、cat、ls程序文件和庫文件--

[root@localhost ~]# cp `which --skip-alias bash` /mnt/sysroot/$(which --skip-alias bash)[root@localhost ~]# cp `which --skip-alias cat` /mnt/sysroot/$(which --skip-alias cat)[root@localhost ~]# cp `which --skip-alias ls` /mnt/sysroot/$(which --skip-alias ls)

[root@localhost ~]# cp -u $(ldd  `which --skip-alias ls` | grep -o "/.*\.[0-9]") /mnt/sysroot/lib64/[root@localhost ~]# cp -u $(ldd  `which --skip-alias cat` | grep -o "/.*\.[0-9]") /mnt/sysroot/lib64/

[root@localhost ~]# cp -u $(ldd  `which --skip-alias bash` | grep -o "/.*\.[0-9]") /mnt/sysroot/lib64/

--創建grub文件夾并創建grub.conf文件--

[root@localhost ~]# mkdir /mnt/boot/grub

[root@localhost ~]# vim /mnt/boot/grub/grub.conf

default=0timeout=5title little system        root (hd0,0)        kernel /vmlinuz_new root=/dev/sdb2 init=/bin/bash        initrd /initramfs_new.img

--安裝grub到第二塊硬盤--[root@localhost ~]# grub-install --root-directory=/mnt/ /dev/sdb



重啟進入bios調整啟動硬盤

N26-第十周

N26-第十周

N26-第十周

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

        1、centos系統安裝基于anaconda程序進行的,在系統安裝完畢后會自動生成一個anaconda-ks.cfg的文件,該文件可直接或編輯后作為kickstart的腳本文件。

        2、安裝system-config-kickstart命令(該命令需要運行在圖形模式下)并使用該命令生成或修改kickstart的腳本文件

#命令行段
filewall --disabled #禁用防火墻
install  #執行新安裝
cdrom  #使用光盤進行安裝
lang en_US.UTF-8  #設置安裝語言
keyboard us  #設置鍵盤格式
network --onboot no --device eth0 --bootproto dhcp --noipv6  #設置網絡
rootpw  --iscrypted $6$tRmCwYXf5Nt/frJK$6lnrag1bLng6xqhvvL.BVdK/jFJo4l4q6J3mcbchVmWCcQH6T45O8yd406pb3/1Ins2YiDAePvM/YmVZ41uFR. #設置root密碼
authconfig --enableshadow --passalgo=sha512 #認證方式
selinux --disabled #關閉selinux
timezone --utc Asia/Shanghai  #設置時區
bootloader --location=mbr --driveorder=sda,sdb --append="crashkernel=auto rhgb quiet"  #bootloader設置 
repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100 #設置軟件倉庫
clearpart --all//刪除所有現在分區 
part /boot --fstype=ext4 --size=200//分區掛載
part / --fstype=ext4 --size=40960
part swap --size=4096
#腳本段
%pre//安裝前腳本
echo "start install"
%end
%post # 安裝后腳本
echo "install end"
#程序包段
%packages
@chinese-support  #中文支持
@development  #開發工具
@graphical-desktop-clients  #圖形化工具
@remote-desktop-clients  #遠程桌面客戶端
%end

制作centos6.X 引導鏡像文件

--創建文件夾存放啟動文件--
[root@localhost /]# mkdir /myboot
--復制光盤中的文件--
[root@localhost /]# cp -r /media/isolinux/* /myboot
--復制制作好的ks文件--
[root@localhost /]# cp /root/ks.cfg /myboot/ks.cfg
--修改solinux.cfg文件--
[root@localhost /]#echo "append initrd=initrd.img ks=cdrom:/ks.cfg" > /myboot/solinux.cfg
--生成iso文件--
[root@localhost /]#  mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6 x86_64 boot" -c boot.cat -b isolinux.bin -o  /root/boot.iso   /myboot

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

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

#!/bin/bash
#
#
#
case $1 in
        start)
        echo "starting $0 finished"
        ;;
        stop)
        echo "stoping $0 finished"
        ;;
        restart)
        echo "restartting $0 finished"
        ;;
        status)
        echo "status $0 finished"
        ;;
        *)
        echo "error"
        ;;
esac

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

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

    

#!/bin/bash
#
#
#
USER=`who |cut -d " " -f1 `
[ $# -ne 1 ] && echo "use $0 username " && exit 1
 if ! id $1 &>/dev/null ;then
        echo "$1 is not a username"
        exit 2
fi
while true; do
        if echo $USER| grep $1  &>/dev/null ;then
                echo "$1 is loggin"     
                break
        fi
        sleep 3
done

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

   quit) quit

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

#!/bin/bash
#
#
#
cat <<EOF
   cpu) display cpu info
   mem) display memory info
   disk) display disk info
   quit) quit
EOF
read -p "input your choice " option

while true;do
        case $option in
                cpu)
                cat /proc/cpuinfo
                break
                ;;
                mem)
                cat /proc/meminfo
                break
                ;;
                disk)
                fdisk -l
                break
                ;;
                quit)
                break
                ;;
                *)
                echo "syntax error;use $0 cpu|mem|disk|quit"
                read -p "input your choice again " option
                ;;
        esac
done

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

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

#!/bin/bash
#
#
#

USERINFO() {

        grep "^$1" /etc/passwd | awk -F: '{print $3i" "$7}'

}

read -p "input a username " USERNAME

while true ;do
        case $USERNAME in
            quit)
                break
        ;;
                *)
                if  id $USERNAME &>/dev/null ;then
                        USERINFO $USERNAME
                        read -p "input  another user name or quit " USERNAME
                else
                        echo "$USERNAME is not a username "
                        read -p "please input a username again or quit " USERNAME
                fi
        ;;
        esac
done

原創文章,作者:胡安慧,如若轉載,請注明出處:http://www.www58058.com/71494

(0)
胡安慧胡安慧
上一篇 2017-03-25 22:40
下一篇 2017-03-26 13:03

相關推薦

  • Nginx 功能概述與基礎應用!

           本篇博客主要有三個部分組成,目的在于讓大家了解ningx的主要功用及作為web server的基礎配置;通過本篇博客能夠讓您對nginx理解更加深入,以便于更好的使用它!                  …

    2017-05-14
  • 編譯安裝dropbear

    ssh協議的另一個實現:dropbear 編譯安裝dropbear [root@centos6 ~]# tar xf dropbear-2013.58.tar.bz2  [root@centos6 ~]# cd dropbear-2013.58 [root@centos6&nbs…

    Linux干貨 2016-09-28
  • linux內核及centos系統啟動流程

    Linux組成 Linux: kernel+rootfs(根文件系統) kernel功能: 進程管理、內存管理、網絡管理、驅動程序、文件系統、安全功能 rootfs:程序和glibc  庫:函數集合, function, 調用接口(頭文件負責描述)      過程調用:proce…

    Linux干貨 2016-09-10
  • shell腳本的各種循環

    For循環 For循環格式      For   變量名  in    列表    ;   do         &nb…

    Linux干貨 2016-08-21
  • 什么叫Linux

    什么叫linux:     Linux是一套免費使用和自由傳播的類Unix操作系統,它主要用于基于Intel x86系列CPU的計算機上。這個系統是由全世界各地的成千上萬的程序員設計和實現的。其目的是建立不受任何商品化軟件的版權制約的、全世界都能自由使用的Unix兼容產品。 誰編寫的linux: Linux的出現,最早…

    Linux干貨 2017-03-27
  • Nginx配置詳解

    NginX 回顧http協議: 1.URL格式 URL:shceme://username:password@host:port/path;params?query#fram 2.http事務:     request:請求報文格式       reponse:響應報文…

    Linux干貨 2016-10-25

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-03-30 14:23

    可以看出腳本運用的已經比較熟練了,繼續加油。

欧美性久久久久