Chinaunix首页 | 论坛 | 博客
  • 博客访问: 187650
  • 博文数量: 64
  • 博客积分: 1451
  • 博客等级: 上尉
  • 技术积分: 665
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-24 10:07
文章分类

全部博文(64)

文章存档

2010年(7)

2009年(57)

我的朋友

分类: 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中,并创建相关目录和文件。

  • 拷贝的程序使用busybox即可。

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

  • 创建两个目录/proc和/sys

mkdir /mnt/ram/proc

mkdir /mnt/ram/sys

  • 编写linuxrc可执行程序,文件内容如下:

#!/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.重启系统

阅读(810) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~