linux 文件放在内存,制作运行在内存中的Linux系统

一般情况下,linux系统启动过程是,写在MBR上的bootloader加载内核,然后加载初启环境,即initrd;在initrd中,一般有个叫init或linuxrc的脚本(或ELF文件),该进程启动后,会先读取/etc/inittab下的内容,这是一个初始化表,用以确定执行/etc/rc.d下的哪个RC脚本,RC脚本执行完毕后,文件系统基本上就得到所有的硬件信息了,进而加载真正的根分区。现在要做的是——将initrd作为根分区,这样,要做的事情主要有四点:1.创建一个空间比较大的Ramdisk ,2.用busybox生成文件系统中必备的命令,用它的主要原因是占用空间小,3.添加或修改dev和etc下的文件,4.考虑添加一些应用程序,比如ssh等。

操作系统:SlackWare12,内核版本:2.6.21.5-smp

1.创建一个空间比较大的Ramdisk

#dd if=/dev/zero of=/tmp/ramdisk bs=1k count=92160

#losetup /dev/loop2 /tmp/ramdisk

#mkfs.ext2 /dev/loop2

#mount -t ext2 /dev/loop2 /mnt

可以向/mnt下写东西了,然后

#umount /mnt

以后修改时,可以这样用

#gunzip ramdisk.gz //将initrd解压

#mount -o loop ramdisk /mnt //挂载

... ... //修改其中的内容

#gzip -9 ramdisk //重新压缩

2.用busybox生成文件系统中必备的命令

下载一个比较新的busybox,首先需要修改源代码,否则会在编译时出现因未采用uclibc 编译而产生的错误。打开applets/applets.c文件,注释掉“

#if ENABLE_STATIC && defined(__GLIBC__) && !defined(__UCLIBC__)

#warning Static linking against glibc produces buggy executables

#warning (glibc does not cope well with ld --gc-sections).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值