ESXi/ESX 使用 partedUtil 命令存储分区持载
在 ESXi/ESX 上使用 partedUtil 命令行实用程序 (2076191)
Symptoms
如果您使用 partedUtil 命令指定了一个错误的 GUID 大小,则可能看到如下类似错误:
- error: "Invalid guid (0xfb).Contains non-hexadecimal digits
- Invalid guid (fb).Length should be 32
- Invalid guid (251).Length should be 32
Purpose
本文提供了有关在 ESXi 和 ESX 上使用 partedUtil 命令行磁盘分区实用程序的信息。
注意:可以使用连接到 ESXi/ESX 主机或 vCenter Server 的 vSphere Client 创建和删除 VMFS 数据存储。不必使用命令行实用程序手动创建分区。有关详细信息,请参见适用于您的 ESXi/ESX 版本的《配置指南》(Configuration Guide) 中的管理存储 (Managing Storage) 部分。
Resolution
您可以使用 partedUtil 命令行实用程序在 ESXi 和 ESX 上直接操作本地和远程 SAN 磁盘的分区表。
只有 ESXi 5.x 上的磁盘分区才支持使用 partedUtil 命令行。命令行实用程序 fdisk 不能用于采用 VMFS5 格式的 LUN。
注意:本文假设 ESXi 或 ESX 主机可以使用控制台会话,并且您熟悉控制台和磁盘管理概念,同时在继续操作之前已创建了足够的备份。有关详细信息,请参见无法使用安全 Shell (SSH) 连接 ESX 主机 (1003807) (Unable to connect to an ESX host using Secure Shell (SSH) (1003807)) 或在 ESXi 4.1 和 ESXi 5.x 中使用技术支持模式 (1017910) (Using Tech Support Mode in ESXi 4.1 and ESXi 5.x (1017910))。如果您对执行任何步骤不确定,请联系 VMware 支持。
本文介绍以下任务:
检索磁盘设备列表
每个 partedUtil 命令将接受一个设备参数,该参数用于指定要操作的本地磁盘或基于 SAN 的磁盘。该磁盘应采用以 /vmfs/devices/disks/ 开头的路径名。它应指定整个块设备,而不是设备上的现有分区。
如果要获取可由 partedUtil 管理的磁盘设备名称列表,请运行此命令:
ls /vmfs/devices/disks/
ESXi/ESX 3.x 下的输出示例:
vmhba0:0:0:0 <-- disk device
vmhba0:0:0:1 <-- partition 1
vmhba0:0:0:2 <-- partition 2
vmhba0:0:0:3 <-- partition 3
vmhba0:0:0:5 <-- partition 5
vmhba3:0:0:0 <-- disk device
vmhba3:0:0:1 <-- partition 1
ESXi/ESX 4.0 及更高版本下的输出示例:
mpx.vmhba0:C0:T0:L0 <-- disk device
mpx.vmhba0:C0:T0:L0:1 <-- partition 1
mpx.vmhba0:C0:T0:L0:2 <-- partition 2
mpx.vmhba0:C0:T0:L0:3 <-- partition 3
mpx.vmhba0:C0:T0:L0:5 <-- partition 5
naa.60060160205010004265efd36125df11 <-- disk device
naa.60060160205010004265efd36125df11:1 <-- partition 1
注意:使用 partedUtil 命令指定块设备时,请使用完整路径并将其放入双引号中。
有关识别特定磁盘设备的详细信息,请参见使用 VMware ESX 时识别磁盘 (1014953) (Identifying disks when working with VMware ESX (1014953))。
打印现有分区表
可以使用 partedUtil 命令行实用程序检查块磁盘设备上的现有分区表。要获取块磁盘设备上定义的分区列表,请执行以下操作:
- 对于 ESXi/ESX 4.0 及更低版本,请使用以下命令:
partedUtil get "/vmfs/devices/disks/DeviceName" - 对于 ESXi/ESX 4.1 及更高版本,请使用以下命令:
partedUtil getptbl "/vmfs/devices/disks/DeviceName"
示例:要显示 ESX 4.1 主机上某一设备的分区表,请使用以下命令:
partedUtil getptbl "/vmfs/devices/disks/mpx.vmhba0:C0:T0:L0"
输出示例:
msdos
17834 255 63 286513152
1 63 2249099 131 128
2 2249100 2474009 252 0
3 2474010 286487144 5 0
5 2474073 286487144 251 0
第一行仅以 getptbl 形式的命令来显示,并显示磁盘标签,用于标识正在使用的分区方案。常见标签为 bsd、 dvh、 gpt、 loop、 mac、 msdos、 pc98 和 sun。在这些标签中,ESXi/ESX 只使用 msdos 标签和 gpt 分区方案。
注意:标签 msdos 并不表示设备包含 Windows 文件系统或正在由 Windows 计算机使用。它只表示此分区为 MBR(主引导记录)分区。
第二行显示从基础设备中读取的磁盘几何结构信息:
17834 255 63 286513152
| | | |
| | | \----- 扇区数量
| | \-------- 每磁道扇区数量
| \------------ 磁头数量
\------------------ 柱面数量
其余行则用于标识所定义的每个分区。如果未指定分区,则此列表为空。此列表可能未进行排序。
示例:以下列出了所定义的 4 个分区。第一个分区 ( 类型 131 = 0x83 = Linux) 为可引导分区。第二个分区为 VMKcore Coredump 分区数据存储 (类型 252 = 0xFC)。第三个分区为扩展分区 (类型 5),该分区包含其他逻辑分区。第四个分区(编号为 5)是分区编号为 5 的逻辑分区,包含一个 VMFS 数据存储 (类型 251 = 0xFB)。
1 63 2249099 131 128
2 2249100 2474009 252 0
3 2474010 286487144 5 0
5 2474073 286487144 251 0
| | | | |
| | | | \--- 属性
| | | \------- 类型
| | \----------------- 结束扇区
| \------------------------- 起始扇区
\--------------------------- 分区编号
分区的属性:
- 起始和结束扇区指定了一个分区所占用的连续磁盘空间。通过此信息可计算用户可以使用的分区大小。例如,VMKCore 扇区 2 从扇区 2249100 跨至 2474009,覆盖了该磁盘的 224909 个扇区。此磁盘的每个扇区具有 512 个字节,因此该分区大小为 224909 x 512 = 115153408 字节 = 109 MB。
- 分区类型用于标识分区的用途,可由一个十进制标识符(例如,251)或一个 UUID(例如,AA31E02A400F11DB9590000C2911D1B8)来表示。请参见其他信息 (Additional Information) 部分中的常用分区列表。
- 分区属性是一个用于标识分区属性的数值。常见属性为 128 = 0x80,该属性指示分区为可引导分区。此外,大多数分区的属性值为 0。
创建新分区表
可以使用 partedUtil 命令行实用程序在块磁盘设备上创建新分区表。要在块设备上创建新分区,请根据 ESXi/ESX 的版本使用不同的命令:
- 对于 ESXi/ESX 4.0 及更低版本,请使用命令:
partedUtil set "/vmfs/devices/disks/DeviceName" ["partNum startSector endSector type/guid attribute"]* - 对于 ESXi/ESX 4.1 及更高版本,请使用命令:
partedUtil setptbl "/vmfs/devices/disks/DeviceName" DiskLabel ["partNum startSector endSector type/guid attribute"]*
磁盘标签仅以 setptbl 形式的命令来指定,并且设置的磁盘标签用于标识正在使用的分区方案。常见标签为 bsd、 dvh、 gpt、 loop、 mac、 msdos、 pc98 和 sun。ESXi 5.x 及更高版本同时支持 msdos 和 gpt 标签和分区方案,而 ESXi/ESX 4.1 及更低版本则仅支持 msdos 标签和分区方案。
必须在 partedUtil 命令行上完整指定要应用于磁盘的分区列表。要向具有现有分区的磁盘添加其他分区,请在命令行上指定原始分区和新分区。否则,会丢失现有分区。分区列表以带引号的字符串形式指定,其中,每个字符串均包括一个 5 元组,该 5 元组由分区号、起始扇区、结束扇区、ID 类型和属性组成。
- startSector 和 endSector 指定一个分区占用的连续磁盘空间量。同一个分区的起始扇区会强制位于结束扇区之前,但并不保证所定义的分区之间不会相互重叠。
- 分区类型 type 用于标识分区的用途,并可由一个十进制标识符(例如,251)或一个 UUID(例如,AA31E02A400F11DB9590000C2911D1B8)来表示。请参见其他信息 (Additional Information) 部分中的常用分区列表。必须使用 GUID 指定在 ESXi 5.x 及更高版本上创建的带有 gpt 磁盘标签的分区。
- 分区属性 attribute 是一个用于标识分区属性的数值。常见属性为 128 = 0x80,该属性指示分区为可引导分区。此外,大多数分区的属性值为 0。
例如:要创建类型为 131 = 0x83 的两个连续的 ~244 MB 分区,而第一个分区为可引导分区,并且从偏移 128 开始,请执行以下操作:
- 对于 ESXi/ESX 4.0 及更低版本,请使用以下命令:
partedUtil set "/vmfs/devices/disks/mpx.vmhba0:C0:T0:L0" "1 128 500000 131 128" "2 500001 999999 131 0" - 对于 msdos 标签上的 ESXi/ESX 4.1 及更高版本,请使用以下命令:
partedUtil set "/vmfs/devices/disks/mpx.vmhba0:C0:T0:L0" msdos "1 128 500000 251 0" - 对于 gpt 标签上的 ESXi 5.x 及更高版本,请使用以下命令:
partedUtil setptbl "/vmfs/devices/disks/mpx.vmhba0:C0:T0:L0" gpt "1 128 500000 AA31E02A400F11DB9590000C2911D1B8 128" "2 500001 999999 AA31E02A400F11DB9590000C2911D1B8 0"
注意:在已从 VMFS-3 升级到 VMFS-5 的卷中,VMFS 分区仍然从扇区 128 开始,而不是从扇区 2048 开始。
注意:无法撤消分区表更改,而是创建新分区表。在标记任何更改之前请确保先进行备份。请确保对分区进行修改之前无活动 I/O。
本文不会介绍有关调整分区大小的信息。有关详细信息,请参见VMware ESXi/ESX 安装推荐使用的磁盘或 LUN 大小 (1026500) (Recommended disk or LUN sizes for VMware ESXi/ESX installations (1026500))。
删除分区
可以使用 partedUtil 命令行实用程序从块磁盘设备上的分区表中删除一个分区。
要删除分区,请使用以下命令:
partedUtil delete "/vmfs/devices/disks/DeviceName" PartitionNumber
示例:
partedUtil delete "/vmfs/devices/disks/mpx.vmhba0:C0:T0:L0" 2
注意:无法撤消分区表更改,而是创建新分区表。在进行任何更改之前请确保先进行备份。请确保对分区进行修改之前无活动 I/O。
调整分区大小
可以使用 partedUtil 命令在 ESXi/ESX 4.0 及更高版本上调整现有分区大小。此操作不会调整分区内的文件系统大小,它与删除分区并使用新的起始或结束扇区来重新创建分区相同。要调整分区大小,请使用以下命令:
partedUtil resize "/vmfs/devices/disks/DeviceName" PartitionNumber NewStartSector NewEndSector
示例:要移动分区 4,以使其从相同位置(如 2474073)开始,并在新的结束扇区(如 1234567890)结束,请运行以下命令:
partedUtil resize "/vmfs/devices/disks/mpx.vmhba0:C0:T0:L0" 4 2474073 1234567890
注意:无法撤消分区表更改,而是创建新分区表。在进行任何更改之前请确保先进行备份。请确保对分区进行修改之前无活动 I/O。
Additional Information
分区类型用于标识分区的用途,并可指示特定操作系统的预期使用情况。分区类型必须通过 GUID 在分区表中指定(在使用 partedUtil setptbl 命令时)。
可以使用以下命令获取 GUID:
partedUtil showGuids
ESXi/ESX 常用的分区类型包括:
分区 | GUID | 类型(十六进制) | 类型(十进制) |
VMFS 数据存储 | AA31E02A400F11DB9590000C2911D1B8 | 0xFB | 251 |
VMKCore 诊断 | 9D27538040AD11DBBF97000C2911D1B8 | 0xFC | 252 |
VMware 预留 | 9198EFFC31C011DB8F78000C2911D1B8 | ||
基本数据 | EBD0A0A2B9E5443387C068B6B72699C7 | 0x83 | 131 |
Linux Swap | 0657FD6DA4AB43C484E50933C84B4F4F | 0x82 | 130 |
Linux LVM | E6D6D379F50744C2A23C238F2A3DF928 | 0x8E | 142 |
Linux RAID | A19D880F05FC4D3BA006743F0F84911E | 0xFD | 253 |
EFi 系统 | C12A7328F81F11D2BA4B00A0C93EC93B | 0xEF | 239 |
Microsoft 预留 | E3C9E3160B5C4DB8817DF92DF00215AE | ||
未使用条目 | 00000000000000000000000000000000 | ||
Fat16 | 0x6 | 6 | |
扩展 | 0x5 | 5 | |
SFS | 0x42 | 66 | |
NTFS | 0x7 | 7 |
Tags
See Also
Request a Product Feature
更多文章推荐
- 华为云21天转型微服务实战营全部资源
- kubernetes离线安装KubePi
- OpenEuler/Centos安装containerd容器,cni,nerdctl,buildkit,runc
- K8s网络组件之Flannel:VXLAN模式
- 在 Kubernetess 中使用 DNS 和 Headless Service 发现运行中的 Pod
- K8s网络组件之Calico:IPIP工作模式
- K8s网络组件之Calico:Route Reflector 模式(RR)
- K8s 高性能网络组件 Calico 入门教程
- 华为云基于ServiceStage的微服务开发与部署的实验过程问题
- 如何体验华为云ServiceStage的源码部署功能?
目录 返回
首页