使用BusyBox制作ramdisk文件系统

本文详细介绍如何使用BusyBox在Ubuntu环境下制作ramdisk文件系统,包括软件准备、根文件系统搭建、BusyBox编译安装、ramdisk镜像制作及内核配置等步骤。

使用BusyBox制作ramdisk文件

一、软件准备

主机:ubuntu12.04.5
工具链:arm-linux-gnueabihf-6.2.1
内核:linux-4.9.28
Busybox:busybox-1.29.3

二、制作根文件系统

1、建立目录

	# mkdir ramdiskfs    
	# cd ramdisk
	# mkdir mnt tmp var usr sys proc etc lib dev bin sbin root home
	# mkdir usr/bin usr/sbin usr/lib lib/modules

2、添加设备文件

    # cd dev 
    # mknod -m 666 console c 5 1 (备注:创建控制台设备文件) 
    # mknod -m 666 null c 1 3 (备注:创建一个空的设备文件)

3、添加配置文件

复制busybox中的/examples/bootfloppy/etc的文件

三、编译Busybox

1、配置Busybox
进入busybox目录下

    # cd busybox-1.29.3 
    # make menconfig

1)选择Settings -> build Options -> Build busybox as a static binary,即静态链接,免去拷贝大量的库文件。
2)指定交叉编译工具cross compile prefix: arm-linux-gnueabihf-
3)指定头文件位置Path to sysroot: /opt/sysroots/armv7ahf-neon-linux-gnueabi/,如果没在指定头文件,则会在编译时出现找不到头文件limit.h的错误。
在这里插入图片描述
4)指定Busybox安装位置Destination path for’make install’:/xxx/ramdiskfs/
在这里插入图片描述
2、编译并安装busybox

    # make
    # make install

四、使用genext2fs制作ramdisk根文件系统镜像

1、安装genext2fs

    # apt-get install genext2fs

2、使用genext2fs将ramdisk根文件系统打包成ext2文件系统镜像

    # genext2fs -b 4096 -d ramdsikfs ramdisk

-b是指制作的ramdisk大小为4096K字节
-d是指要制作成ramdisk的根文件系统目录
ramdisk是制作出来的ramdisk的名字。
3、将ramdisk以最优方式压缩为ramdisk.gz

    # gzip -v9 -f ramdisk

4、为ramdisk添加头结构信息
先安装mkimage

    # apt-get install u-boot-tools

然后运行以下命令

   # mkimage -n 'uboot ext2 ramdisk rootfs' -A arm -O linux -T ramdisk -C gzip -d ramdisk.gz ramdiskfs.gz

-n image在头结构中的命名
-A 用于指定CPU类型,比如ARM
-O 用于指定操作系统,比如Linux
-T 用于指定image类型,比如Kernel
-C 指定压缩类型
-d 无头信息的image文件名

五、内核文件配置

进入内核文件目录,打开配置菜单:

    # make menuconfig

修改以下几个配置项:
1、选择General setup–> Initial RAM filesystem and RAM disk (initramfs/initrd) support
在这里插入图片描述
2、选择Device Drivers–>Block devices–> RAM block device support
3、设定选项Default RAM disk size kbytes的值为4096,与制作的ramdisk是4096K大小相匹配,否则启动时会出现kernel panic,提示ramdisk格式不正确,挂载不上ramdisk。
在这里插入图片描述
4、选择File systems–>Second extended fs support,以提供内核对ext2文件系统的支持。
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值