文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>通过image文件远程安装已经配置的Linux(2)

通过image文件远程安装已经配置的Linux(2)

时间:2006-02-27  来源:tingyu

一.    制作initrd文件

1.        选择操作系统,这里就用FC2.0吧.

2.        安装busybox.

在这里, 需要一些命令去做一些事情, 比如fdisk, ls ,mv……如果把所有这些文件都做到initrd中,这个文件会太庞大了, busybox就是为了解决这个问题的.

从www.busybox.net上下载最新的版本, 解开后里面有一个INSTALL,按照INSTALL安装就可以了.

#cd /tmp/busybox

#tar xjvf busybox-1.1.0.tar.tar

#cd busybox-1.1.0

#make O=/tmp/busybox1 allyesconfig

#cd /tmp/busybox1

#make

 

3.        定制initrd

因为定制的initrd可能要包含一些文件,所以字节数需要大一点

#mkdir /tmp/initrd && cd /tmp/initrd

#mkinitrd initrd-new x.x.x-xx(后面的是kernel版本号)

在当前目录下会生成一个initrd-new文件.

#zcat initrd-new > 1(也可以使用gunzip)

#mkdir m1

#mount –oloop 1 m1

#cd m1

#mv bin bin.bak

#rm –rf sbin

在m1目录中就是initrd包含的文件了,目标机器读到initrd文件后,会去执行sbin/init文件,这个文件目前指到linuxrc,我们需要busybox

 

#cd /tmp/busybox1

#make PREFIX=/tmp/initrd/m1

再看看/tmp/initrd/m1/下的bin和shin目录

查一下busybox依赖的lib文件:

#ldd /tmp/busybox1/busybox

然后把对应的lib文件以及link放到/tmp/initrd/m1/lib目录中,

Busybox默认首先执行etc/init.d/rcS文件,所以我们要先建一个rcS文件:

#!/bin/sh

 

PATH=/sbin:/bin:/usr/bin:/usr/sbin

 

# Mount filesystems in /etc/fstab.

if [ -x /bin/mount ]; then

/bin/mount -a -v

fi

 

echo "Loading modules..."

insmod /lib/e1000.ko

insmod /lib/sunrpc.ko

insmod /lib/lockd.ko

insmod /lib/jbd.ko

insmod /lib/ext3.ko

insmod /lib/nfs.ko

insmod /lib/scsi_mod.ko

insmod /lib/sd_mod.ko

insmod /lib/libata.ko

insmod /lib/ata_piix.ko

insmod /lib/sata_sis.ko

echo "Loading modules done"

#sleep 15

ifconfig eth0 192.168.100.100 netmask 255.255.255.0

portmap

sleep 15

echo "Connect nfs server and get image files..."

mount -o rsize=8192,wsize=8192,intr,nolock 192.168.100.1:/images /images

echo "Connecting nfs server done"

/images/runme.sh

根据这个shell,我们知道

a.        还需要bash文件,将bash复制到/tmp/initrd/m1/bin目录中,同时检查lib文件.

b.       [root@backup etc]# cat fstab

none  /proc  proc  defaults  0  0

c.        硬件驱动文件,文件系统驱动文件

insmod /lib/e1000.ko  ------网卡

insmod /lib/sunrpc.ko

insmod /lib/lockd.ko

insmod /lib/jbd.ko

insmod /lib/ext3.ko

insmod /lib/nfs.ko                ------以上为文件系统

insmod /lib/scsi_mod.ko

insmod /lib/sd_mod.ko

insmod /lib/libata.ko

insmod /lib/ata_piix.ko

insmod /lib/sata_sis.ko       ------以上为硬盘控制器驱动

对于硬盘控制器,如果是IDE,就不需要,我这里是sata硬盘,比较恶心,如果是scsi硬盘,还需要一个aic

这些文件是从同类型机器上安装了FC2后获得的.

d.       需要一个portmap文件,在/sbin目录下.

e.        Runme.sh需要自己手动建

 

接下来,还要处理dev目录中内容,我对dev目录不太了解,直接从/dev复制是不可以,只好使用现成的..

 

所有的文件都搞定后:

#cd /tmp/initrd/

#umount m1

#gzip -9 1

#cp 1.gz initrd-new

排行榜 更多 +
弓箭手战士酷跑

弓箭手战士酷跑

飞行射击 下载
三角洲行动全面战场攀升A点进攻指南

三角洲行动全面战场攀升A点进攻指南

飞行射击 下载
僵尸射手世界大战

僵尸射手世界大战

飞行射击 下载