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 重新确认光驱对应的设备名