一、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
第二步、将此硬盘分成出两个区,一个作为/boot分区,一个作为/分区。
第三步、将以上的两个分区格式化成ext4文件系统,并挂载到/mnt/boot,/mnt/sysroot下
第四步、给此硬盘上的第一个分区安装GRUB,man grub-install
#安装到指定的磁盘中 [root@www ~]# grub-install --root-directory=/mnt /dev/sdb
第五步、拷贝kernel、initramfs到/mnt/boot下
第七步、手写grub.conf文件
上图中init=/sbin/init是指初始化所执行的脚本。
第八步、在/mnt/sysroot下创建根(/)目录
第九步、移植bash及相关命令到/mnt/sysroot各对应目录下(刚学shell,代码臃肿,望各位看官海涵)
############################################## # Author: jinguangping - [email protected] # 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
第十步、拷贝网卡驱动
开机启动网卡(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
这样就可以连通网络了
第十一步、新建立虚拟机,在选择磁盘时选择
这里选择之前的硬盘(/dev/sdb)所在的位置,这样就可以开机启动了
=====================================完==================================================
PS:
小生初学乍练,如有错误,还望各位看官多多指正,不胜感激