首页 > 其他 > 详细

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

时间:2014-03-05 23:50:32      阅读:820      评论:0      收藏:0      [点我收藏+]

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


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



一、准备工作


   HOST:宿主机

   Target:目标机


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

   2、给目标磁盘分区

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

          命令:fdisk/dev/sdb

       bubuko.com,布布扣

格式化两个分区:

命令: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

            bubuko.com,布布扣



三、复制内核和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

       bubuko.com,布布扣



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

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

       命令:

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

                  bubuko.com,布布扣

     2、接着去移植bash

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

           #!/bin/bash

           #

           target=/mnt/sysroot

           

           clearCmd() {

                  ifwhich $cmd &> /dev/null;then

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

                  else

                         echo"No such command"

                         return5

                  fi

           }

           cmdCopy() {

                  cmdDir=`dirname$1`

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

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

           

           }

           

           libCopy() {

                  forlib 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

        bubuko.com,布布扣


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

使用“quit”退出脚本

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


   建立软链接sh -> bash

        bubuko.com,布布扣

   

   检验命令能否正常使用

          bubuko.com,布布扣        可以正常使用



五、为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


                   bubuko.com,布布扣



六、配置init脚本

       命令vim /mnt/sysroot/sbin/init

       脚本:

           #!/bin/bash

           #

           echo –e  “\tWelcometo \033[034mMageEdu Tiny\033[0m Linux”

           mount –n –t proc proc /proc

           mount –n –t sysfs sysfs /sys  

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

           /bin/bash

           

                       bubuko.com,布布扣

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


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



七、启动目标机


       1、挂起宿主机

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

bubuko.com,布布扣


       3、启动

               bubuko.com,布布扣



八、为目标机配置网卡、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/

       bubuko.com,布布扣


       第一种方法:

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

           命令:

               insmod /lib.modules/e1000.ko

                         bubuko.com,布布扣


           2、配置ip

               ifconfig eth0 172.16.88.8/16          

       bubuko.com,布布扣


       第二种方法:

           在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

                                   bubuko.com,布布扣



        重启目标机

           查看ip

         bubuko.com,布布扣

                 

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



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


本文出自 “斜视天花板” 博客,请务必保留此出处http://lemidi.blog.51cto.com/8601832/1368797

基于HOST宿主机制作一个简单的可启动的Linux,布布扣,bubuko.com

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

原文:http://lemidi.blog.51cto.com/8601832/1368797

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!