亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

LFS Bash腳本小試牛刀 一

2024-06-28 13:27:41
字體:
來源:轉載
供稿:網友
LFS Bash腳本小試牛刀 一
題目:將給定的一塊硬盤制作為可啟動硬盤,操作全程使用二進制程序或者腳本自動完成:  1.系統為一個裁剪后的GNU/linux操作系統;  2.使用init腳本初始化系統,要求能裝載網卡驅動,并配置ip地址;  3.最后進入bash shell交互環境。

解:

處理過程鳥瞰

第一步:格式化此磁盤,創建兩個主分區,并格式化。此工作在之前的文章《LFS Bash腳本熱身任務 一》中已經完成,直接使用其代碼。

 1 #!/bin/bash 2 #kernel_step3.sh 3 #author: Sen Han 4 #date:   21:29 2014/3/2 5  6  7 echo "input a device path like /dev/sd[a-z]" 8 read -p "input the device path:" dev 9 10 while ! [ -b "$dev" ]11 do12   if [ "$dev" = "quit" ]13   then14     exit 915   fi16   echo "input a device path like /dev/sd[a-z]"17   read -p "input the device path:" dev18 done19 20 echo "the next step will format the whole disk $dev"21 read -p "input ENTER to quit,input y or yes to continue:" flag22 23 if ! [ "$flag" = "y" -o "$flag" = "yes" ]24 then25   exit 826 fi27 28 echo "delete MBR"29 dd if=/dev/zero of=$dev bs=512 count=130 fdisk -l $dev31 echo "auto partition"32 echo "n33 p34 135 36 +100M37 n38 p39 240 41 +512M42 w43 q44 " | fdisk $dev &>/dev/null45 fdisk -l $dev46 mkfs -t ext3 "$dev"147 mkfs -t ext3 "$dev"248 49 [ -e /mnt/boot ] || mkdir /mnt/boot 50 [ -d /mnt/boot ] || ( echo "error:/mnt/boot isn't a directory "; exit 1 )51 [ -e /mnt/sysroot ] || mkdir /mnt/sysroot 52 [ -d /mnt/sysroot ] || ( echo "error:/mnt/sysroot isn't a directory "; exit 1 )53 54 mount "$dev"1 /mnt/boot55 mount "$dev"2 /mnt/sysroot
View Code

第二步:將這兩個分區掛載到兩個宿主機目錄,分別是/mnt/boot與/mnt/sysroot,在磁盤上安裝grub系統啟動管理程序,復制內核壓縮映像與initramfs至boot分區,配置grub。

 1 cp /boot/vmlinuz-2.6.32-431.el6.x86_64 /mnt/boot/ 2 cp /boot/initramfs-2.6.32-431.el6.x86_64.img /mnt/boot/ 3  4 grub-install --root-directory=/mnt $dev 5  6 cat > /mnt/boot/grub/grub.conf <<EOF 7 default=0 8 timeout=5 9 title step310         root (hd0,0)11         kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/sda2 selinux=0 init=/sbin/init12         initrd /initramfs-2.6.32-431.el6.x86_64.img13 EOF

