怎样才能在运行时增加系统根分区的大小?
我有一个在根分区(也是ext4)之后没有分配的分区,我怎样才能把这个未分配的空间添加到分配给根分区的空间里,而不必关闭服务器?
GUI(Ubuntu 14.04及以后版本)。 GParted v0.17及以后的版本提供了一个很好的GUI用于此。(旧版本会拒绝调整已挂载分区的大小)。
命令行(任何Ubuntu版本): 这有三个步骤。
步骤1. 分区必须首先被调整大小。如果你使用LVM,这很容易,而且你可能知道如何进行。如果你使用的是传统分区,那就比较复杂了,而且可能需要重新启动(尽管你不必启动另一个系统或Live 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)
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
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 "所提醒的,在继续操作之前,你必须重新加载分区表。最安全的方法是简单地重启;但你也可以使用partprobe
或kpartx
(更多信息)。
步骤3.
一旦调整了分区的大小并重新加载了分区表,在文件系统上运行resize2fs
就是一个简单的问题,即使它被挂载为根分区,你也可以这样做。
例子。
$ sudo resize2fs /dev/sda1
可以对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