分类: LINUX
2008-12-14 14:41:22
用busybox制作文件系统
主机:Ubuntu8.04
编译器:
arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
Busybox版本:busybox-
tar –jxvf busybox-
cd busybox-
make menuconfig
root@dc-desktop:/home/dc/arm/busybox-
CROSS_COMPILE ?= arm-none-linux-gnueabi-
ARCH ?= arm
root@dc-desktop:/home/dc/arm/busybox-
root@dc-desktop:/home/dc/arm/busybox-
此时/home/bx目录下应该有:sbin,bin,usr,linuxrc
root@dc-desktop:/home/bx# mkdir lib proc tmp usr var sys root mnt home test
建立设备文件:
root@dc-desktop:/home/bx# cd dev
root@dc-desktop:/home/bx/dev# mknod sda b 8 0
root@dc-desktop:/home/bx/dev# mknod sda1 b 8 1
root@dc-desktop:/home/bx/dev# mknod console c 5 1
root@dc-desktop:/home/bx/dev# mknod fb
root@dc-desktop:/home/bx/dev# mknod hda1 b 3 1
root@dc-desktop:/home/bx/dev# mknod hda b 3 0
root@dc-desktop:/home/bx/dev# mknod loop0 b 7 0
root@dc-desktop:/home/bx/dev# mknod null c 1 3
root@dc-desktop:/home/bx/dev# mknod ram0 b 1 0
root@dc-desktop:/home/bx/dev# mknod tty c 5 0
root@dc-desktop:/home/bx/dev# mknod tty
root@dc-desktop:/home/bx/lib# cp -a /usr/local/arm/arm-2008q1/arm-none-linux-gnueabi/libc/armv4t/lib/* .
//拷贝编译器的库到lib目录,准备为将来做应用程序做准备。
在etc目录下面建立文件inittab,在文件中写入以下内容:
::sysinit:/etc/rc.S
::askfirst:/bin/ash
其中,sysinit表示后面找个程序在系统初始化的时候执行,后面的askfirst表示系统初始化完毕后启动的程序。这个程序如果执行结束,那么系统会再次启动它。
然后建立rc.S文件,写入以下内容:
#!/bin/ash
/bin/mount -t proc /proc /proc
export PATH=/bin/:/sbin/:/usr/sbin/
到此一个基本的根文件系统已经制作完毕,以下将其制作成成ramdisk格式的文件系统:
在某一个目录下输入如下命令:
mkdir initrd
dd if=/dev/zero of=initrd.img bs=1k count=8192
mke2fs -F -v -m0 initrd.img
mount -o loop initrd.img initrd
cp -r /home/bx/* initrd
umount initrd
gzip -9 initrd.img
即可得到压缩后的ranmdisk文件系统initrd.img.gz
chinaunix网友2009-05-08 21:07:04
您好,那个inittab文件是说/etc下的inittab吧,它本身有这么一段: si::sysinit:/etc/rc.d/rc.sysinit 请问::sysinit:/etc/rc.S ::askfirst:/bin/ash 这两句应该填在哪里阿