在 ESXi/ESX 上使用 partedUtil 命令行实用程序 (2076191)

如果您使用 partedUtil 命令指定了一个错误的 GUID 大小,则可能看到如下类似错误:

  • error: “Invalid guid (0xfb).Contains non-hexadecimal digits
  • Invalid guid (fb).Length should be 32
  • Invalid guid (251).Length should be 32

本文提供了有关在 ESXi 和 ESX 上使用 partedUtil 命令行磁盘分区实用程序的信息。

注意可以使用连接到 ESXi/ESX 主机或 vCenter Server 的 vSphere Client 创建和删除 VMFS 数据存储。不必使用命令行实用程序手动创建分区。有关详细信息,请参见适用于您的 ESXi/ESX 版本的《配置指南》(Configuration Guide) 中的管理存储 (Managing Storage) 部分。

您可以使用 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。

分区类型用于标识分区的用途,并可指示特定操作系统的预期使用情况。分区类型必须通过 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

转载: http://kb.vmware.com/KB/2076191

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注