一、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 - 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
第十步、拷贝网卡驱动
开机启动网卡(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:
小生初学乍练,如有错误,还望各位看官多多指正,不胜感激