1. busybox的安装
请参考这篇文章:https://blog.csdn.net/assiduous_me/article/details/120939319?spm=1001.2014.3001.5501
2. x86文件系统的制作
当前的操作目录:
syz@DESKTOP-B10G93S:~$ ls -l
total 1488
drwxr-xr-x 44 syz syz 4096 May 13 19:08 busybox
drwxr-xr-x 32 syz syz 4096 May 13 18:59 linux
drwxr-xr-x 10 syz syz 4096 Mar 27 16:48 linux-0.11-master
-rw-r--r-- 1 syz syz 1193 May 13 19:38 make_rootfs.sh
-rw-r--r-- 1 syz syz 200 May 13 19:40 start_x86_kernel.sh
make_rootfs.sh
是生成x86文件系统的脚本文件
#!/bin/bash
sudo mkdir mnt
sudo dd if=/dev/zero of=./rootfs.ext4 bs=1M count=32
sudo mkfs.ext4 rootfs.ext4
sudo mount rootfs.ext4 mnt
sudo cp -r busybox/_install/* mnt
cd mnt
sudo mkdir -p sys mnt sys etc/init.d dev tmp proc
cd dev
sudo mknod console c 5 1
sudo mknod null c 1 3
sudo mknod tty1 c 4 1
sudo mknod ttyS0 c 4 64
cd ../
sudo echo "proc /proc proc defaults 0 0" > etc/fstab
sudo echo "tmpfs /tmp tmpfs defaults 0 0" >> etc/fstab
sudo echo "sysfs /sys sysfs defaults 0 0" >> etc/fstab
sudo chmod 755 etc/fstab
sudo echo "/bin/mount -a" > etc/init.d/rcS
sudo echo "mount -o remount, rw /" >> etc/init.d/rcS
sudo echo "mkdir -p /dev/pts" >> etc/init.d/rcS
sudo echo "mount -t devpts devpts /dev/pts" >> etc/init.d/rcS
sudo echo "mdev -s" >> etc/init.d/rcS
sudo chmod 755 etc/init.d/rcS
sudo echo "::sysinit:/etc/init.d/rcS" > etc/inittab
sudo echo "::respawn:-/bin/sh" >> etc/inittab
sudo echo "::askfirst:-/bin/sh" >> etc/inittab
sudo echo "::ctrlaltdel:/bin/umount -a -r" >> etc/inittab
sudo chmod 755 etc/inittab
cd ..
sudo umount mnt
sudo rm -rf mnt
gzip --best -c rootfs.ext4 > rootfs.img.gz
rm -rf rootfs.ext4
执行该脚本即可生成x86文件系统
syz@DESKTOP-B10G93S:~$ sudo sh make_rootfs.sh
32+0 records in
32+0 records out
33554432 bytes (34 MB, 32 MiB) copied, 0.0192194 s, 1.7 GB/s
mke2fs 1.45.5 (07-Jan-2020)
Discarding device blocks: done
Creating filesystem with 8192 4k blocks and 8192 inodes
Allocating group tables: done
Writing inode tables: done
Creating journal (1024 blocks): done
Writing superblocks and filesystem accounting information: done
syz@DESKTOP-B10G93S:~$ ls -l
total 1484
drwxr-xr-x 44 syz syz 4096 May 13 19:08 busybox
drwxr-xr-x 32 syz syz 4096 May 13 18:59 linux
drwxr-xr-x 10 syz syz 4096 Mar 27 16:48 linux-0.11-master
-rw-r--r-- 1 syz syz 1193 May 13 19:38 make_rootfs.sh
-rw-r--r-- 1 root root 1499123 May 13 19:45 rootfs.img.gz
-rw-r--r-- 1 syz syz 200 May 13 19:40 start_x86_kernel.sh