天天看点

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,如需转载请自行联系原作者

继续阅读