编译内核源码

由于选择用ramdisk启动的方式,因此需要在配置项中选择支持RAM block device,RAM disk大小配置为64M(65535字节)。如下图所示

图片alt

图片alt

cd linux-5.8.6/
make O=build x86_64_defconfig
make O=build menuconfig

编译busybox

图片alt

图片alt

制作initrd

mkdir initramfs
cd initramfs
mkdir dev proc sys
cp ../_install/* ./ -ra
sudo cp -a /dev/{null,console,tty1,tty2,tty3,tty4} dev/
touch init
chmod a+x init

init 内容

mount -t proc none /proc
mount -t sysfs none /sys
mdev -s
exec /sbin/init
find . -print0 | cpio --null -ov --format=newc | gzip -9 > ../initramfs.cpio.gz

运行参数安装

qemu-system-x86_64 -smp 2 -m 1024M -kernel linux-5.10.10/build/arch/x86_64/boot/bzImage -nographic -append "root=/dev/ram0 rw rootfstype=ext4 console=ttyS0 init=/linuxrc" -initrd initrd/initramfs.cpio.gz 

reference:
https://blog.csdn.net/jiangwei0512/article/details/108176837
https://blog.csdn.net/fantasy_wxe/article/details/108418822