如何在运行时调整扩展根分区的大小?

如何在运行时调整扩展根分区的大小?

如何在运行时增加系统根分区的大小?

我有一个在根分区之后未分配的分区(也是 ext4),如何在不关闭服务器的情况下将未分配的空间添加到分配给根分区的空间中?

答案1

GUI(Ubuntu 14.04 及更高版本):GParted v0.17 及更高版本为此提供了一个不错的 GUI。(旧版本将拒绝调整已安装分区的大小)。

命令行(任何 Ubuntu 版本): 这有三个步骤。

步骤1。 首先必须调整分区大小。如果你使用的是 LVM,这很容易,你大概知道该怎么做。如果你使用的是经典分区,这有点复杂,可能需要重新启动(尽管您不必启动其他系统或实时 CD)。

我是这样做的:fdisk首先删除该分区(这样做的目的是保留磁盘上的数据),然后在同一位置小心地重新创建更大尺寸的分区。

例子:

$ sudo fdisk /dev/sda

Command (m for help): p

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     9437183     4717568   83  Linux

Command (m for help): d
Selected partition 1

Command (m for help): p

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-10485759, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759):
Using default value 10485759

Created a new partition 1 of type 'Linux' and of size 10 GiB.
Partition #1 contains a ext4 signature.

Do you want to remove the signature? [Y]es/[N]o: N

Command (m for help): p

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048    10485759     5241856   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

再次强调,新分区必须与旧分区从同一个块开始,这一点至关重要。ID 也应匹配(Linux 系统为 83)。请做好因输入错误而丢失所有数据的准备。

为了安全起见,您也可以恢复启动标志(根据维基百科在某些计算机上仍然需要)按a

如果您的交换分区妨碍了您,请参阅评论部分以了解该怎么办。

现在应该很明显为什么人们推荐使用实时 CD。;-)

第2步。 正如fdisk有帮助地提醒您,您必须重新加载分区表才能继续。最安全的方法就是重新启动;但您也可以使用partprobekpartx (更多信息)

步骤3. 一旦调整了分区大小并重新加载了分区表,在文件系统上运行就很简单了resize2fs,即使将其作为根分区安装,也可以执行此操作。

例子:

$ sudo resize2fs /dev/sda1

答案2

更简单的解决方案-使用growpart <device> <partition>

growpart /dev/xvda 1  # Grows the partition; note the space
resize2fs /dev/xvda1  # Grows the filesystem

与往常一样,请备份您的分区表(sfdisk -d /dev/xvda > partition_bak.dmp)以防万一。

growpart是 cloud-utils 的一部分。如果您没有,可以使用以下命令安装:

sudo apt-get install cloud-utils 

答案3

可以对 ext4 文件系统进行在线调整大小,即使它是您的根分区。使用命令resize2fs

sudo resize2fs /dev/sda1

编辑:不允许在线缩小:

root@brunojcm-htpc:/home# resize2fs /dev/sda5 2654693
resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/sda5 is mounted on /; on-line resizing required
resize2fs: On-line shrinking not supported

答案4

你也可以利用分区- 只要你调整大小的分区不是你启动的分区 - 否则我建议现场 CD对于新手来说,这个选项稍微容易一些。

分区基本上完成所有步骤 - 仅基于 GUI 前端。

相关内容