Linux Minimal 启动指南
一、常见场景与对应启动方式
二、方式一 QEMU 启动内核与 initramfs
qemu-system-x86_64 \
-kernel ./linux-5.x/arch/x86_64/boot/bzImage \
-initrd ./rootfs.img.gz \
-append "root=/dev/ram init=/linuxrc console=ttyS0" \
-nographic -serial mon:stdio
三、方式二 制作可引导 ISO 并在 QEMU 启动
sudo debootstrap --arch=amd64 jammy ./rootfs http://mirrors.aliyun.com/ubuntu/
sudo chroot ./rootfs
passwd root
# 可按需裁剪包
apt remove -y man-db manpages wireless-tools network-manager xserver-common
apt autoremove -y && apt clean
exit
mkdir -p ./iso/casper
sudo mksquashfs ./rootfs ./iso/casper/filesystem.squashfs -comp xz
sudo cp /boot/vmlinuz-$(uname -r) ./iso/casper/vmlinuz
sudo cp /boot/initrd.img-$(uname -r) ./iso/casper/initrd
mkdir -p ./iso/boot/grub
cat > ./iso/boot/grub/grub.cfg <<'EOF'
set default="0"
set timeout=5
menuentry "Minimal Linux" {
linux /casper/vmlinuz boot=casper root=/dev/ram0 quiet splash
initrd /casper/initrd
}
EOF
sudo grub-mkrescue -o ./minilinux.iso ./iso/
qemu-system-x86_64 -cdrom ./minilinux.iso -m 512M
四、方式三 安装到真实磁盘或 U 盘并引导
sudo fdisk /dev/sdb # 创建 sdb1(500M), sdb2(剩余)
sudo mkfs.ext4 /dev/sdb1
sudo mkfs.ext4 /dev/sdb2
sudo mount /dev/sdb2 /mnt/sysroot
sudo mkdir -p /mnt/boot
sudo mount /dev/sdb1 /mnt/boot
sudo grub-install --root-directory=/mnt /dev/sdb
# 拷贝你构建好的内核与 initramfs/initrd
sudo cp /boot/vmlinuz-<version> /mnt/boot/vmlinuz-mini
sudo cp /boot/initrd.img-<version> /mnt/boot/initrd-mini
# 在目标根分区创建最小结构
sudo mkdir -p /mnt/sysroot/{etc,proc,sys,dev}
# 示例 inittab(仅启动 shell)
cat > /mnt/sysroot/etc/inittab <<'EOF'
::sysinit:/bin/mount -t proc proc /proc
::sysinit:/bin/mount -t sysfs sys /sys
::askfirst:/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
EOF
set default="0"
set timeout=3
menuentry "Minimal Linux" {
linux /vmlinuz-mini root=/dev/sda2 ro quiet
initrd /initrd-mini
}
五、最小系统必备要点与排错清单