分类: LINUX
2009-09-08 14:46:09
1.编译内核,使其支持RAMdisk和initialRAM disk。
在内核选项的block device目录下
2.制作RAMdisik image
(1)dd if=/dev/zero of=/dev/ram1
也可以指定块的大小和块的数量
dd if=/dev/zero of=/dev/ram1 bs=1M count=4
zero是一个特殊的设备,表示全部为0的字符块.上面这条命令的意思是把系统的第一个 ramdisk用全部为0的数据填充,因为ramdisk默认大小为4M,因此当读满8192个块(每块512字节)后,显示'设备上没空间'.这很正 常,/dev/ram1已经被填充满了。
(2)格式化ram1,并挂载到指定目录
mkfs.ext2 -m0 /dev/ram1
mkdir /mmt/ram
mount /dev/ram1 /mnt/ram
(3)将initrd所需要的文件全部拷贝到/mnt/ram中,并创建相关目录和文件。
cp -R /source/busybox/_install/bin /mnt/ram
cp -R /source/busybox/_install/sbin /mnt/ram
mkdir /mnt/ram/dev
cp -a /dev/console /mnt/ram/dev
cp -a /dev/ram0 /mnt/ram/dev
cp -a /dev/null /mnt/ram/dev
cp -a /dev/tty1 /mnt/ram/dev
cp -a /dev/tty2 /mnt/ram/dev
mkdir /mnt/ram/proc
mkdir /mnt/ram/sys
#!/bin/ash
echo
echo "Simple initrd is active"
echo
mount -t proc /proc /proc
mount -t sysfs none /sys
/bin/ash --login
(4)导出镜像
卸载ram1
umonut /dev/ram1
导出镜像
dd if=/dev/ram1 of=/root/ramdisk.img (of= 后的目录可为任意目录)
此时,RAM disk image已经做完,可以通过mount -o loop /root/ramdisk.img /mnt/ram挂载该镜像,查看
里面的文件是否和当初考入的文件一样。
3.使用image文件
压缩镜像
gzip /root/ramdisk.img
将压缩生成的ramdisk.img.gz复制到/boot下。然后修改/boot/grub/menu.lst,添加一行
initrd /boot/ramdisk.img.gz。
4.重启系统