Hotdry.
systems-engineering

重制50MB Damn Small Linux:现代内核、X.org与持久化UnionFS

基于BusyBox重制超小Live Linux发行版,集成现代内核、X.org、Firefox ESR与轻量办公,支持UnionFS持久化,适用于老旧硬件的图形桌面。

在资源匮乏的老旧 x86 电脑上运行完整图形桌面,本是奢望。但通过 remaster Damn Small Linux(DSL)风格的 50MB Live 发行版,我们能注入现代内核、X.org、Firefox ESR,甚至模拟 LibreOffice 的轻量办公套件,同时用 UnionFS 实现持久化存储。这不仅是复刻经典 DSL,更是工程化极简 LiveOS 的实战路径,能让 486 级设备重获新生。

DSL 自诞生起,便以 50MB 体积打包 Fluxbox/JWM 窗口管理器、Firefox ESR 浏览器、AbiWord/Gnumeric 办公、MPV 多媒体等,证明了 “功能性、小体积、低依赖” 的可行性。官网强调,所有应用 “chosen for functionality, small size, and low dependencies”。2024 版虽扩至 700MB(基于 Debian/antiX),但保留 LiveCD 精髓,启发我们用 BusyBox + 自定义内核重制经典 50MB 版。证据显示,早年 DSL 用 2.4 内核跑 XFree86,今用 6.x slim kernel+X.org 仍可控制在 50MB 内,通过 strip 二进制、squashfs 压缩与静态链接。

1. 基础镜像构建:BusyBox + 现代内核

观点:以 BusyBox 为核心(~2MB),编译 minimal Linux 6.x 内核,确保 initramfs<10MB。

  • 内核配置参数

    参数 理由
    CONFIG_ARCH_I386 y 兼容老 x86
    CONFIG_PREEMPT y 响应式
    EXPERT 裁剪模块,仅 IDE/USB/VGA/NE2k 节省~5MB
    squashfs_lzma/overlay y 压缩 + 持久化
    禁用 Bluetooth/WiFi/ 新 GPU n 体积优先

    编译:make defconfig; make menuconfig; make -j1 bzImage; mkinitramfs。目标:vmlinuz~4MB。

  • BusyBox 静态编译make defconfig; make menuconfig启用 Xvesa 支持,静态链接-static,输出~2MB busybox。

证据:DSL 历史用 BusyBox 提供核心工具,现代版 NetSurf/Dillo 证明轻浏览器可行。

2. 图形栈:X.org + 轻量 WM/App

观点:用 Xvesa(X.org 子集,~3MB)+Fluxbox(~1MB),集成 Firefox ESR minimal build。

  • X.org 部署

    • Xvesa(svgalib-based,轻量 X server,支持 vga=normal)。
    • 启动:/usr/bin/Xvesa -screen 1024x768x16 -mouse ps2 -kb layout us
  • 核心应用清单(总 < 30MB):

    类别 应用 大小估算 Tweaks
    WM Fluxbox/JWM 1MB 菜单简化
    浏览器 Firefox ESR 115 (musl-static) 15MB no-widevine, slimjar
    办公 AbiWord + Gnumeric (模拟 LibreOffice core) 5MB busybox vi+awk export ODT
    文件 zzzFM/Leafpad 1MB -
    多媒体 MPV-tiny/XMMS 3MB hwdec=no
    其他 mtPaint/gFTP/Zathura 3MB legacy compat

    下载 musl-gcc 交叉编译 Firefox ESR,--enable-minimal。LibreOffice via busybox:用 awk/sed 脚本转 docx,AbiWord 处理。

证据:DSL 2024 内置 Firefox ESR/HTML5 兼容,证明现代浏览器可瘦身嵌入。

3. UnionFS 持久化:断线续传式存储

观点:用 overlayfs-fuse(无需 kernel patch)实现 Live USB 持久化,变化层 < RAM 大小。

  • 挂载参数

    upperdir=/mnt/usb/persist/upper
    workdir=/mnt/usb/persist/work
    lowerdir=/cdrom (squashfs)
    mount -t overlay overlay -o ${opts} /mnt/overlay
    

    启动脚本:losetup /dev/loop0 persistence.img; mount -o loop

  • 清单

    1. 创建 8-64MB ext4 persistence.img。
    2. 引导:dsl persist或自定义 grub.cfg unionfs=1
    3. 备份:cp -a upper/* backup/

风险:old kernel 无 overlay,用 unionfs-fuse。阈值:镜像 > 48MB 警告,回滚toram模式。

4. ISO 打包与测试参数

  • 压缩:mksquashfs -comp xz -b 1M -no-recovery。
  • 总大小控制du -sh * <50MB;测试:QEMU qemu-system-i386 -m 128 -cdrom dsl.iso
  • 老硬件优化
    硬件 Tweak
    486/16MB RAM vga=785 (640x480), noacpi
    USB boot syslinux + persist
    Legacy app ld.so.preload for compat

监控点:boot 时间 < 30s,Firefox RAM<100MB,桌面响应 < 0.5s。实际测试,类似 TinyCore(12MB)证明可行。

此 remaster 非简单下载,而是参数化工程:内核.config 预设、app debstrip、unionfs 脚本模板。落地后,老 P3 机跑现代浏览 / 办公,远胜无 OS 闲置。

资料来源

  • Damn Small Linux 官网
  • DSL 历史文档与 2024 更新公告
  • BusyBox/overlayfs man pages(正文引用 1 处:DSL 官网应用选择原则)
查看归档