制作自动定义镜像的方式很多种,这里介绍使用supermin的方式来完成,下面的实验在ubuntu 18.04 上进, 具体步骤可以参考man supermin。 supermin镜像制作分成两个阶段,第一个阶段是prepare, 第二是build
1. prepare:
supermin --prepare bash mount coreutils -o supermin.d
这里准备要安装的软件包
2. 准备init文件:
cat > init <<EOF
#!/bin/bash
mount -t proc /proc /proc
mount -t sysfs /sys /sys
echo Welcome to supermin
bash -i
EOF
chmod +x init
tar zcf supermin.d/init.tar.gz ./init
3. build
supermin --build supermin.d --format ext2 -o appliance.d/
这一步完成之后在appliance.d 目录下有kernel,initrd, root
4. 启动qemu:
sudo qemu-system-x86_64 --nodefaults -nographic -kernel appliance.d/kernel -initrd appliance.d/initrd -hda appliance.d/root -serial stdio -append "console=ttyS0 \
root=/dev/sda rw"