利用busybox制作文件系统

xiaoxiao2021-02-28  26

主要是为UML Linux制作文件系统,以便调试使用。使用的是busybox-1.24.0版本。编译安装完成之后,默认安装在源码下的_install目录: root@localhost:rootfs$ ls busybox-1.24.0/_install/ bin  linuxrc  sbin  usr root@localhost:rootfs$

busybox命令集安装在bin、sbin、usr/bin和usr/sbin四个目录下。新建目录initrd,拷贝_install目录下所有文件到initrd下:

mkdir initrd cp -rf busybox-1.24.0/_install/* initrd/

在initrd目录下,修改linuxrc文件重命名为init,新建目录dev、etc、lib、lib64、porc和sys,完成后如下:

root@localhost:rootfs$ ls initrd/ bin/ dev/ etc/ init lib/ lib64/ proc/ sbin/ sys/ usr/

在etc目录下新建文件fstab,添加如下内容:

proc /proc proc defaults 0 0 sysfs /sys sysfs defaults 0 0

创建etc/init.d/rcS文件,内容如下,mount命令自动挂载proc和sys文件系统

#!/bin/sh mount -a

创建etc/inittab文件:

# /etc/inittab ::sysinit:/etc/init.d/rcS console::respawn:-/bin/sh ::ctrlaltdel:/sbin/reboot ::shutdown:/bin/umount -a -r

对于目录dev、lib、lib64和usr/lib,可拷贝当前系统相应目录内容,去掉不用的库文件。

cp /dev/* initrd/dev/ cp /lib/* initrd/lib/ cp /lib64/* initrd/lib64/ cp /usr/lib/* initrd/usr/lib/

到此已在initrd目录下生成一个完整的文件系统,接下来制作文件系统镜像:

dd if=/dev/zero of=ramdisk bs=1k count=40960 mkfs.ext4 -F ramdisk mount -t ext4 ramdisk mnt_ramdisk/ cp -rf initrd/* mnt_ramdisk/ umount mnt_ramdisk/ gzip -9 ramdisk

或者使用更简单的cpio命令:

cd initrd/ find . | cpio -H newc -o > ../initrd_cpio.img

完。

转载请注明原文地址: https://www.6miu.com/read-2597836.html

最新回复(0)