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


44

我有一个具有320GB ext4分区的400GB磁盘。我想增加ext4分区以使用剩余空间(80GB的可用空间)。

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

我该怎么办?

我见过有人在使用,resize2fs但不知道它是否会调整分区的大小。

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

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


我已经知道并回答了这种类型的问题。您在这里查阅过档案吗?
mdpc

Answers:


45

您必须先卸载分区。如果无法卸载它(例如它是您的根分区或系统需要运行的其他东西),请改用System Rescue CD之类的东西。

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

  2. resize2fs /dev/whatever

  3. e2fsck /dev/whatever (只是为了确定您是否安全)

  4. 重新安装分区。

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


5
resize2fs手册页说:如果文件系统被安装时,它可以被用来扩大规模的挂载文件系统,假设内核支持联机调整大小。(在撰写本文时,Linux 2.6内核支持使用ext3和ext4挂载的文件系统的在线调整大小。) 但是,调整已挂载文件系统的大小是更危险的操作,因为内核在运行很少执行的代码时很容易冻结或崩溃,从而使文件系统处于不良状态。
200_success

1
没错-但是您不想弄乱安装了文件系统的分区表。这就是为什么我从卸载fs开始的原因。
2013年

1
对于EXT4,可能resize4fs反而对RHEL 5
扎克·汤普森

1
只要使用以下操作,就可以用根文件系统扩展分区了:1.您不更改起始扇区号。2.更改分区表后,请重新启动,然后再执行下一步。
卡巴斯德,2015年

裂拒绝调整大小EXT4分区在CentOS 6.
reinierpost

21

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

sudo resize2fs /dev/drive_to_grow

fdisk会调整分区的大小,是的,但是如果这是根分区(或者实际上是任何已安装的分区),则必须先将其卸载。所以很可能离线!

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


如果使用fdisk,请确保使用MBR而不是GPT(例如,混合MBR)。
stek29

2
在我的debian XEN服务器上,我使用调整了逻辑卷的大小lvextend +40G /dev/vg0/volumeName,然后以root身份登录vm,然后输入resize2fs /dev/xvda2,它将正在运行的根文件系统扩展到新的最大值。我不确定是否需要这样做,但是在执行此操作后,我重新启动了虚拟机。一切似乎都很好。
rubo77

1
@ rubo77不,不需要重新启动,
克里斯(Chris

5

注意,在某些VDS服务器上,您可能具有非主根分区,并且需要先调整扩展分区容器的大小

例如,您刚刚升级了计划,并具有以下内容:

Disk /dev/vda: 83886080s
Number  Start    End        Size       Type      File system  Flags
1      2048s    194559s    192512s    primary   ext2         boot
2      196606s  51197951s  51001346s  extended
5      196608s  51197951s  51001344s  logical   ext4

/ dev / vda2-是您的扩展容器。和/ dev / vda5-我们需要调整主分区的大小以充分利用可用空间。

最简单的方法:

apt-get -y install parted
parted /dev/vda unit s print all # print current data for a case
parted /dev/vda resizepart 2 yes -- -1s # resize /dev/vda2 first
parted /dev/vda resizepart 5 yes -- -1s # resize /dev/vda5
partprobe /dev/vda # re-read partition table
resize2fs /dev/vda5 # get your space

真正帮助我的是看到您可以将其设置END为负数。通常,您不知道调整大小后的分区的确切Linux大小-您不知道如何设置END参数resizepart。设置为-1s会将分区大小调整为最大。
srigi

错误:无效的令牌
-1s

3

Parted在Centos的ext4上不起作用。我必须使用fdisk删除并重新创建分区,该分区(我已验证)可以在不丢失数据的情况下正常工作。我按照http://geekpeek.net/resize-filesystem-fdisk-resize2fs/上的步骤进行操作。简而言之,它们在这里:

$ sudo fdisk /dev/sdx 
> c
> u
> p
> d
> p
> w
$ sudo fdisk /dev/sdx 
> c
> u
> p
> n
> p
> 1
> (default)
> (default)
> p
> w

1
欢迎来到服务器故障!请总结答案中的步骤,以防止链接腐烂。
200_success

使用此过程,但使用gdisk创建分区。这使我可以保存数据并创建大于2TB的分区
pcnate

2

parted可以resize分区及其文件系统。


谢谢,我使用的是图形界面,它不支持分区大小调整。我已经在cli程序上看到了该选项,但是您能告诉我如何确保在不丢失数据的情况下使用它吗?在中resize NUMBER START END,START和END是扇区号吗?我怎么知道
mimipc

始终建议您在执行任何风险操作(如调整分区大小)之前备份数据。 parted支持单位的选择,例如,s对于扇区BGB字节使用后缀,%对于设备大小的百分比,cyl对于柱面,请使用后缀。
200_success

2

您可以使用fdiskcfdisk修改(或重新创建)分区(只要确保您不会更改其开始边界),然后重新启动和resize2fs。但是总的来说,最好使用LVM-2而不是MBR / GPT,因为它允许您在不重启内核的情况下进行更改。


1

只是为了阐明我如何为仍在阅读此线程的任何人执行此操作。
如果它是您要调整大小的引导分区,则必须从仅是Live Linux的bootcd或bootusb“救援”驱动器引导。这使您可以在要更改的驱动器以外的计算机上运行Linux。

我认为,在这种情况下,最好的“救援” CD或USB将是可引导的gparted USB或CD
盒,其中您需要救援映像
1。要扩展的分区是最后一个分区,但是您是从该分区启动的,无法卸载。
sda1 =引导(或交换)
sda2 =交换(或引导)
sda3 = /
未使用空间

  1. 如果要扩展的分区不是最后一个分区,则必须使用gparted引导映像来移动或调整分区的大小。
    sda1 =引导
    sda2 = /(要扩展的分区不是最后一个)
    sda3 =交换
    未使用的空间

如果要更改不是“根”分区(/)的已安装分区,例如/ home是另一个分区,则无需使用应急映像。如果最后一个分区尤其如此。
sda1 =引导
sda2 = /
sda3 = / home
未使用空间
-or-
sda1 = /
sda2 = / home
未使用空间

当我从较小的驱动器或SSD拍摄图像并将其移至较大的SSD时,就是这种情况。

在这种情况下,只需要在扩展/ home时卸载它即可。但是要卸载/ home,您需要确保您没有登录到home目录位于其中的任何用户帐户。由于“ root”用户的主目录位于/ root下的系统root /下,因此,如果您可以登录到root,则可以卸载/ home

我注销了一个GUI(KDE / Gnome等)会话,并使用[CTRL] + [ALT] + [F1]启动了一个Shell会话。
如果您刚刚注销用户登录,Linux可能需要20到30秒才能完成关闭所有文件的操作,因此尝试卸载/ home可能会出错。
1. umount / home(如果该命令在30秒内失败,我会重试此命令,然后再去看其他会话以查看我是否在某个地方“ cd / home / xxx”。)
2.分开/ dev / sda
。调整x大小(x =要调整大小的分区,使用“ p”获取分区列表)
b。输入调整大小的最后一个扇区=“ -1”(负1表示从磁盘末尾开始的1个扇区)
c。q(分开)
3 resize2fs / dev / sda“ x”(x =要调整大小的分区。这也会重新挂载文件系统)
4. df -m(我检查/ home以确认其大小
已调整)我从未使用此方法丢失文件或损坏驱动器。

祝好运


但是,您没有备份。
Deer Hunter
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.