能否用Rufus将QEMU原生镜像制作成可引导USB?及如何从原生镜像生成可引导ISO?
能否用Rufus将QEMU原生镜像制作成可引导USB?及如何从原生镜像生成可引导ISO?
我来帮你梳理下问题,给你几个可行的方案:
关于Rufus制作可引导USB的问题
你遇到的情况太常见了——QEMU的raw镜像本身是给KVM虚拟机设计的,它的分区结构(BIOS boot、Ext4、LVM2这三个分区)完全是虚拟机的引导逻辑,Rufus只是原样把分区复制到了USB上,但没调整引导所需的关键标记,所以物理电脑根本识别不了这是个可引导介质。
要让这个USB能引导,你可以这么尝试:
- 先调整镜像的引导标记,再用Rufus写入
- 找台Linux机器(或者在虚拟机里跑一个),把raw镜像挂载成循环设备:
losetup -Pf /path/to/your/image.img - 用
gdisk工具打开对应的循环设备(比如/dev/loop0),找到EFI分区(如果是UEFI引导的系统),把它的类型GUID改成EF00(这是EFI系统分区的标准标识),保存退出。 - 如果是纯BIOS引导的系统,用
fdisk打开循环设备,输入a命令把第一个分区标记为活动分区,保存退出。 - 现在再用Rufus把修改后的镜像写入USB,应该就能被物理机识别为可引导介质了。
- 找台Linux机器(或者在虚拟机里跑一个),把raw镜像挂载成循环设备:
- 不用Rufus,直接用dd写入后手动修复引导
- 用
dd命令直接把镜像写到USB(重点提醒!一定要确认USB的设备名,比如/dev/sdX,绝对不能写成分区名/dev/sdX1,写错会搞砸本地硬盘):dd if=/path/to/image.img of=/dev/sdX bs=4M status=progress - 写入完成后,挂载USB的EFI分区(如果是UEFI引导),重新安装引导程序:比如用GRUB的话,执行:
grub-install --target=x86_64-efi --efi-directory=/mnt/esp --bootloader-id=my-vm-boot --recheck
grub-install /dev/sdX来重新安装MBR引导。 - 用
从原生镜像生成可引导ISO的方法
如果更想要ISO文件,有两种靠谱的方式:
- 命令行工具快速生成(推荐)
- 先把raw镜像挂载,把里面的所有系统文件复制到一个临时目录,比如
/tmp/iso-root - 安装必要工具(以Debian/Ubuntu为例):
sudo apt install grub-common xorriso - 用
grub-mkrescue制作UEFI+BIOS双引导的ISO:grub-mkrescue -o my-vm-image.iso /tmp/iso-root --iso-level 3 --volid "MY_VM_ISO"
- 先把raw镜像挂载,把里面的所有系统文件复制到一个临时目录,比如
- 虚拟机中转法(适合不熟悉命令行的用户)
- 用
qemu-img把raw镜像转成qcow2格式:qemu-img convert -f raw -O qcow2 your-image.img your-image.qcow2 - 把这个qcow2镜像导入VirtualBox或者VMware,启动虚拟机
- 在虚拟机的系统里,用自带的工具生成ISO:比如Ubuntu里的“启动盘创建器”,选择“创建光盘镜像”选项,把当前系统打包成ISO就行。
- 用
备注:内容来源于stack exchange,提问作者QF0




