linux远程安装文件,通过image文件远程安装已经配置的Linux

smallwl 于 2006-08-29 00:08:53发表:

一. 制作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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值