一、DIY linux系统(虚拟机环境)

平台:

[root@www /]# uname -a
Linux www.essun.com 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

第一步、本机(宿主机)采用最小化安装己安装了Centos6.5,添加一块硬盘/dev/sdb20G

wKioL1MURJ-SFfVHAAFeKsrshyU368.jpg

第二步、将此硬盘分成出两个区,一个作为/boot分区,一个作为/分区。

wKioL1MURUXjAKHgAAJYrBp8ftc123.jpg

第三步、将以上的两个分区格式化成ext4文件系统,并挂载到/mnt/boot,/mnt/sysroot下

wKioL1MURbniUBtMAAH53okLdTY207.jpg

第四步、给此硬盘上的第一个分区安装GRUB,man grub-install

wKioL1MURi_T0iYaAAGowsp-NPA013.jpg

#安装到指定的磁盘中
[root@www ~]# grub-install --root-directory=/mnt /dev/sdb

wKiom1MURoTgLgH_AAMdeqQZBjM212.jpg

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

wKiom1MUSAzyRNmNAAGigjMfD5I062.jpg

第七步、手写grub.conf文件

wKiom1MUSGCBqlqqAABfBxvMwx4992.jpg

wKiom1MUTS3Dra-RAAGdQMkm_30547.jpg

上图中init=/sbin/init是指初始化所执行的脚本。

第八步、在/mnt/sysroot下创建根(/)目录

wKiom1MUTdnwWxYMAAEuZdgwtKc481.jpg

第九步、移植bash及相关命令到/mnt/sysroot各对应目录下(刚学shell,代码臃肿,望各位看官海涵)

##############################################
# Author: jinguangping - jingguangping@qq.com
# Last modified: 2014-02-28 18:55
# Filename: movelib.sh
# Description: 完成目录与库文件的复制
##############################################
#!/bin/bash
if_opt () {
directory=`dirname $1`
    filename=`basename $1`
    if [ -d $des_dir$directory ];then 
        cp -R $directory/$filename $des_dir$directory/
    else
        mkdir -p $des_dir$directory
        cp -R $directory/$filename $des_dir$directory/
    fi
}
move_opt(){
for i in `ldd $comm_dir | grep -o "/[^[:space:]]\{1,\}*"`;do
    if_opt $i
done
}
des_dir="/mnt/sysroot"
while true;do
read -p "Enter a command:" CMD
[ $CMD == 'quit' ] &&echo "input quit" && exit 4
comm_dir=`which --skip-alias  $CMD`
#echo $comm_dir
if_opt $comm_dir
move_opt $comm_dir
done

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

第十步、拷贝网卡驱动

wKioL1MUUiixWaFyAAB63HGKFww331.jpg

wKiom1MUUl-gxC5lAAErg1PhI1I091.jpg

wKioL1MUUufhnG90AACvmf8I_Ls323.jpg

开机启动网卡(vim /mnt/sysroot/sbin/init)(使用简单的init脚本)

#!/bin/bash
echo -e "welcome to \033[35mJinGuangPing Style Linux\033[0m"
mount -n -t proc        /proc   proc
mount -n -t sysfs       /sys    sysfs
insmod /lib/modules/2.9.32-99/kernel/drivers/net/e1000/e1000.ko
ifconfig lo 127.0.0.0/8
ifconfig eth0 172.16.251.44/16
ifconfig eth0:0 192.168.1.33/24
route add -net 0.0.0.0 gw 192.168.1.253
/bin/bash

这样就可以连通网络了

第十一步、新建立虚拟机,在选择磁盘时选择

wKiom1MUZpDDoT5qAAEbEKufSek604.jpg

wKiom1MUZqDTwu1hAAByFPGZUf8750.jpg

这里选择之前的硬盘(/dev/sdb)所在的位置,这样就可以开机启动了

wKiom1MUY2ehXSJ6AAH9mDfNK3w276.jpg

wKioL1MUY4OyqiqAAAJeXac6NHc112.jpg

wKiom1MUY8HT6BY-AAJwSmNc2jU088.jpg

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

PS:

   小生初学乍练,如有错误,还望各位看官多多指正,不胜感激