设计简化linux的过程
工作中我们可能不需要复杂的linux操作系统,这是我们可以设计一个简化的linux操作系统。
下图是linux的初始化进程图:
使用虚拟机建立自己的一块硬盘,并启动系统:
使用fdisk /dev/sdb建立3个主分区: 1,引导分区100M 2,根分区1G 3,虚拟分区500M。如下图:
格式化分区:使用 mkfs -t ext3 /dev/sdb1
mkfs -t ext3 /dev/sdb2
挂载分区:
[root@server1 ~]# mkdir /mnt/boot
[root@server1 ~]# mkdir /mnt/sysroot
[root@server1 ~]#mount /dev/sdb1 /mnt/boot/
[root@server1 ~]# mount /dev/sdb2 /mnt/sysroot/
建立引导第二阶段:
使用grub命令编辑:如下图,最后使用quit退出
编辑引导菜单:vim grub.conf
拷贝内核:cp /boot/vmlinuz-2.6.18-164.el5 /mnt/boot/
驱动:查找老的驱动,并解压
[root@server1 ~]# mkdir abc
编辑init文件
再重新打包
[root@server1 abc]# find . |cpio -o -H newc --quiet|gzip -9 -n >/mnt/boot/initrd.gz
查看:
编辑grub.conf 菜单:[root@server1boot]# vim /mnt/boot/grub/grub.conf
进入到新的根目录下
[root@server1 boot]# cd /mnt/sysroot/
[root@server1 sysroot]# ls / 查找旧的根目录下的目录
bin dev home lost+found misc net proc sbin srv tftpboot usr
boot etc lib media mnt opt root selinux sys tmp var
在新的根目录下建目录
[root@server1 sysroot]# mkdir bin boot dev etc home libmedia mnt misc net opt proc root sbinselinux srv sys tftpboot tmp usr var
进一步完善:
[root@server1 sysroot]# mkdir usr/bin
[root@server1 sysroot]# mkdir usr/sbin
[root@server1 sysroot]# mkdir etc/rc.d
拷贝init文件
[root@server1 sysroot]# which init
/sbin/init
[root@server1 sysroot]# cp /sbin/init /mnt/sysroot/sbin/
下面是库文件需要拷贝(init ls cat bash...)
这里我们可以编辑一个拷贝文件的脚本,这样拷贝就比较方便了,命名为copy.sh
#!/bin/bash
while [ true ];do
read -p "A COMMAND " COMMAND
COMMANDSTRING=`which $COMMAND|tail -1`
COMMANDPATH=${COMMANDSTRING%/*}
COMMANDNAME=${COMMANDSTRING##*/}
/bin/cp -f $COMMANDPATH/$COMMANDNAME /mnt/sysroot$COMMANDPATH
for i in `/usr/bin/ldd $COMMANDSTRING`;do
if echo $i |grep /lib &>/dev/null; then
LIBSTRING=`echo $i |grep /lib `
LIBNAME=${LIBSTRING##*/}
LIBPATH=${LIBSTRING%/*}
/bin/cp -f $LIBPATH/$LIBNAME /mnt/sysroot$LIBPATH
fi
done
done
使用bash copy.sh命令
进入到/mnt/sysroot/etc下,编辑inittab文件
进入到/mnt/sysroot/etc/ rc.d编辑rc.sysinit文件:
[root@server1 rc.d]# vim rc.sysinit
修改权限:
[root@server1 rc.d]# chmod a+x rc.sysinit
到此,一个新的硬盘就完成了。安装系统的时候将默认硬盘扣出,使用我们新建的硬盘2.vmdk就可以了。
以后需要什么东西还可以在里面添加,这个我会在后面向大家说明。
本文出自 “乾坤的博客” 博客,转载请与作者联系!