设计简化linux的过程

设计简化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就可以了。

以后需要什么东西还可以在里面添加,这个我会在后面向大家说明。


本文出自 “乾坤的博客” 博客,转载请与作者联系!

你可能感兴趣的:(linux,虚拟机,操作系统)