天天看點

linux系統宿主定制之初窺門徑

一、DIY linux系統(虛拟機環境)

平台:

1

2

<code>[root@www /]</code><code># uname -a</code>

<code>Linux www.essun.com 2.6.32-431.el6.x86_64 </code><code>#1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux</code>

第一步、本機(主控端)采用最小化安裝己安裝了Centos6.5,添加一塊硬碟/dev/sdb20G

<a href="http://s3.51cto.com/wyfs02/M02/19/FC/wKioL1MURJ-SFfVHAAFeKsrshyU368.jpg" target="_blank"></a>

第二步、将此硬碟分成出兩個區,一個作為/boot分區,一個作為/分區。

<a href="http://s3.51cto.com/wyfs02/M00/19/FD/wKioL1MURUXjAKHgAAJYrBp8ftc123.jpg" target="_blank"></a>

第三步、将以上的兩個分區格式化成ext4檔案系統,并挂載到/mnt/boot,/mnt/sysroot下

<a href="http://s3.51cto.com/wyfs02/M02/19/FD/wKioL1MURbniUBtMAAH53okLdTY207.jpg" target="_blank"></a>

第四步、給此硬碟上的第一個分區安裝GRUB,man grub-install

<a href="http://s3.51cto.com/wyfs02/M02/19/FE/wKioL1MURi_T0iYaAAGowsp-NPA013.jpg" target="_blank"></a>

<code>#安裝到指定的磁盤中</code>

<code>[root@www ~]# grub-install --root-directory=/mnt /dev/sdb</code>

<a href="http://s3.51cto.com/wyfs02/M01/19/FD/wKiom1MURoTgLgH_AAMdeqQZBjM212.jpg" target="_blank"></a>

第五步、拷貝kernel、initramfs到/mnt/boot下

<a href="http://s3.51cto.com/wyfs02/M02/19/FE/wKiom1MUSAzyRNmNAAGigjMfD5I062.jpg" target="_blank"></a>

第七步、手寫grub.conf檔案

<a href="http://s3.51cto.com/wyfs02/M02/19/FF/wKiom1MUSGCBqlqqAABfBxvMwx4992.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/1A/03/wKiom1MUTS3Dra-RAAGdQMkm_30547.jpg" target="_blank"></a>

上圖中init=/sbin/init是指初始化所執行的腳本。

第八步、在/mnt/sysroot下建立根(/)目錄

<a href="http://s3.51cto.com/wyfs02/M00/1A/04/wKiom1MUTdnwWxYMAAEuZdgwtKc481.jpg" target="_blank"></a>

第九步、移植bash及相關指令到/mnt/sysroot各對應目錄下(剛學shell,代碼臃腫,望各位看官海涵)

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

<code>##############################################</code>

<code># Author: jinguangping - [email protected]</code>

<code># Last modified: </code><code>2014</code><code>-</code><code>02</code><code>-</code><code>28</code> <code>18</code><code>:</code><code>55</code>

<code># Filename: movelib.sh</code>

<code># Description: 完成目錄與庫檔案的複制</code>

<code>#!/bin/bash</code>

<code>if_opt () {</code>

<code>directory=`dirname $</code><code>1</code><code>`</code>

<code>    </code><code>filename=`basename $</code><code>1</code><code>`</code>

<code>    </code><code>if</code> <code>[ -d $des_dir$directory ];then</code>

<code>        </code><code>cp -R $directory/$filename $des_dir$directory/</code>

<code>    </code><code>else</code>

<code>        </code><code>mkdir -p $des_dir$directory</code>

<code>    </code><code>fi</code>

<code>}</code>

<code>move_opt(){</code>

<code>for</code> <code>i </code><code>in</code> <code>`ldd $comm_dir | grep -o </code><code>"/[^[:space:]]\{1,\}*"</code><code>`;</code><code>do</code>

<code>    </code><code>if_opt $i</code>

<code>done</code>

<code>des_dir=</code><code>"/mnt/sysroot"</code>

<code>while</code> <code>true</code><code>;</code><code>do</code>

<code>read -p </code><code>"Enter a command:"</code> <code>CMD</code>

<code>[ $CMD == </code><code>'quit'</code> <code>] &amp;&amp;echo </code><code>"input quit"</code> <code>&amp;&amp; exit </code><code>4</code>

<code>comm_dir=`which --skip-alias  $CMD`</code>

<code>#echo $comm_dir</code>

<code>if_opt $comm_dir</code>

<code>move_opt $comm_dir</code>

至少要複制如下指令:bash,ls.cat,ps,vi,modinfo,insmod,cd,ifconfig,ip,route,lsmod,cp,ping

第十步、拷貝網卡驅動

<a href="http://s3.51cto.com/wyfs02/M02/1A/09/wKioL1MUUiixWaFyAAB63HGKFww331.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/1A/08/wKiom1MUUl-gxC5lAAErg1PhI1I091.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M01/1A/0A/wKioL1MUUufhnG90AACvmf8I_Ls323.jpg" target="_blank"></a>

開機啟動網卡(vim /mnt/sysroot/sbin/init)(使用簡單的init腳本)

<code>echo</code> <code>-e </code><code>"welcome to \033[35mJinGuangPing Style Linux\033[0m"</code>

<code>mount</code> <code>-n -t proc        </code><code>/proc</code>   <code>proc</code>

<code>mount</code> <code>-n -t sysfs       </code><code>/sys</code>    <code>sysfs</code>

<code>insmod </code><code>/lib/modules/2</code><code>.9.32-99</code><code>/kernel/drivers/net/e1000/e1000</code><code>.ko</code>

<code>ifconfig</code> <code>lo 127.0.0.0</code><code>/8</code>

<code>ifconfig</code> <code>eth0 172.16.251.44</code><code>/16</code>

<code>ifconfig</code> <code>eth0:0 192.168.1.33</code><code>/24</code>

<code>route add -net 0.0.0.0 gw 192.168.1.253</code>

<code>/bin/bash</code>

這樣就可以連通網絡了

第十一步、建立立虛拟機,在選擇磁盤時選擇

<a href="http://s3.51cto.com/wyfs02/M02/1A/1B/wKiom1MUZpDDoT5qAAEbEKufSek604.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/1A/1B/wKiom1MUZqDTwu1hAAByFPGZUf8750.jpg" target="_blank"></a>

這裡選擇之前的硬碟(/dev/sdb)所在的位置,這樣就可以開機啟動了

<a href="http://s3.51cto.com/wyfs02/M00/1A/18/wKiom1MUY2ehXSJ6AAH9mDfNK3w276.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M01/1A/19/wKioL1MUY4OyqiqAAAJeXac6NHc112.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/1A/18/wKiom1MUY8HT6BY-AAJwSmNc2jU088.jpg" target="_blank"></a>

=====================================完==================================================

本文轉自 jinlinger 51CTO部落格,原文連結:http://blog.51cto.com/essun/1367007,如需轉載請自行聯系原作者

繼續閱讀