我使用虚拟机管理器(即 libvirtd)设置了 Windows 10 VM,该 VM 已完全设置并正常运行。它使用的主驱动器是 qcow2 文件。
现在我尝试将物理 SATA 驱动器作为第二个驱动器连接。它不会从第二个磁盘启动,而只需要在启动后对其进行读取/写入。第二个磁盘有多个分区。
我已添加“SATA 磁盘 2”设备,其源路径为 ,/dev/disk/by-path/pci-0000:00:1f.2-ata-5
以使其具有唯一可识别性(但 或 也会发生这种情况/dev/sdc
)/dev/sdd
。该设备未安装在 Linux 主机上。
VM 开始启动几秒钟后,Linux 系统会发出断开和重新连接外部驱动器的声音。如果我检查,/dev
我可以看到该设备sdc
不再存在,现在有一个sdd
设备(或sdd
)sdc
,并且符号链接/dev/disk/by-path/pci-...
现在指向“新连接的”设备。
驱动器的分离和重新连接通常会导致 Windows 10 客户机在启动期间出现“段错误”(段错误在这里可能不是正确的术语,但 qemu 会将机器移动到暂停状态并且无法恢复)。
有一次,Windows 10 客户机成功完成启动(即使磁盘已分离并重新连接),并且部分识别了设备(在磁盘管理器中显示所有分区,甚至在资源管理器中创建了驱动器,但无法打开或以任何方式使用驱动器)。
问题:
- 什么原因导致了这种现象?
- 可能是 Linux 文件管理器(Nemo)吗?
- 或者可能是像 systemctl 这样的系统服务?
- 我怎样才能防止这种情况发生?
根据评论进行编辑以添加更多信息:
lsblk
确认没有坐骑
dmesg
确实显示了一些错误和消息。以下内容重复了 4 次(请注意,这是从 到sdd
)sdc
,但有一些不同(第三次它将其限制为 1.5 Gbps,第四次它完全关闭链接,禁用它,稍后再将其从禁用状态恢复为sdc
)
[ 762.078570] ata5.00: exception Emask 0x10 SAct 0x4000000 SErr 0x400101 action 0x6 frozen
[ 762.078574] ata5.00: irq_stat 0x0c000000, interface fatal error
[ 762.078575] ata5: SError: { RecovData UnrecovData Handshk }
[ 762.078577] ata5.00: failed command: WRITE FPDMA QUEUED
[ 762.078578] ata5.00: cmd 61/10:d0:00:e8:2e/00:00:00:00:00/40 tag 26 ncq dma 8192 out
res 40/00:d0:00:e8:2e/00:00:00:00:00/40 Emask 0x10 (ATA bus error)
[ 762.078591] ata5.00: status: { DRDY }
[ 762.078594] ata5: hard resetting link
[ 762.388642] ata5: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 762.389395] ata5.00: ACPI cmd ef/10:06:00:00:00:00 (SET FEATURES) succeeded
[ 762.389401] ata5.00: ACPI cmd f5/00:00:00:00:00:00 (SECURITY FREEZE LOCK) filtered out
[ 762.389404] ata5.00: ACPI cmd b1/c1:00:00:00:00:00 (DEVICE CONFIGURATION OVERLAY) filtered out
[ 762.390476] ata5.00: ACPI cmd ef/10:06:00:00:00:00 (SET FEATURES) succeeded
[ 762.390479] ata5.00: ACPI cmd f5/00:00:00:00:00:00 (SECURITY FREEZE LOCK) filtered out
[ 762.390481] ata5.00: ACPI cmd b1/c1:00:00:00:00:00 (DEVICE CONFIGURATION OVERLAY) filtered out
[ 762.390904] ata5.00: configured for UDMA/100
[ 762.390918] ata5: EH complete