是否可以通过 ssh 调整挂载分区的大小?

Tan*_*mik 7 ubuntu partition ssh

背景:我获得了对根分区为 5G(sda 总共 25G)的 Ubuntu 20.04 VPS 的 SSH 访问权限。VPS 提供商说 Linux 管理员可以调整/dev/sda1分区大小。

$ sudo fdisk -l && df -h
Disk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectors
Disk model: Virtual disk    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe1f10bb0

Device     Boot Start      End  Sectors Size Id Type
/dev/sda1  *     2048 10483711 10481664   5G 83 Linux
Filesystem      Size  Used Avail Use% Mounted on
udev            1.9G     0  1.9G   0% /dev
tmpfs           394M  788K  393M   1% /run
/dev/sda1       4.9G  3.0G  1.7G  64% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
tmpfs           394M     0  394M   0% /run/user/1002
Run Code Online (Sandbox Code Playgroud)

我需要调整通过 SSH/dev/sda1安装到的分区的大小/。据我所知,这是不可能的。

是不可能的,可能还是与 VPS 提供商的沟通有误?我通过第三方与他们联系。

Mic*_*ton 12

您可以使用该growpart实用程序调整分区大小以填充可用空间。growpart期望磁盘设备和分区号作为单独的参数。所以,你可以调整分区大小/dev/sda1是:growpart /dev/sda 1。请注意,该空间是必需的。完成后,您可以调整文件系统的大小。


gri*_*erz 11

我一直在虚拟机上这样做,使用partedresize2fs

$ sudo parted /dev/sda
(parted) resizepart 1 100%
(parted) quit
$ sudo partprobe /dev/xvda
$ sudo resize2fs -p /dev/xvda1
Run Code Online (Sandbox Code Playgroud)

显然,在第一个分区之后,您需要在 sda 磁盘上有可用空间。

partprobe(附带parted)是让内核重新读取分区表所必需的。

resize2fs调整 ext* 文件系统的大小通常可以在线完成,但它只能增加文件系统。其他 Linux 文件系统将有其他调整大小的命令;大多数只能在线增长,不能收缩。

如果不确定,请printparted之前和之后使用命令resizepart

  • 实际上,如果您使用 BTRFS,Linux 上的在线分区收缩 _is_ 是可能的,并且只要在收缩发生时向卷写入的数据不超过卷的预期大小,它也非常可靠。在内部,它实际上使用相同的逻辑,让它对打开的文件进行在线碎片整理。 (2认同)