You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

能否用Rufus将QEMU原生镜像制作成可引导USB?及如何从原生镜像生成可引导ISO?

能否用Rufus将QEMU原生镜像制作成可引导USB?及如何从原生镜像生成可引导ISO?

我来帮你梳理下问题,给你几个可行的方案:

关于Rufus制作可引导USB的问题

你遇到的情况太常见了——QEMU的raw镜像本身是给KVM虚拟机设计的,它的分区结构(BIOS boot、Ext4、LVM2这三个分区)完全是虚拟机的引导逻辑,Rufus只是原样把分区复制到了USB上,但没调整引导所需的关键标记,所以物理电脑根本识别不了这是个可引导介质。

要让这个USB能引导,你可以这么尝试:

  • 先调整镜像的引导标记,再用Rufus写入
    1. 找台Linux机器(或者在虚拟机里跑一个),把raw镜像挂载成循环设备:losetup -Pf /path/to/your/image.img
    2. gdisk工具打开对应的循环设备(比如/dev/loop0),找到EFI分区(如果是UEFI引导的系统),把它的类型GUID改成EF00(这是EFI系统分区的标准标识),保存退出。
    3. 如果是纯BIOS引导的系统,用fdisk打开循环设备,输入a命令把第一个分区标记为活动分区,保存退出。
    4. 现在再用Rufus把修改后的镜像写入USB,应该就能被物理机识别为可引导介质了。
  • 不用Rufus,直接用dd写入后手动修复引导
    1. dd命令直接把镜像写到USB(重点提醒!一定要确认USB的设备名,比如/dev/sdX,绝对不能写成分区名/dev/sdX1,写错会搞砸本地硬盘):
      dd if=/path/to/image.img of=/dev/sdX bs=4M status=progress
      
    2. 写入完成后,挂载USB的EFI分区(如果是UEFI引导),重新安装引导程序:比如用GRUB的话,执行:
      grub-install --target=x86_64-efi --efi-directory=/mnt/esp --bootloader-id=my-vm-boot --recheck
      
    要是你用的是纯BIOS引导,就挂载根分区,执行grub-install /dev/sdX来重新安装MBR引导。

从原生镜像生成可引导ISO的方法

如果更想要ISO文件,有两种靠谱的方式:

  • 命令行工具快速生成(推荐)
    1. 先把raw镜像挂载,把里面的所有系统文件复制到一个临时目录,比如/tmp/iso-root
    2. 安装必要工具(以Debian/Ubuntu为例):sudo apt install grub-common xorriso
    3. grub-mkrescue制作UEFI+BIOS双引导的ISO:
      grub-mkrescue -o my-vm-image.iso /tmp/iso-root --iso-level 3 --volid "MY_VM_ISO"
      
    这个命令会自动处理引导结构,生成的ISO既能在物理机的光盘/虚拟光驱里引导,也能直接用来部署VPS。
  • 虚拟机中转法(适合不熟悉命令行的用户)
    1. qemu-img把raw镜像转成qcow2格式:qemu-img convert -f raw -O qcow2 your-image.img your-image.qcow2
    2. 把这个qcow2镜像导入VirtualBox或者VMware,启动虚拟机
    3. 在虚拟机的系统里,用自带的工具生成ISO:比如Ubuntu里的“启动盘创建器”,选择“创建光盘镜像”选项,把当前系统打包成ISO就行。

备注:内容来源于stack exchange,提问作者QF0

火山引擎 最新活动