FDISK 不显示磁盘的任何分区,尝试调整 LVM 磁盘大小,运行 CentOS

FDISK 不显示磁盘的任何分区,尝试调整 LVM 磁盘大小,运行 CentOS

这个特殊的系统表现得很奇怪,我以前从未见过。系统运行 CentOS,是 VMWare 上的虚拟机。我将驱动器空间从 100GB 增加到 130GB。当我进入系统时,我可以在运行时看到新的空间fdisk,但是我在 /dev/sdb 上没有看到任何分区。

Disk /dev/sdb: 139.6 GB, 139586437120 bytes
255 heads, 63 sectors/track, 16970 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/sys-swap: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/sys-root: 106.3 GB, 106266886144 bytes
255 heads, 63 sectors/track, 12919 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

fdisk在该磁盘上运行将返回:

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x8926c36c.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
     switch off the mode (command 'c') and change display units to
     sectors (command 'u').

Command (m for help): p

Disk /dev/sdb: 139.6 GB, 139586437120 bytes
255 heads, 63 sectors/track, 16970 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8926c36c

Device Boot      Start         End      Blocks   Id  System

那里根本没有列出任何分区。即使是 VG,我通常仍然会看到8e它的类型和一些信息。当我运行时,vgdisplay它看起来也有点奇怪。似乎没有给我完整的路径,只是将 VG 列为“sys”。

VG Name               sys
System ID             
Format                lvm2
Metadata Areas        1
Metadata Sequence No  12
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                2
Open LV               2
Max PV                0
Cur PV                1
Act PV                1
VG Size               99.97 GiB
PE Size               32.00 MiB
Total PE              3199
Alloc PE / Size       3199 / 99.97 GiB
Free  PE / Size       0 / 0   
VG UUID               E3jBIZ-BbxE-CnJg-IwBi-mXaP-xrN2-JbjXmY 

我是否只是丢失或忘记了一些东西,这是完全正常的,我应该检查fdisk并创建新分区,运行pvcreate并使用 等扩展它vgextend

在此先感谢您的时间!我不确定我是否错过了一些东西......只是看起来很奇怪。另外,这里还可以mount查看驱动器类型:

/dev/mapper/sys-root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs             
(rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

答案1

pvcreate只需将整个磁盘设备作为目标而不是使用分区,就可以将整个磁盘用作 LVM PV 。例如,使用pvcreate /dev/sdb代替pvcreate /dev/sdb1.

需要注意的是,这样的磁盘只能被 Linux 识别,不能被系统固件(无论是 BIOS 还是 UEFI)识别,因此它可能无法用作可启动系统磁盘。 (详细信息取决于所使用的确切固件和引导加载程序。)

此外,其他操作系统会将磁盘视为“未格式化”,并且完全不知道磁盘实际上包含数据。如果磁盘意外地呈现给另一个操作系统,则可能会导致数据丢失。

卷组始终有一个简单的名称:只有 PV 和 LV 具有路径名。基本上任何可以准备的块设备pvcreate都可以是 LVM PV。 LV 的名称可以表示为/dev/<VG name>/<LV name>/dev/mapper/<VG name>-<LV name>。通常可以使用两种 LV 名称形式,但某些发行版更喜欢其中一种形式,特别是对于启动过程早期阶段涉及的磁盘。

在虚拟化环境中,跳过数据磁盘上的分区可以更轻松地扩展虚拟磁盘:您可以告诉虚拟化平台(例如VMware)扩展虚拟磁盘,然后在必要时告诉内核使用 重新检测磁盘大小echo 1 > /sys/block/sdb/device/rescan。 (是否需要重新检测步骤取决于所使用的虚拟化平台和驱动程序:如果使用半虚拟化驱动程序,主机可能会与虚拟机通信磁盘已扩展,因此可能会自动检测到。)

完成这些步骤后,您将能够使用 use pvresize /dev/sdb(或其他)来扩展 PV,然后新的未分配容量将在卷组中可用,并且可以根据需要通过lvextend或命令来使用。lvcreate通过省略处理扩展分区或创建新分区的需要,这从存储扩展过程中删除了一个步骤。

虚拟化平台的管理员可能会喜欢将给定 VM 中的虚拟磁盘数量保持在相对较小的水平,并使每个虚拟磁盘成为单个有意义的实体,例如“系统磁盘”、“应用程序 1 的所有数据”、“应用程序的所有数据” 2”等。从这个意义上说,当需要更多容量时,扩展现有虚拟磁盘可能比添加新虚拟磁盘更好。

答案2

能够通过在虚拟机上创建新磁盘并使用 fdisk、pvcreate 等正常处理来扩展卷组。

相关内容