200字
飞牛OS虚拟机硬盘直通配置指南
2026-04-07
2026-04-09
NAS

飞牛OS虚拟机单硬盘直通

适用场景:需要在不关闭飞牛OS的情况下,对硬盘进行慢扫检测或其他维护操作。


📋 目录

  1. 前置条件
  2. 操作步骤
  3. 常见问题
  4. 注意事项

前置条件

项目 要求
系统权限 需要 root 权限
虚拟机状态 必须关闭需要直通的虚拟机
网络连接 SSH 可正常连接飞牛OS

操作步骤

第一步:SSH 登录并切换至 root

# 登录飞牛OS后,切换至 root 账户
sudo -i

第二步:查看硬盘 ID

ls /dev/disk/by-id/

示例输出

ata-YSSDJQB-512GSQ_2K23D5707409794
ata-ST1000DM003-1SB102_Z9ADNRTX

💡 提示:记录下需要直通的硬盘完整 ID,后续会用到。

第三步:进入虚拟机配置目录

cd /etc/libvirt/qemu

第四步:查找目标虚拟机配置文件

ls -alh

示例输出

-rw------- 1 root root 5.7K Mar 26 19:53 d81u7xtu.xml
-rw------- 1 root root 6.3K Apr  6 22:43 nvqsi5u7.xml
-rw------- 1 root root 4.1K Mar 25 11:10 zf87ftru.xml

💡 判断方法:根据文件创建时间或文件名判断对应的虚拟机配置文件。

第五步:编辑虚拟机配置

virsh edit <虚拟机ID>
# 例如:virsh edit nvqsi5u7

<devices> 标签内添加以下硬盘配置代码:

<!-- 第一块硬盘 -->
<disk type='block' device='disk'>
  <driver name='qemu' type='raw' cache='none'/>
  <source dev='/dev/disk/by-id/ata-YSSDJQB-512GSQ_2K23D5707409794'/>
  <target dev='sdz' bus='sata' rotation_rate='1'/>
  <address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>

<!-- 第二块硬盘(如需添加多块) -->
<disk type='block' device='disk'>
  <driver name='qemu' type='raw' cache='none'/>
  <source dev='/dev/disk/by-id/ata-ST1000DM003-1SB102_Z9ADNRTX'/>
  <target dev='sdx' bus='sata' rotation_rate='1'/>
  <address type='drive' controller='0' bus='0' target='0' unit='1'/>
</disk>

⚠️ 重要参数说明

参数 说明 注意事项
source dev 硬盘 ID 路径 必须与实际硬盘 ID 匹配
target dev 虚拟机内设备名 sdz​、sdx,不可重复
unit 设备单元号 多块硬盘时不可重复

第六步:保存配置

  1. Ctrl + X 退出编辑
  2. 输入 Y 确认保存
  3. 如遇提示错误,按 i 进入插入模式修改

无需重启飞牛OS,配置立即生效。


验证结果

启动虚拟机后,在系统中会多出一个存储空间:

虚拟机存储空间

实测效果

  • 使用 Victoria 慢扫硬盘正常
  • 读取速度约 190MB/s(1T 垂直盘),速度正常
  • ⚠️ 硬盘型号会显示为 QEMU 虚拟设备,属正常现象

常见问题

Q1: 直通后硬盘无法识别分区?

现象:磁盘管理中显示有硬盘,但无法打开分区。

原因:直通模式下,硬盘以裸设备形式呈现,分区表可能无法被虚拟机系统正常识别。

解决方案:如需访问分区数据,建议使用网络共享或其他方式,而非直通。

Q2: 如何移除直通硬盘?

virsh edit <虚拟机ID>
# 删除对应的 <disk> 配置段,保存即可

注意事项

⚠️ 风险提示

  1. 操作前务必备份重要数据
  2. 确保虚拟机已关闭后再修改配置
  3. unit 和 dev 参数不可重复,否则会导致配置错误
  4. 直通硬盘主要用于检测、维护,不建议作为常规存储使用
  5. 修改配置时如有语法错误,virsh 会提示,请仔细检查 XML 格式

参考命令速查

# 查看所有虚拟机
virsh list --all

# 查看虚拟机配置
virsh dumpxml <虚拟机ID>

# 验证配置语法
virsh define /etc/libvirt/qemu/<配置文件>.xml --validate

最后更新:2025-04-09

评论