mkisofs构建livecd
# 配置isolinux目录的isolinux.cfg引导文件
# 定义第一个菜单项
label rescue_mode
menu label ^DeepinRec
kernel /deepin/vmlinuz-4.13.4
append initrd=/deepin/initrd.img-4.13.4 ro boot=live components quiet splash toram=filesystem.squashfs locales=zh_CN.UTF-8 live-media-path=root
# 生成iso,isolinux放到目录里面
sudo su
mkisofs -r -J -T -v -V "DeepinRec" \
-b isolinux/isolinux.bin \
-no-emul-boot -boot-load-size 4 \
-boot-info-table -o live.iso .
# 模拟启动
qemu-system-x86_64 -enable-kvm \
-boot order=d \
-cdrom live.iso \
-m 8G \
-smp 8 \
-machine usb=on -device usb-tablet
# 鼠标跟随, 设置玩为触摸板-device usb-tablet
# 修改initrd,可以放置fsarchiver文件
gunzip -c initrd* | cpio -idv
find . | cpio --create --format='newc' | gzip -9 > ../new-initrd.img-4.13.4
xz -dc initrd.img| cpio -idmv
find . | cpio --create --format='newc' | xz -9 > ../new-initrd.img-4.13.4.img
# 把nixos_root.fsa以及fsarchiver放到iso文件
mkisofs -o nixos.iso -V "NIXOS_ISO" nixos_root.fsa fsarchiver
# 创建硬盘
qemu-img create -f qcow2 linux.img 80G
# 导入2个cdrom
qemu-system-x86_64 -enable-kvm \
-boot order=d \
-hda linux.img \
-drive media=cdrom,readonly=on,format=raw,file=alpine-virt-3.18.0-x86_64.iso \
-drive media=cdrom,readonly=on,format=raw,file=nixos.iso \
-m 8G \
-smp 8
# 启动之后进行挂载两个cdrom
mount /dev/sr0 /cd0
mount /dev/sr1 /cd1
# 恢复
parted /dev/sda -- mklabel gpt
parted /dev/sda -- mkpart primary 1MiB 512MiB
parted /dev/sda -- mkpart primary 512MiB -1MiB
???
# 重新启动已经恢复的系统
qemu-system-x86_64 -enable-kvm \
-drive if=pflash,format=raw,readonly=on,file=OVMF_CODE.fd \
-drive if=pflash,format=raw,file=OVMF_VARS.fd \
-boot order=d \
-hda linux.img \
-m 8G \
-smp 8