第三步:初始化根目錄,創建必要的目錄文件,復制需要的命令與其所使用的庫文件,復制網卡驅動,配置系統的初始化腳本init。此處用到了文章《LFS Bash腳本熱身任務 二》中的一個函數。

 1 function cpy_bin_and_so() { # cmd=$1  : ls #dest_dir=$2  : /tmp 2                             #usage:  cpy_bin_and_so iptables /mnt/root   3                             #usage:  cpy_bin_and_so cat      /root/mirror   4                             #              func      cmd       dir 5   local cmd="$1" 6   local dest_dir="$2" 7   local fullpath="" 8   local dirpath="" 9   local filename=""10   local i=""11   12   if ! which "$cmd" &> /dev/null13   then14     echo "Usage:  cpy_bin_and_so iptables /mnt/root "15     echo "your input cmd:$cmd not found"16     return 117   fi18 19   if ! [ -d "$dest_dir" ]20   then21     echo "Usage:  cpy_bin_and_so iptables /mnt/root "22     echo "your input dir:$dest_dir not exist or not a dir"23     return 224   fi25   26   fullpath=`which "$cmd" | egrep -o "/[^[:space:]]+"` 27   #dirpath=`dirname $fullpath`28   29   #cpy bin & *.so30   for i in "$fullpath" `ldd $fullpath | egrep -o "/[^[:space:]]+"`31   do32     echo "$i"33     dirpath=`dirname $i`34     filename=`basename $i`35     [ -e "${dest_dir}${dirpath}" ] || mkdir -p ${dest_dir}${dirpath} 36     [ -d "${dest_dir}${dirpath}" ] || ( echo "error:${dest_dir}${dirpath} isn't a directory "; return 2 )37     cp -f ${i} ${dest_dir}${dirpath}/${filename}38   done39   40   return 041 }
View Code
 1 mkdir /mnt/sysroot/{etc,usr,var,PRoc,sys,dev,lib,lib64,bin,sbin,boot,srv,mnt,media,home,root} 2 declare i='' 3 for i in `ls /bin` insmod modprobe ifconfig busybox 4 do 5   cpy_bin_and_so $i /mnt/sysroot 6 done 7  8 mkdir /mnt/sysroot/lib/modules 9 cp /lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/net/e1000/e1000.ko /mnt/sysroot/lib/modules/10 11 cat > /mnt/sysroot/sbin/init << EOF12 #!/bin/bash13 mount -n -t proc proc /proc14 mount -n -t sysfs sysfs /sys15 insmod /lib/modules/e1000.ko16 ifconfig eth0 172.16.31.98/1617 ifconfig18 busybox clear19 echo ' '20 echo '  He who fights with monsters might take care lest he thereby become a monster. And if you gaze for long into an abyss, the abyss gazes also into you.21 22         --Friedrich Nietzsche23         '24 bash25 EOF26 27 chmod +x /mnt/sysroot/sbin/init28 29 30 sync31 umount ${dev}132 umount ${dev}233 echo "done :)"

附錄Ⅰ 實驗結果

1.在宿主機上添加一新磁盤:

2.啟動宿主機,運行kernel.3.sh腳本,對新磁盤進行處理:

3.關閉宿主機,新建一虛擬機,加入處理后的磁盤,調整好boot啟動次序:

4.boot:

5.啟動完畢,檢查網絡設置:

6.重設eth0,檢測:

附錄Ⅱ 全部代碼

  1 #!/bin/bash  2 #kernel_step3.sh  3 #author: Sen Han  4 #date:   21:29 2014/3/2  5   6   7 echo "input a device path like /dev/sd[a-z]"  8 read -p "input the device path:" dev  9  10 while ! [ -b "$dev" ] 11 do 12   if [ "$dev" = "quit" ] 13   then 14     exit 9 15   fi 16   echo "input a device path like /dev/sd[a-z]" 17   read -p "input the device path:" dev 18 done 19  20 echo "the next step will format the whole disk $dev" 21 read -p "input ENTER to quit,input y or yes to continue:" flag 22  23 if ! [ "$flag" = "y" -o "$flag" = "yes" ] 24 then 25   exit 8 26 fi 27  28 echo "delete MBR" 29 dd if=/dev/zero of=$dev bs=512 count=1 30 fdisk -l $dev 31 echo "auto partition" 32 echo "n 33 p 34 1 35  36 +100M 37 n 38 p 39 2 40  41 +512M 42 w 43 q 44 " | fdisk $dev &>/dev/null 45 fdisk -l $dev 46 mkfs -t ext3 "$dev"1 47 mkfs -t ext3 "$dev"2 48  49 [ -e /mnt/boot ] || mkdir /mnt/boot  50 [ -d /mnt/boot ] || ( echo "error:/mnt/boot isn't a directory "; exit 1 ) 51 [ -e /mnt/sysroot ] || mkdir /mnt/sysroot  52 [ -d /mnt/sysroot ] || ( echo "error:/mnt/sysroot isn't a directory "; exit 1 ) 53  54 mount "$dev"1 /mnt/boot 55 mount "$dev"2 /mnt/sysroot 56  57  58 function cpy_bin_and_so() { # cmd=$1  : ls #dest_dir=$2  : /tmp 59                             #usage:  cpy_bin_and_so iptables /mnt/root   60                             #usage:  cpy_bin_and_so cat      /root/mirror   61                             #              func      cmd       dir 62   local cmd="$1" 63   local dest_dir="$2" 64   local fullpath="" 65   local dirpath="" 66   local filename="" 67   local i="" 68    69   if ! which "$cmd" &> /dev/null 70   then 71     echo "Usage:  cpy_bin_and_so iptables /mnt/root " 72     echo "your input cmd:$cmd not found" 73     return 1 74   fi 75  76   if ! [ -d "$dest_dir" ] 77   then 78     echo "Usage:  cpy_bin_and_so iptables /mnt/root " 79     echo "your input dir:$dest_dir not exist or not a dir" 80     return 2 81   fi 82    83   fullpath=`which "$cmd" | egrep -o "/[^[:space:]]+"`  84   #dirpath=`dirname $fullpath` 85    86   #cpy bin & *.so 87   for i in "$fullpath" `ldd $fullpath | egrep -o "/[^[:space:]]+"` 88   do 89     echo "$i" 90     dirpath=`dirname $i` 91     filename=`basename $i` 92     [ -e "${dest_dir}${dirpath}" ] || mkdir -p ${dest_dir}${dirpath}  93     [ -d "${dest_dir}${dirpath}" ] || ( echo "error:${dest_dir}${dirpath} isn't a directory "; return 2 ) 94     cp -f ${i} ${dest_dir}${dirpath}/${filename} 95   done 96    97   return 0 98 } 99 100 101 cp /boot/vmlinuz-2.6.32-431.el6.x86_64 /mnt/boot/102 cp /boot/initramfs-2.6.32-431.el6.x86_64.img /mnt/boot/103 104 grub-install --root-directory=/mnt $dev105 106 cat > /mnt/boot/grub/grub.conf <<EOF107 default=0108 timeout=5109 title step3110         root (hd0,0)111         kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/sda2 selinux=0 init=/sbin/init112         initrd /initramfs-2.6.32-431.el6.x86_64.img113 EOF114 115 mkdir /mnt/sysroot/{etc,usr,var,proc,sys,dev,lib,lib64,bin,sbin,boot,srv,mnt,media,home,root}116 declare i=''117 for i in `ls /bin` insmod modprobe ifconfig busybox118 do119   cpy_bin_and_so $i /mnt/sysroot120 done121 122 mkdir /mnt/sysroot/lib/modules123 cp /lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/net/e1000/e1000.ko /mnt/sysroot/lib/modules/124 125 cat > /mnt/sysroot/sbin/init << EOF126 #!/bin/bash127 mount -n -t proc proc /proc128 mount -n -t sysfs sysfs /sys129 insmod /lib/modules/e1000.ko130 ifconfig eth0 172.16.31.98/16131 ifconfig132 busybox clear133 echo ' '134 echo '  He who fights with monsters might take care lest he thereby become a monster. And if you gaze for long into an abyss, the abyss gazes also into you.135 136         --Friedrich Nietzsche137         '138 bash139 EOF140 141 chmod +x /mnt/sysroot/sbin/init142 143 sync144 umount ${dev}1145 umount ${dev}2146 echo "done :)"
View Code


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久国产精品亚洲一区| 欧美午夜激情小视频| 中文字幕精品在线| 热久久这里只有| 精品成人国产在线观看男人呻吟| 亚洲男人天堂2019| 日韩毛片中文字幕| 欧美一区二三区| 性色av一区二区三区| 欧美色道久久88综合亚洲精品| 久久精品青青大伊人av| 在线亚洲午夜片av大片| 久久久免费av| 91九色视频在线| 国产欧美日韩精品丝袜高跟鞋| 欧美午夜视频在线观看| 久久97精品久久久久久久不卡| 欧美日韩亚洲一区二区三区| 亚洲在线一区二区| 欧美日韩视频在线| 国内精品久久久久久中文字幕| 久久成人18免费网站| 性欧美在线看片a免费观看| 日本成人在线视频网址| xx视频.9999.com| 亚洲无限av看| 久久久成人av| 日韩视频中文字幕| 国产成人a亚洲精品| 91精品久久久久久久久久另类| 一区二区三区高清国产| 国模私拍一区二区三区| 日韩电影免费在线观看中文字幕| 美女精品久久久| 成人免费观看49www在线观看| 日韩精品免费在线视频| 亚洲最大在线视频| 国色天香2019中文字幕在线观看| 亚洲自拍偷拍区| 欧美国产精品va在线观看| 欧美视频13p| 青青草原一区二区| 在线丨暗呦小u女国产精品| 亚洲精美色品网站| 亚洲自拍小视频免费观看| 亚洲人成电影在线| 国产精品久久77777| 性色av一区二区三区| 国产午夜精品全部视频播放| 国产精品福利观看| 久久免费少妇高潮久久精品99| xxav国产精品美女主播| 成人精品久久av网站| 在线电影av不卡网址| 欧美日韩亚洲激情| 亚洲图片在线综合| 国产91精品久久久久久久| 91干在线观看| 久久精品久久久久电影| 亚洲国产精品中文| 尤物九九久久国产精品的分类| 亚洲香蕉成视频在线观看| 日本久久久久久久| 国产精品第3页| 91精品视频免费| 亚洲视频视频在线| 国产精品成人免费电影| 国产成+人+综合+亚洲欧美丁香花| 亚洲qvod图片区电影| 亚洲偷熟乱区亚洲香蕉av| 国产精品一区二区性色av| 91黑丝在线观看| 国产精品久久久久久久久久三级| 粗暴蹂躏中文一区二区三区| 国产精品中文字幕在线| 久操成人在线视频| 欧美大片大片在线播放| 久久久99久久精品女同性| 夜夜嗨av一区二区三区四区| 色偷偷偷亚洲综合网另类| 亚洲曰本av电影| 久久免费视频在线观看| 国产精品美女免费视频| 欧美在线视频一区二区| 亚洲欧美日本精品| 欧美日韩在线视频一区| 午夜精品一区二区三区在线播放| 欧美性猛交xxxx免费看| 色偷偷偷亚洲综合网另类| 欧美专区在线播放| 欧美国产日韩一区| 欧美日韩国产色视频| 国产精品日韩久久久久| 91亚洲国产成人精品性色| 国产精品欧美激情在线播放| 久热爱精品视频线路一| 国产综合香蕉五月婷在线| 国产成人精品久久二区二区91| 中文字幕日韩有码| 日韩av电影手机在线观看| 亚洲福利视频专区| 狠狠躁夜夜躁人人爽天天天天97| 久久久在线视频| 欧美高清视频一区二区| 国产成人在线播放| 91欧美精品成人综合在线观看| 77777亚洲午夜久久多人| 91夜夜未满十八勿入爽爽影院| 国产精品一区二区久久久久| 亚洲国产中文字幕在线观看| 午夜精品一区二区三区在线视频| 777777777亚洲妇女| 久久亚洲精品一区二区| xvideos国产精品| 精品国产91久久久| 国产日韩中文在线| 亚洲已满18点击进入在线看片| 久久久久久久久网站| 欧美限制级电影在线观看| 亚洲精品综合久久中文字幕| 中文字幕日韩视频| 在线观看免费高清视频97| 日韩中文字幕欧美| 国产亚洲福利一区| 国产视频999| 国产精品jvid在线观看蜜臀| 国产精品久久久久av免费| 久久中文字幕在线视频| 欧美精品日韩www.p站| 精品国产福利在线| 欧美综合激情网| 91精品视频网站| 亚洲午夜精品久久久久久性色| 色多多国产成人永久免费网站| 91免费的视频在线播放| 日韩中文娱乐网| 91精品国产自产在线老师啪| 青青久久av北条麻妃海外网| 亚洲国产精品免费| 精品国内产的精品视频在线观看| 成人动漫网站在线观看| 91免费国产视频| 欧美激情国产高清| 国产亚洲福利一区| 97色在线观看免费视频| 91丝袜美腿美女视频网站| 91丝袜美腿美女视频网站| 亚洲欧洲视频在线| 国产午夜精品一区理论片飘花| 97人人模人人爽人人喊中文字| 精品偷拍各种wc美女嘘嘘| 久久九九精品99国产精品| 亚洲精品免费一区二区三区| 9.1国产丝袜在线观看| 欧美黑人性猛交| 日本老师69xxx| 国产成人亚洲精品| 久久精品国产综合| 久久天天躁狠狠躁夜夜躁| 91精品一区二区| 国产精品www| 欧美黄网免费在线观看| 国产精品麻豆va在线播放| 三级精品视频久久久久|