我一直在努力将sda3
下面显示的分区扩展sda
到100G
.我不知道我的发行版是 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分区表没有影响。
在这种情况下,您必须使用parted
orgdisk
代替fdisk
。
运行fdisk -l /dev/sda2
和fdisk -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