按照 ESXI 文档(向 ESXi 主机添加 USB 设备)中的描述,正常情况下,连接到 ESXI 主机上的 USB 设备,会被 USB 仲裁器接管,通过管理界面,可以将接入的 USB 设备分配给虚拟机,而不会被 ESXI 主机识别。

我们可以通过人工关闭仲裁器挂载,手动挂载的方式进行挂载 USB 存储设备。

操作指南

1、开启 ESXI 主机的 SSH 服务,登录 ESXI 管理界面,操作->服务->启用 SSH。

20240218195308

2、SSH 方式登录 ESXI 主机,关闭 ESXI 的 USB 仲裁器,注意,此时不要接入 USB 存储设备。

1
2
3
4
# 停止USB仲裁器服务
/etc/init.d/usbarbitrator stop
# 关闭USB仲裁器开机启动
chkconfig usbarbitrator off

3、连接 USB 存储设备到 ESXI 主机,查找 USB 存储设备。

1
esxcli storage core device list |grep -I usb

如果正常,应该可以看到一个类似于 Display Name:Local USB Direct-Access(mpx.vmhba33:C0:T0:L0)这样一个设备,下一行是 Is USB:true,表示这是一个 USB 存储设备。其中括号中的 mpx.vmhba33:C0:T0:L0 就是设备名,也可能不是这个样子,总之是类似。

使用ls /dev/disks/ | grep 'mpx.vmhba33:C0:T0:L0' 应该可以看到这个设备。

4、创建分区表格式化分区,此步操作会导致 USB 存储设备中的数据丢失,请谨慎操作。由于设备名称中有:,请注意转义。

4.1、调整分区表为 GPT

1
partedUtil mklabel /dev/disks/mpx.vmhba33\:C0\:T0\:L0 gpt

4.2、查看 USB 存储设备分区表信息

1
partedUtil getptbl /dev/disks/mpx.vmhba33\:C0\:T0\:L0

4.3、这个时候你应该能看到两行信息,如下:

1
2
3
4
5
6
7
8
9
10
11
gpt
249033 255 63 4000731136

# 第一行仅以 getptbl 形式的命令来显示,并显示磁盘标签,用于标识正在使用的分区方案。在 ESXI 中只使用 msdos 标签和 gpt 分区方案。
# 第二行显示从基础设备中读取的磁盘几何结构信息:
249033 255 63 4000731136
| | | |
| | | \—– 扇区数量
| | \——– 每磁道扇区数量
| \———— 磁头数量
\—————— 柱面数量

partedUtil 分区需要知道起止的扇区号,所有我们要算一下。如果是只分一个区,那么终止扇区号=柱面数 X 磁头数 X 每磁道的扇区数 - 1。

4.4、创建分区

1
partedUtil setptbl /dev/disks/mpx.vmhba33\:C0\:T0\:L0 gpt "1 2048 计算出的终止扇区号 AA31E02A400F11DB9590000C2911D1B8 0"

“1 2048 计算出的终止扇区号 AA31E02A400F11DB9590000C2911D1B8 0” 对应了
“partNum startSector endSector type/guid attribute”

为什么 guid 是 AA31E02A400F11DB9590000C2911D1B8?你猜(

4.5、格式化分区,注意,这里有个:1

vmkfstools -C vmfs5 -S USB-DISK-1 /dev/disks/mpx.vmhba33:C0:T0:L0:1

5、挂载成功,回到 ESXI 界面中,可以看到数据存储中有刚才的 USB 存储设备分区了。

扩展阅读


COVER: 腾讯混元大模型,提示词“写实风格画图,一个人,正在操作服务器,服务器上插着一个 USB 硬盘”。