首页 > 代码库 > 使用busybox构建根文件系统

使用busybox构建根文件系统

当我们在Qemu上运行起来自己编译的内核之后,需要使用busybox构建一个文件系统,将此文件系统挂载上去就可以使用busybox提供的各种命令了。

1.编译安装busybox

源码下载地址:http://www.busybox.net/downloads/

编译安装过程:

tar jxvf busybox-1.23.1.tar.bz2cd busybox-1.23.1make menuconfig选择静态编译BusyboxSettings->Build options->Build Busybox as a static binarymake

编译完成之后先不要直接make install,我们先构建一个ext4的文件系统

dd if=/dev/zero of=rootfs.img bs=1M count=32mkfs.ext4 rootfs.img创建一个rootfs的目录mkdir rootfs将rootfs.img挂载到此目录上sudo mount -t ext4 -o loop rootfs.img rootfs切换到rootfs目录sudo cd rootfssudo mkdir dev proc sys

再回到编译busybox的目录,将busybox安装到此目录下

make install CONFIG_PREFIX=~/Qemu/rootfscd ~/Qemu/rootfssudo umount rootfs 

2.以rootfs为根文件系统在Qemu下运行编译处的内核

在一个终端下执行

qemu-system-i386 -S -kernel bzImage -hda rootfs.img -append "root=/dev/sda init=/bin/ash rw" -monitor stdio在qemu命令下打开gdbservergdbserver tcp::1234

在编译处内核的目录下用gdb打开vmlinux

gdb vmlinux在gdb命令下执行target remote localhost:1234continue

这样我们自己编译的内核以及文件系统就可以用gdb+qemu调试了。

技术分享

使用busybox构建根文件系统