“Ubuntu From Scratch”(通常指 LFS(Linux From Scratch) 思路在 Ubuntu 上的实践,或自己用 Ubuntu 基础手动构建系统)是一项高难度操作,容易在多个环节踩坑。下面按阶段总结常见错误和问题,以及规避建议。
错误示例
configure: error: no acceptable C compiler found in $PATH
原因
build-essential、gcc、make 等解决
sudo apt update
sudo apt install build-essential
错误示例
cannot execute binary file: Exec format error
原因
建议
--target错误示例
error: ‘xxx’ was not declared in this scope
原因
建议
错误示例
/lib64/ld-linux-x86-64.so.2: bad ELF interpreter
原因
解决
--with-sysroot/lib 或 /lib64 存在对应 loader错误示例
chroot: failed to run command ‘/bin/bash’: No such file or directory
原因
/bin/bash 依赖的 .so 缺失排查
ldd /bin/bash
解决
libc.so、ld-linux.so 等错误示例
解决
mount --bind /dev $LFS/dev
mount -t proc proc $LFS/proc
mount -t sysfs sys $LFS/sys
表现
原因
建议
cp /boot/config-$(uname -r) .config
错误示例
error: file ‘/boot/vmlinuz’ not found
原因
update-grub后果
建议
lfs 用户错误示例
command not found: make
原因
建议
export PATH=/usr/bin:/bin:/usr/sbin:/sbin
systemd 版本差异glibc 打了 Ubuntu 补丁结果
建议
apt source glibc
很多人误以为:
装 minimal Ubuntu + 自己编译 = from scratch
实际上:
strace 查系统调用readelf -l 查 ELFldd 查依赖Ubuntu From Scratch 最常见的错误集中在:工具链版本、动态库缺失、chroot 环境不完整、内核配置不当。
如果你愿意,我可以: