请仔细阅读,如有操作不当,可能损坏操作系统,需要重装。
- SSH 连接 ESXi 主机
- 关闭USB检查:
/etc/init.d/usbarbitrator stop
chkconfig usbarbitrator off
cd /vmfs/devices/disks
ls
,输出类似于:
[root@esxi:/dev/disks] ls
mpx.vmhba32:C0:T0:L0
mpx.vmhba32:C0:T0:L0:1
mpx.vmhba32:C0:T0:L0:2
mpx.vmhba32:C0:T0:L0:3
mpx.vmhba32:C0:T0:L0:4
mpx.vmhba32:C0:T0:L0:5
mpx.vmhba32:C0:T0:L0:6
mpx.vmhba32:C0:T0:L0:7
naa.5001b444a6995245
naa.5001b447ac6882b5
t10.NVMe____INTEL_SSDPE2MW400G4_____________________CVCQ521200D0400CGN__00000001
vml.010000000030333032313833303031303632323131333333364372757a6572
vml.010000000043564351353231323030443034303043474e2020494e54454c20
vml.02000000005001b444a699524553616e446973
此处每一行表示一个盘/分区:mpx.vmhba32:C0:T0:L0
和 naa.5001b444a6995245
就是两个不同的盘。
而 mpx.vmhba32:C0:T0:L0:1
和 mpx.vmhba32:C0:T0:L0:2
是同一个硬盘里的两个分区。
- 接下来辨认系统盘:
系统盘通常是类似mpx.vmhba32:C0:T0:L0
的格式,少数情况是t10.XXX
等格式。:1
:2
这样的后缀表示此磁盘的每个分区,ESXi 系统默认有7个分区,可以作为辨认的依据 - 另一个辨认依据是,新安装的 ESXi 系统盘的分区号没有
:2
:3
,例如:
mpx.vmhba32:C0:T0:L0
mpx.vmhba32:C0:T0:L0:1
mpx.vmhba32:C0:T0:L0:4
mpx.vmhba32:C0:T0:L0:5
mpx.vmhba32:C0:T0:L0:6
mpx.vmhba32:C0:T0:L0:7
mpx.vmhba32:C0:T0:L0:8
mpx.vmhba32:C0:T0:L0:9
如果是 Ghost 或其他硬盘镜像文件安装的系统,则通常显示为:
mpx.vmhba32:C0:T0:L0
mpx.vmhba32:C0:T0:L0:1
mpx.vmhba32:C0:T0:L0:2
mpx.vmhba32:C0:T0:L0:3
mpx.vmhba32:C0:T0:L0:4
mpx.vmhba32:C0:T0:L0:5
mpx.vmhba32:C0:T0:L0:6
mpx.vmhba32:C0:T0:L0:7
partedUtil getptbl [USB盘盘号]
,输出此盘的分区表,通常是 GPT 格式:
gpt
3740 255 63 60088320
1 2048 10175 C12A7328F81F11D2BA4B00A0C93EC93B systemPartition 128
2 10240 522207 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
3 522240 1034207 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
4 1034240 1259487 9D27538040AD11DBBF97000C2911D1B8 vmkDiagnostic 0
5 1259520 1845215 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
6 1845248 7088127 9D27538040AD11DBBF97000C2911D1B8 vmkDiagnostic 0
7 7088128 15474687 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
逐行解释:
第一行的 gpt
表示分区表格式是 GPT。
第二行,是磁盘起始和结束的扇区号。此处需要知道磁盘结束的扇区,例如我这里的 60088320
,下面会用到。
之后的几行,格式是
分区号 起始扇区 结束扇区 卷GUID 文件系统 0(系统分区是128)
- 接下来创建给 ESXi 做存储的分区,使用命令:
partedUtil setptbl [USB盘盘号] gpt \
# 已有的分区,这样写上 \
"1 2048 10175 C12A7328F81F11D2BA4B00A0C93EC93B 128" \
"2 10240 522207 EBD0A0A2B9E5443387C068B6B72699C7 0" \
"3 522240 1034207 EBD0A0A2B9E5443387C068B6B72699C7 0" \
"4 1034240 1259487 9D27538040AD11DBBF97000C2911D1B8 0" \
"5 1259520 1845215 EBD0A0A2B9E5443387C068B6B72699C7 0" \
"6 1845248 7088127 9D27538040AD11DBBF97000C2911D1B8 0" \
"7 7088128 15474687 EBD0A0A2B9E5443387C068B6B72699C7 0" \
# 注意这两行,是新增的分区 \
"8 7086080 23974687 EBD0A0A2B9E5443387C068B6B72699C7 0" \
"9 23974688 60088286 AA31E02A400F11DB9590000C2911D1B8 0"
解释一下这段命令怎么写出来的:已有的分区,这样写上
:
例如之前
partedUtil getptbl [USB盘盘号]
得到的是:1 2048 10175 C12A7328F81F11D2BA4B00A0C93EC93B systemPartition 128
此处就写:
"1 2048 10175 C12A7328F81F11D2BA4B00A0C93EC93B 128" \
把已有的分区写上之后,再创建新的分区。
注意这两行,是新增的分区
:
新分区填充磁盘剩余的空间:
"8 7086080 23974687 EBD0A0A2B9E5443387C068B6B72699C7 0" \ "9 23974688 60088286 AA31E02A400F11DB9590000C2911D1B8 0""【分区号】【起始扇区(前一个分区的结束扇区+1)】【结束扇区(起始扇区+8500000)】【卷GUID】0" \ "【分区号】【起始扇区(前一个分区的结束扇区+1)】【结束扇区(磁盘总扇区数-34)】【卷GUID】0" \
分区号
和卷GUID
随便写,别重复就行,可以直接复制我这里用的。
这里需要两个分区,第一个分区占8500000个扇区,第二个占剩余的空间。第二个分区就是接下来作为存储的分区。
- 回车步骤7的命令,结果如下:
[root@esxi:/dev/disks] partedUtil setptbl mpx.vmhba32:C0:T0:L0 gpt \
> "1 2048 10175 C12A7328F81F11D2BA4B00A0C93EC93B 128" \
> "2 10240 522207 EBD0A0A2B9E5443387C068B6B72699C7 0" \
> "3 522240 1034207 EBD0A0A2B9E5443387C068B6B72699C7 0" \
> "4 1034240 1259487 9D27538040AD11DBBF97000C2911D1B8 0" \
> "5 1259520 1845215 EBD0A0A2B9E5443387C068B6B72699C7 0" \
> "6 1845248 7088127 9D27538040AD11DBBF97000C2911D1B8 0" \
> "7 7088128 15474687 EBD0A0A2B9E5443387C068B6B72699C7 0" \
> "8 15474690 60088286 AA31E02A400F11DB9590000C2911D1B8 0"
gpt
0 0 0 0
1 2048 10175 C12A7328F81F11D2BA4B00A0C93EC93B 128
2 10240 522207 EBD0A0A2B9E5443387C068B6B72699C7 0
3 522240 1034207 EBD0A0A2B9E5443387C068B6B72699C7 0
4 1034240 1259487 9D27538040AD11DBBF97000C2911D1B8 0
5 1259520 1845215 EBD0A0A2B9E5443387C068B6B72699C7 0
6 1845248 7088127 9D27538040AD11DBBF97000C2911D1B8 0
7 7088128 15474687 EBD0A0A2B9E5443387C068B6B72699C7 0
8 15474690 60088286 AA31E02A400F11DB9590000C2911D1B8 0
这样的输出表示新分区创建成功。
- 让 ESXi 使用第二个分区做存储:
vmkfstools -C vmfs6 -b 1m -S [存储池名] [磁盘盘号]:[新建的分区的分区号]
如果成功,输出为:
vmkfstools -C vmfs5 -b 1m -S UsbDatastore /vmfs/devices/disks/mpx.vmhba32:C0:T0:L0:3
create fs deviceName:'/vmfs/devices/disks/mpx.vmhba32:C0:T0:L0:3', fsShortName:'vmfs5', fsName:'UsbDatastore'
deviceFullPath:/dev/disks/mpx.vmhba32:C0:T0:L0:3 deviceFile:mpx.vmhba32:C0:T0:L0:3
ATS on device /dev/disks/mpx.vmhba32:C0:T0:L0:3: not supported
.
Checking if remote hosts are using this device as a valid file system. This may take a few seconds...
Creating vmfs5 file system on "mpx.vmhba32:C0:T0:L0:3" with blockSize 1048576 and volume label "UsbDatastore".
Successfully created new volume: 62c0292d-21fb4ea4-b115-0cc47ae317ca