BusyBox 中文文档 下载 App

BusyBox 系统工具 mount reboot halt mknod 等

系统工具清单

BusyBox 的"Linux System Utilities"菜单下集中了嵌入式系统最核心的管理工具:

命令用途典型场景
mount/umount文件系统挂载/卸载启动时挂载根文件系统、swap、tmpfs
reboot/halt/poweroff重启/关机系统正常退出
initPID 1 初始化BusyBox 作为 init 系统
mknod创建设备节点启动时创建 /dev/console、/dev/null 等
insmod/rmmod/lsmod内核模块管理加载驱动模块
dmesg内核消息查看驱动调试、启动日志
free内存使用查看系统状态监控
df磁盘使用查看文件系统空间监控
sync刷盘关机前确保数据落盘
losetup循环设备设置挂载 img 文件
swapon/swapoffswap 管理启用虚拟内存

mount 挂载文件系统

# 查看当前挂载状态
busybox mount

# 挂载 ext4 分区
busybox mount -t ext4 /dev/sda1 /mnt/data

# 挂载 FAT32(常见于 USB)
busybox mount -t vfat -o utf8 /dev/sdb1 /mnt/usb

# 挂载 tmpfs(内存盘)
busybox mount -t tmpfs -o size=64M tmpfs /tmp

# 自动检测文件系统类型(最常用)
busybox mount /dev/sda1 /mnt/data
# BusyBox mount 会依次尝试常见文件系统类型

# 卸载
busybox umount /mnt/data
# 或者:busybox umount /dev/sda1

BusyBox mount 的常用挂载选项(-o):

reboot/halt/poweroff

# 重启系统(会 sync 先落盘)
busybox reboot

# 直接关机(等价于 busybox halt -p)
busybox poweroff

# 重启到 bootloader(部分设备支持)
busybox reboot -f

# 不调用 init 直接重启(紧急情况用)
busybox reboot -f -n
# -f: 不调用 init
# -n: 不 sync(数据可能丢失!)

BusyBox reboot 实际就是向 init 发送 SIGTERM + 系统重启,行为和 GNU 版一致。

mknod 创建设备节点

在没有 devtmpfs 的系统上(或早期内核版本),需要手动创建设备节点:

# 创建字符设备
busybox mknod /dev/console c 5 1
busybox mknod /dev/null c 1 3
busybox mknod /dev/tty c 5 0

# 创建块设备
busybox mknod /dev/sda b 8 0
busybox mknod /dev/ram0 b 1 0

# 创建 FIFO
busybox mknod /tmp/myfifo p

现代 Linux(2.6.32+)默认启用 devtmpfs 和 udev,启动时自动创建大部分设备节点,不需要手动 mknod。但 initramfs 里、或特别精简的嵌入式系统可能还是需要手动创建设备节点。

insmod 加载内核模块

# 加载模块(BusyBox insmod 不解析 .ko 的依赖)
busybox insmod mydriver.ko

# 查看已加载模块
busybox lsmod

# 卸载模块
busybox rmmod mydriver

# 自动处理依赖(用 modprobe,前提是有模块依赖文件)
# modprobe 需要 /lib/modules/<version>/modules.dep
busybox modprobe mydriver

BusyBox insmod 不自动解析模块依赖(GNU insmod/modprobe 会),所以需要手动按依赖顺序加载。嵌入式系统通常编译驱动进内核(built-in)而不是作为模块,减少 insmod 的需求。

其他常用

# 查看内核日志(dmesg 是环形缓冲区)
busybox dmesg | busybox tail -50

# 清空内核日志缓冲区
busybox dmesg -c

# 内存使用(busybox free 格式固定)
busybox free

# 磁盘使用
busybox df -h

# 强制刷盘(断电前务必执行)
busybox sync