Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

28.2.5.2. 使用虚拟机安装失败

如果您正在执行虚拟安装,且该进程在第一阶段因为任何原因中断(如硬件故障、断电或键盘中断),virt-install 将无法再次启动,直到之前创建的临时磁盘镜像和虚拟机被删除为止。以下流程解释了如何执行此操作。
并非每次都需要执行所有步骤。例如,如果您在系统崩溃后恢复,则不必停止临时虚拟机,而是只能使用 virsh undefine name 命令。如果您只想清理 livemedia-creator 创建的临时文件,也可以使用第 4 和 5 步。

过程 28.2. 删除临时虚拟客户机和磁盘镜像文件

  1. 使用 virsh 列出系统上当前可用的所有虚拟机(guest)。输出结果类似如下:
    # virsh list --all
    Id    Name                           State
    ----------------------------------------------------
    93    LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 running
    -     RHEL7                      shut off
    
    确定临时虚拟机。其名称始终以 LiveOS 开头,后跟一个随机数字和字符字符串。
  2. 确定临时虚拟机后,使用 virsh destroy name 命令停止它,其中 name 是虚拟机的名称:
    # virsh destroy LiveOS-2a198971-ba97-454e-a056-799f453e1bd7
    Domain LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 destroyed
    
  3. 使用 virsh undefine name,使用与上一步中相同的 名称 删除临时虚拟机。
    # virsh undefine LiveOS-2a198971-ba97-454e-a056-799f453e1bd7
    Domain LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 has been undefined
    
  4. 查找临时文件系统的挂载。它将以 /var/tmp/ 目录为目标,其名称将 is lorax.imgutils,后跟六个随机数字或字符。
    # findmnt -T /var/tmp/lorax.imgutils*
    TARGET                         SOURCE     FSTYPE  OPTIONS
    /var/tmp/lorax.imgutils.bg6iPJ /dev/loop1 iso9660 ro,relatime
    
    然后,使用 umount 命令卸载它:
    # umount /var/tmp/lorax.imgutils.bg6iPJ
  5. /var/tmp/ 目录中找到 virt-install 创建的临时磁盘镜像。除非您使用 --image-name 选项指定名称,否则该文件的名称会在安装过程开始时打印到命令行并随机生成。例如:
    2013-10-30 09:53:03,161: disk_size = 5GB
    2013-10-30 09:53:03,161: disk_img = /var/tmp/diskQBkzRz.img
    2013-10-30 09:53:03,161: install_log = /home/pbokoc/lorax/virt-install.log
    mount: /dev/loop1 is write-protected, mounting read-only
    
    在上例中,临时磁盘映像为 /var/tmp/diskQBkzRz.img
    如果无法找到初始消息,您可以手动识别临时文件。使用 ls 命令列出 /var/tmp/ 目录的所有内容,并过滤名称中包含 磁盘 的文件的输出结果:
    # ls /var/tmp/ | grep disk
    diskQBkzRz.img
    
    然后,删除临时磁盘镜像:
    # rm -f /var/tmp/diskQBkzRz.img
如果您遵循此流程中的所有步骤,现在可以使用 virt-install 启动新安装。