Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1172762
  • 博文数量: 150
  • 博客积分: 2739
  • 博客等级: 少校
  • 技术积分: 2392
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-07 12:28
文章分类

全部博文(150)

文章存档

2015年(2)

2014年(16)

2013年(10)

2012年(58)

2011年(64)

分类: LINUX

2011-08-18 22:43:38

这次我说的是自己制作小Linux的方法:

    环境:需要在rhlinux5做宿主机,一块IDE 40G的硬盘,也就是在这块硬盘上做属于自己的linux.

IDE硬盘,创建一个至少两个分区并格式化,一个做boot引导,一个做根目录,当然也可以创建个交换分区(不是必须的)

 格式化的命令是fdisk /dev/sdb  

   #mkfs.ext3  /dev/sdb1

   #mkfs.ext3  /dev/sdb2

创建目录用来挂载的:

   #mkdir  /mnt/{boot , sysboot}

   #mount  /dev/sdb1  /mnt/boot

   #mount  /dev/sdb2  /mnt/sysboot

/mnt/sysboot中创建根目录所需的目录:

   # mkdir -pv etc/rc.d lib bin sbin usr/{bin,etc,lib,sbin} proc sys dev tmp /tmp/initrd

此时我们要copy一些linux需要的库和SHELL,在这里说一下:linux其实就是个shell,这里只是构建最简单的。这一步copy, bash需要的脚本和依赖的库,你可以用which bash ldd /bin/bash看到所需的脚本和依赖的库


cp /lib/libsepol.so.1  /mnt/sysboot/lib/

 cp /lib/libselinux.so.1  /mnt/sysboot/lib/

 cp /lib/libtermcap.so.2  /mnt/sysboot/lib/

 cp /lib/ld-linux.so.2  /mnt/sysboot/lib/

 cp /lib/libdl.so.2  /mnt/sysboot/lib/

 cp /lib/libc.so.6  /mnt/sysboot/lib/

cp /sbin/init  /mnt/sysboot/sbin/

cp  /bin/bash  /mnt/sysboot/bin/

cp /boot/vmlinuz-2.6.18-164.el5 /mnt/boot/vmlinuz

拷贝完了,你要验证一下:chroot /mnt/sysboot ,如果你能进到shell中,那你就说明你的bash可以用。下一步开始做/mnt/boot的,这个目录就是linux在启动时需要用到的也是你能否进入linux中。很是关键!

安装GRUB, 这是个引导工具

   #grub-install  --root-directory=/mnt  /dev/sdb

重新生成内核:

   # cd  /tmp/initrd

   # zcat /boot/initrd-2.6.18-164.el5.img  | cpio –id

  打开init并找到mkrootdev *****  Ro  /dev/vol10/root这类似的一行将ro /dev/**** 改成 ro sda2  (注意这里的***是省去的文字)

   重新封装

#find . | cpio --quiet -H newc -o | gzip -9 -n > /mnt/boot/initrd.gz

更改gub.conf

    #cd /mnt/boot/grub/

    把如下文字复制在grub.conf文件中,可能有时你会找不到该文件,那你就自己创建个该文件touch grub.conf (位置一定要对/mnt/boot/grub)

     #default=0

     #timeout=3

     # title my little linux

     # root (hd0,0)

     #kernel /vmlinuz  ro  root=/dev/sda2

     #initrd  /initrd.gz

  注这里的#,你在复制时一定要去掉!!!

编辑inittab文件,该文件的位置在/mnt/sysboot/etc/inittab (没有initab自己创建),写下面内容

          #id:3:indefault:

          #si::sysinit:/etc/rc.d/rc.sysinit

  编辑rc.sysinit文件,文件的位置/mnt/sysboot/etc/rc.d/,在文件中写面内容

          #bin/bash

          #echo –e “\033[32m my linux \033[0m”

          #mount –n –o remount..rw /

          #mount –n -a

          #/bin/bash

让该文件具有执行权限

       #chmod +x rc.sysinit

 

让磁盘同步一下

        #sync

       # sync

这里你就完成了,可以令创建一个虚拟机,在选择硬盘在时候使用链接的,用上这个40GIDE的硬盘,启动机器。你就可以进入到你自己的linux中去了,当然此时的功能很是少,你可以将你需要命令和网络一起复制里面就行了。

 

 

 

 

 

要用网络需要能有网络模块才可以, 需要pcnet32mii模块;

 

这里你要有以下命令才可,当然也是用来验证的 ping , ifocnfig ,insmod, rmmod ,modprobe这是必须的)

  Modinfo pcnet32 查看到详细信息 modinfo mii  也以能看信息,将模块拷贝能/mnt/sysboot/ 相应的目录下

 当让你的linux能启动就可以使用需要在开机就装载,需要改/mn/sysboot/etc/rc.d/rc.sysinit 添加如下内容:

          #bin/bash

          #echo –e “\033[32m my linux \033[0m”

          #mount –n –o remount..rw /

          #mount –n –a

          #  [ -e /lib/modules/mii.ko ] && /sbin/insmod /lib/modules/mii.ko 判断是不装载并装载模块

          #  [ -e /lib/modules/mii.ko ] && /sbin/insmod /lib/modules/pcnet32.ko

          #  echo “ Load modules card drive OK “  用来显示

          #  echo “ Set the address for lo”

          #  /sbin/ifconfig lo 127.0.0.1     设置ip

          #  /sbin/ifconfig eth0 192.168.0.111

           

          #/bin/bash

这样就OK了,小linux就此初步完成,且具就网络功能!!

阅读(721) | 评论(0) | 转发(0) |
0

上一篇:Linux--OpenSSL

下一篇:Linux之raid 、LVM的创建

给主人留下些什么吧!~~