Ubuntu From Scratch测试流程
Ubuntu From Scratch(UFS)的测试是确保自定义系统功能完整、稳定的关键环节,需覆盖从内核到用户空间的全流程验证。以下是具体的测试步骤和方法:
测试前需确保环境一致性(如使用固定配置的虚拟机或物理机),并备份所有自定义配置文件与源代码,避免测试过程中数据丢失。
mount命令检查根文件系统(如tmpfs或真实分区)是否正确挂载,确认挂载点权限(如/应为755)和挂载选项(如rw、noexec等是否符合设计)。ls -l /核对根目录下的关键子目录(如/bin、/sbin、/etc、/usr、/var)是否存在,确保目录权限正确(如/bin应为755)。ls、cat、mkdir等基础命令,验证命令是否能正常运行并输出预期结果。qemu-system-x86_64 -kernel rootfs/boot/bzImage -initrd rootfs/boot/initrd.img -append "root=/dev/ram0 ramdisk_size=4096000"。观察QEMU窗口是否显示内核启动日志(如“Booting Linux”),并最终进入系统或显示登录提示符。initramfs脚本(如添加echo "Initramfs loaded" > /dev/console),重新生成initrd.img后测试,确认initramfs能正确加载并执行初始化脚本。/boot/grub/grub.cfg中的内核路径(如root=/dev/ram0)和参数(如ramdisk_size)是否正确,重启系统验证GRUB是否能正常引导内核。sshd、cron),使用systemctl status sshd检查服务状态,通过另一台机器SSH连接测试服务是否正常运行。vim、gcc),执行apt-get install -y vim,验证软件包是否能正确安装并运行(如vim --version显示版本信息)。lsusb显示USB设备,ifconfig显示网卡信息)。stress-ng工具模拟高负载(如stress-ng --cpu 4 --io 2 --vm 1 --timeout 10m),持续运行10-30分钟,观察系统是否出现崩溃、重启或服务中断。lshw查看CPU型号,free -h查看内存容量,dd测试磁盘读写速度(如dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct),对比原生Ubuntu的性能差异。systemd-analyze命令(若系统使用systemd)测量启动时间,命令示例:systemd-analyze time(显示开机总时间)、systemd-analyze blame(显示各服务启动耗时),优化启动慢的服务。nmap扫描系统端口(如nmap -sS localhost),确认仅开放必要的端口(如SSH的22端口)。/var/log/syslog、/var/log/auth.log等日志文件,使用grep "error" /var/log/syslog查找异常日志,验证日志记录是否完整。find / -type f -perm /4000查找具有SUID权限的文件,确认无不必要的SUID文件(如/bin/su除外),降低提权风险。通过以上测试流程,可全面验证Ubuntu From Scratch系统的功能完整性、稳定性和安全性,确保自定义系统符合预期需求。