Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

BusyBox 建構嵌入式 Linux 檔案系統完整實戰指南

編輯:Linux 教學

BusyBox 核心優勢

被譽為嵌入式 Linux 的「瑞士刀」,將百餘個常用 UNIX 命令整合到單一執行檔中。透過符號連結機制,同一執行檔根據呼叫名稱執行不同功能(如 ls 連結到 busybox 執行列目錄)。單一執行檔最大化共享程式碼、檔案頭、記憶體控制區塊,極大減少資源佔用。

編譯配置關鍵步驟

1. 取得原始碼

wget https://www.busybox.net/downloads/busybox-1.00.tar.gz
tar xzf busybox-1.00.tar.gz
cd busybox-1.00

2. 選單配置 make menuconfig

三大關鍵配置區塊:

  • Build Options:交叉編譯前綴設定
  • Installation Options:安裝路徑(建議直接指定根檔案系統根目錄)
  • Login/Password Management Utilities:啟用內建密碼/群組功能,避免 glibc 配置麻煩

必選命令模組

  • Login 相關:getty、login、passwd(原屬 tinylogin)
  • 網路管理:telnetd(遠端除錯神器)
  • 核心參數替代:若不需互動登入,核心參數 init=/bin/sh 可直接進入 Shell

3. 編譯安裝

make
make install

產出結構:_install/{bin,sbin,usr,etc},執行檔約 300KB (動態) / 800KB (靜態),完整檔案系統可控制在 1MB 以內。

檔案系統完善關鍵步驟

1. 建立標準目錄結構

mkdir -p mnt root var tmp proc boot etc lib
mkdir -p var/{lock,log,mail,run,spool}
chown -R 0:0 *

2. 動態連結庫部署

# lib 目錄需包含:
ld-2.3.2.so
ld-linux.so.2 -> ld-2.3.2.so
libc-2.3.2.so
libc.so.6 -> libc-2.3.2.so
libcrypt-2.3.2.so
libcrypt.so.1 -> libcrypt-2.3.2.so

3. /etc 關鍵配置檔

參考 busybox/examples/bootfloppy/etc/ 範例:

inittab - 系統啟動腳本入口

::sysinit:/etc/init.d/rcS
tty0::respawn:/sbin/getty 38400 tty0
tty2::askfirst:/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/bin/mount -o remount,ro /
  • 第一行:指定系統啟動腳本 /etc/init.d/rcS
  • 第二行:tty0 啟用 getty 登入
  • 第三行:tty2 免登入直接進 Shell
  • 第四行:Ctrl+Alt+Del 重啟
  • 最後兩行:關機時重新掛載唯讀

fstab - 檔案系統掛載表

proc     /proc     proc    defaults 0 0
/dev/hda1 /        ext2    rw,noauto 0 1
devpts   /dev/pts  devpts  defaults 0 0

第三行 devpts 為 telnetd 提供虛擬終端支援。

啟動腳本 rcS 範例

#!/bin/sh
# 掛載虛擬檔案系統
mount -t proc proc /proc
mount -t sysfs sysfs /sys
mount -t devpts devpts /dev/pts

# 啟動系統服務
/sbin/syslogd
/sbin/klogd

# 網路初始化
ifconfig lo 127.0.0.1
ifconfig eth0 192.168.1.100

# 啟動 telnetd
telnetd

進階優化技巧

  • 使用 strip 進一步減小執行檔
  • 啟用 CONFIG_FEATURE_INSTALLER 支援模組化安裝
  • 針對特定架構優化 CFLAGS (如 -march=armv5te)
  • 建立 /etc/profile 設定環境變數與別名
Copyright © Windows教程網 All Rights Reserved