无法扩展 Oracle Linux 分区

无法扩展 Oracle Linux 分区

我一直在努力将sda3下面显示的分区扩展sda100G.我不知道我的发行版是 Oracle Linux,我正在尝试其他站点上适用于 RHEL 的所有解决方案。

[root@localname bin]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  100G  0 disk
├─sda2   8:2    0    8G  0 part [SWAP]
├─sda3   8:3    0 38.4G  0 part /
└─sda1   8:1    0  200M  0 part /boot/efi

然而,我还找不到任何东西并想直接在这里寻求社区的帮助。有人可以帮我将分区扩展sda3到实际容纳的最大容量sda吗?

Fdisk 输出:

[root@localname bin]# fdisk -l
Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 1048576 bytes
Disk label type: dos
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1    97677311    48838655+  ee  GPT
Partition 1 does not start on physical sector boundary.

在每个设备上单独执行的 FDISK 会提供相关信息,但 fdisk 作为一个整体只会显示第一个分区的详细信息,如上所述。

[root@localname bin]# fdisk -l /dev/sda2

Disk /dev/sda2: 8589 MB, 8589934592 bytes, 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 1048576 bytes

[root@localname bin]# fdisk -l /dev/sda3

Disk /dev/sda3: 41.2 GB, 41209036800 bytes, 80486400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 1048576 bytes

答案1

每当在 Id 字段中fdisk显示分区时ee,表明实际分区类型是 GPT,而该版本不支持它。分区 ID 代码ee是所有 GPT 分区磁盘中都存在的虚拟 MBR 分区条目。修改它对真实的GPT分区表没有影响。

在这种情况下,您必须使用partedorgdisk代替fdisk

运行fdisk -l /dev/sda2fdisk -l /dev/sda3只会产生无意义的结果,因为这些命令将读取相应分区的第一个块并将其解释为分区表。在那里应用的任何更改都不会对实际分区表产生任何影响。

请记住:任何操作磁盘分区的命令都应始终针对包含实际分区表的设备。这几乎总是整个磁盘设备。

仅当第三个分区物理上位于所有其他分区之后时,才可以扩展该分区。通常,最好从操作系统安装介质将系统引导到救援模式或使用其他实时 Linux 引导介质,但它可以在磁盘使用时修改分区表。只有三个限制:

  • 您不应更改要保留的任何分区的起始点的磁盘位置
  • 您不应使任何分区小于文件系统当前的大小
  • 要使更改在当前正在使用的磁盘上生效,您必须经常使用命令partprobe或重新启动:如果您fdisk不了解 GPT,则表明该系统可能是 RHEL/OEL 6.x 或更早版本,这也意味着如果磁盘正在使用中,分区工具可能无法使分区更改立即生效。

使用扩展第三个分区所需的命令parted是:

# parted /dev/sda
(parted) print      

<read the output to confirm that the third partition is physically the last one>

(parted) resizepart 3 100%
(parted) quit

之后,检查/proc/partitions内核是否已经识别出第三个分区的新大小。如果没有,请运行partprobe /dev/sda并再次检查。如果仍然无法识别,您可能需要重新启动。

一旦在 中识别出新的分区大小/proc/partitions,就可以扩展分区内的文件系统了。这必须使用特定于文件系统的工具来完成,因为 RHEL/OEL 6.x 可能太旧,无法使用通用fsadm工具。这样的系统上的文件系统类型可能是ext4,因此resize2fs要使用的工具也是如此。所以运行这个命令:

resize2fs /dev/sda3

新的大小将对命令可见,例如df仅在文件系统已成功调整大小。

答案2

Oracle 有一个实用程序,我在搜索时得到了它,它解决了这个问题。就此而言,“不”umount或检查分区。/proc/partitions

以下是有帮助的 2 个链接:

https://docs.oracle.com/en-us/iaas/Content/Compute/References/ociutilities.htm#OCI_Utilities

https://docs.oracle.com/en-us/iaas/Content/Compute/References/oci-growfs.htm#ocigrowfs

相关内容