首页/云/云平台与虚拟化速查/virsh change-media 更换光盘/ISO
虚拟化操作94 条

virsh change-media 更换光盘/ISO

给运行中的域换 ISO 不必停机:change-media 支持弹出、插入与更新介质;虚拟光驱的设备名用 domblklist 查询(常见 sda、hda)。

云平台与虚拟化速查云更新于 2026-10-13

change-media 是干什么的

virsh change-media 用来更换虚机的光驱介质(ISO):先查出光驱设备名,弹出旧介质再插入新介质,运行状态与关机状态都能操作。--live 只作用于当前运行实例,--config 写入持久定义,两者同时使用才既立即生效、又在重启后保留。传入的路径是宿主上的文件路径,guest 内看不到这个文件。

基本信息

查设备virsh domblklist vm1
弹出virsh change-media vm1 sda --eject
插入virsh change-media vm1 sda /data/iso/install.iso
生效范围加 --config 写入定义,--live 仅当前运行
路径要求宿主路径,且 qemu 进程有读权限

典型使用场景

  • 安装操作系统或进救援模式时切换安装镜像
  • 验证 ISO 启动盘内容是否符合预期
  • 排障时挂载厂商提供的诊断镜像
  • 统一批量虚机的光驱介质后重新安装环境
  • 清理不再使用的大体积 ISO 挂载

换成新 ISO

换成新 ISO
virsh domblklist vm1                                  # 查看设备名与 device 类型
virsh domblklist vm1 | grep -i cdrom                   # 确认目标确实是光驱而非磁盘
virsh change-media vm1 sda --eject --live              # 弹出旧介质
virsh change-media vm1 sda /data/iso/new.iso --live --config   # 插入新介质
virsh change-media vm1 sda --update --live --config    # 介质路径变化时刷新
virsh domblklist vm1                                   # 复核挂载结果

操作读法

操作命令要点注意
查设备domblklist 看设备名与类型光驱与磁盘设备名相似,先确认类型
弹出加 --eject未弹出直接换介质在部分场景会失败
插入指定宿主上的 ISO 路径路径写错时报错信息可能不直观
持久化同时加 --live 与 --config只加 --live 时重启后回到旧介质
刷新--update 用于路径变化适用于自定义介质位置变更的场景
挂 ISO 的文件路径是宿主路径,guest 内看不到该文件;权限需允许 qemu 用户读取,否则会出现「插入成功但读取报 I/O 错误」。
操作前先确认目标设备是光驱:domblklist 会显示设备类型,误把数据盘当光驱操作会造成意想不到的后果。

常见问题与处理

  • 插入报错提示找不到文件:确认路径是宿主路径且 qemu 用户可读
  • guest 内看不到新介质:在系统里重新挂载光驱或点击刷新
  • 重启后又回到旧镜像:操作时漏加 --config
  • 换了盘但设备名变了:用 domblklist 重新确认光驱对应的设备名

易错点

  • 文件权限不足:插入成功但 guest 内读取报 I/O 错误
  • 把数据盘当光驱执行 eject/insert,虚机磁盘访问异常
  • 只加 --live 不加 --config,重启后仍挂载旧 ISO
  • ISO 放在会被清理的临时目录,虚机重启后介质失效

数据来源与参考

  • virsh 手册:change-media
  • libvirt 文档:介质热插拔
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