基于HOST宿主机制作一个简单的可启动的Linux

基于HOST制作一个简单的可启动的Linux


                   能装载网卡驱动,并配置IP地址。使用init脚本



一、准备工作


   HOST:宿主机

   Target:目标机


   1首先需要在宿主机上添加一个新目标磁盘

   2、给目标磁盘分区

      分成:/dev/sdb1(100M), /dev/sdb2 (1G)

          命令:fdisk/dev/sdb

wKioL1MW9k2jVR50AA_2IuJQByM414.bmp

格式化两个分区:

命令:mke2fs-t ext4 /dev/sdb1

     mke2fs-t ext4 /dev/sdb2

        3、将 /dev/sdb1  挂载至  /mnt/boot

           将/dev/sdb2  挂载至 /mnt/sysroot

              命令:mkdir /mnt/boot          

     mount/dev/sdb1 /mnt/boot/

                     mkdir /mnt/sysroot      

     mount/dev/sdb2 /mnt/sysroot/



、安装grub至目标磁盘


       命令:grub-install  --root-directory=/mnt  /dev/sdb

wKiom1MW9wKSXn3pAAOdcurDoOs117.bmp



三、复制内核和initrd文件


       命令:

           cp  /boot/vmlinuz-2.6.32-358.el6.x86_64  /mnt/boot/vmlinuz

           cp /boot/initramfs-2.6.32-358.el6.x86_64.img   /mnt/boot/initramfs.img

wKioL1MW-B3iUg9tAAEg1rO8jIc394.bmp



.创建根文件,复制根文件系统

1、先创建目标主机的根文件系统

       命令:

mkdir -pv /mnt/sysroot/{etc/rc.d,usr,proc,sys,dev,lib,lib64,bin,sbin,boot,srv,mnt,media,home,root}

wKioL1MW-JiivLXOAAodvnaTidI608.bmp

     2、接着去移植bash

        写拷贝命令的脚本,这里给大家提供一个移植命令并且能让其正常工作的脚本cpcmd.sh


#!/bin/bash

#

target=/mnt/sysroot


clearCmd() {

      if which $cmd &> /dev/null; then

             cmdPath=`which --skip-alias $cmd`

      else

             echo "No such command"

             return 5

      fi

}

cmdCopy() {

      cmdDir=`dirname $1`

      [ -d ${target}${cmdDir} ]|| mkdir -p ${target}${cmdDir}

      [ -f ${target}${1} ] || cp $1 ${target}${cmdDir}


}


libCopy() {

      for lib in `ldd $1 | grep -o "/[^[:space:]]\{1,\}" `;do

             libDir=`dirname $lib`

             [ -d ${target}${libDir} ] || mkdir -p ${target}${libDir}

             [ -f ${target}${lib} ] || cp $lib ${target}${libDir}

      done


}

while true;do

      read -p "Enter a command:  " cmd

      if [ "$cmd" == "quit" ]; then

             echo "quit"

              exit 6

      fi

clearCmd $cmd

cmdCopy $cmdPath

libCopy $cmdPath

done


wKiom1MW-QXCWZNHAAO3dot7D2w059.bmp


ls,cat,mkdir,mv,bash,mount,umount,insmod,rmmod,ifconfig,ip,ping,passwd,vim

使用“quit”退出脚本

   复制个人需要使用到的命令


   建立软链接sh -> bash

wKioL1MW-UbAhOtrAASVUqeguKw724.bmp

   检验命令能否正常使用

wKioL1MW-cjz2lSIAAPHhhkWbQE615.bmp        可以正常使用



五、为grub提供配置文件

       命令: vim /mnt/boot/grub/grub.conf

       脚本:

           default=0

           timeout=5

           title MagEdu  Little  Linux

                   root(hd0,0)

                  kernel /vmlinuz ro root=/dev/sda2 quiet selinux=0 init=/sbin/init

                  initrd /initramfs.img


wKiom1MW-3eyOpVSAAMuPnE8Vhc358.bmp



六、配置init脚本

命令vim /mnt/sysroot/sbin/init

       脚本:

           #!/bin/bash

           #

           echo �Ce  “\tWelcometo \033[034mMageEdu Tiny\033[0m Linux”

           mount �Cn �Ct proc proc /proc

           mount �Cn �Ct sysfs sysfs /sys  

           mount �Cn �Co remount,rw /dev/sda2

           /bin/bash


                   wKiom1MW-_ChCHUCAALBXuJxrl8732.bmp

           加执行权限chmod +x /mnt/sysroot/sbin/init


以上操作完成之后,执行sync:将内存数据存入硬盘



七、启动目标机


       1、挂起宿主机

       2、建立一个新的目标机,使用一个已存在的磁盘,选择目标磁盘

wKiom1MW_Luxede8ABC01o2G44k943.bmp


       3、启动

wKiom1MW_Qyym_OjAAz9RoLMtRg749.bmp



八、为目标机配置网卡、IP


       这里有两种方法:

       先手动复制从宿主机复制网卡驱动至目标机

       命令:

           mkdir /mnt/sysroot/lib/modules

           cp /lib/modules/2.6.32-358.el6.x86_64/kernel/drivers/net/e1000/e1000.ko/mnt/sysroot/lib/modules/

wKiom1MW_hSzhEZvAAIzxvm2uw4559.bmp


       第一种方法:

           1、在目标机上手动安装网卡驱动

           命令:

               insmod /lib.modules/e1000.ko

wKiom1MW_i2SNMcdAAFFZqXPekc466.bmp


           2、配置ip

               ifconfig eth0 172.16.88.8/16

wKiom1MW_piTWzyFAAWX1gMdP8Y352.bmp


       第二种方法:

           在init配置文件中自动安装网卡驱动,自动配置IP

               脚本:

                #!/bin/bash

               #

               echo -e "\tWelcome to \033[034mMageEdu Tiny\033[0m Linux"

               mount -n -t proc proc /proc

               mount -n -t sysfs sysfs /sys  

               insmod /lib/modules/e1000.ko

               ifconfig lo 127.0.0.1/8

               ifconfig eth0 172.16.88.8/16

               mount -n -o remount,rw /dev/sda2

               /bin/bash

wKioL1MW_xvy3tGMAAPW1rSviDo230.bmp



        重启目标机

           查看ip

wKioL1MW_1_wohFIAAjtlkpq5_A588.bmp

       网卡驱动自动安装成功,ip自动配置成功。



以上就是基于HOST制作一个简单的可启动的Linux


你可能感兴趣的:(制作LINUX,简单linux,小型可用linux)