Busybox制作x86文件系统(最便捷版)

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
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我会尽力回答你的问题。首先,busybox是一个非常小巧的程序集合,它集成了许多常用的Linux工具,可以用来替代传统的Linux命令行工具,从而使得系统的启动时间更快、占用的空间更小。基于busybox的根文件系统可以使得系统更加轻量级,并且可以方便地定制。下面是实现基于busybox的根文件系统的步骤: 1. 下载busybox源代码,并编译生成busybox可执行文件。你可以从busybox的官网上下载源代码,然后使用make命令进行编译。 2. 创建一个新的目录作为根文件系统的挂载点。你可以使用mkdir命令创建一个空目录。 3. 将busybox可执行文件复制到根文件系统目录中。你可以使用cp命令将busybox可执行文件复制到根文件系统目录中。 4. 在根文件系统目录中创建必要的目录和文件。根据你的需求,你可以使用mkdir和touch命令创建必要的目录和文件。 5. 创建一个init脚本来启动系统。init脚本是系统的启动脚本,用来初始化系统并启动其他进程。你可以使用vi或者nano等编辑器创建init脚本。 6. 将根文件系统目录打包成一个镜像文件。你可以使用tar命令将根文件系统目录打包成一个tar包,然后使用mkfs命令将tar包转换成一个镜像文件。 7. 将镜像文件烧录到SD卡或者其他存储介质中。你可以使用dd命令将镜像文件写入到SD卡或者其他存储介质中。 以上就是基于busybox的根文件系统制作的基本步骤,你可以根据你的需求进行定制和修改。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值