如何扩展 ext4 分区和文件系统?

如何扩展 ext4 分区和文件系统?

我有一块 400GB 的磁盘,其中有一个 320GB 的 ext4 分区。我想扩大 ext4 分区以使用剩余空间(80GB 的可用空间)。

+--------------------------------+--------+
|             ext4               |  Free  |
+--------------------------------+--------+

我怎样才能做到这一点?

我见过有人使用它resize2fs,但我不明白它是否会调整分区大小。

另一个解决方案是使用,fdisk但我不想删除我的分区并丢失数据。我怎样才能简单地增加分区而不丢失任何文件?

注意:我说的是没有 LVM 的未安装数据分区,并且我有备份,但我想避免花费一些时间进行恢复。

答案1

您必须先卸载分区。如果您无法卸载它(例如它是您的根分区或系统需要运行的其他分区),请使用类似系统救援光盘反而。

  1. 运行parted,或者gparted如果您更喜欢 GUI,然后调整分区大小以使用额外空间。我更喜欢它,gparted因为它为您提供了一个很好的图形表示,非常类似于您在问题中绘制的图形。

  2. resize2fs /dev/whatever

  3. e2fsck /dev/whatever(只是为了了解你是否安全)

  4. 重新挂载您的分区。

虽然我从未见过这种情况失败,但请先备份您的数据!

答案2

使用growpart示例resize2fs

请注意以下情况下和之间的空格:/dev/sda1growpart /dev/sda 1

这是两个命令:

growpart  /dev/sda 1
resize2fs /dev/sda1
$ growpart /dev/sda 1
CHANGED: partition=1 start=2048 old: size=39999455 end=40001503 new: size=80000991,end=80003039
$ resize2fs /dev/sda1
resize2fs 1.45.4 (23-Sep-2019)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 5
The filesystem on /dev/sda1 is now 10000123 (4k) blocks long.

如果这没有按预期工作,则可能是由于扩展分区造成的,在这种情况下应该适用以下答案:https://unix.stackexchange.com/a/687489/124109

答案3

是的,如果您的分区已经排序,则可以在线扩展 EXT4 fs。您的分区排序了吗?您有 LVM 吗?

sudo resize2fs /dev/drive_to_grow

fdisk确实会调整分区大小,但如果这是根分区(或者事实上是任何已安装的分区),则必须先卸载它。因此最有可能离线!

与任何与磁盘/ fs 操作相关的内容一样,我强烈建议进行备份和测试,并充分了解恢复过程。

答案4

接受的答案有些过时:最好调整 ext4 文件系统的大小在线的而不是离线,因为在线扩展代码路径比离线扩展代码路径更常用。

更困难的事情可能是扩展底层分区,除非你使用 LVM您的卷组中有可用空间。要在线扩展分区,您可以使用fdiskparted;然后,您必须运行kpartx <device>以通知内核更改。如果使用 LVM,您需要在卷pvresize之前添加刚刚调整大小的分区。lvresize

最后,您可以发布resize2fs您的文件系统。

相关内容