调整远程 VM 服务器上的磁盘分区大小

Hig*_*ife 8 server partitioning virtualization

我在远程服务器上作为 VM 运行 Ubuntu Server 10.04。我只能访问虚拟机。

虚拟机分配了 20GB 的磁盘空间,但驱动器目前仅分区使用约 4.7GB。

我知道您可以使用 LiveCD 使用 gparted 重新分区驱动器。您将如何在远程 VM 上执行此操作?(因为分区也是启动卷)

# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00074164

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         618     4959232   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2             618         653      280577    5  Extended
Partition 2 does not end on cylinder boundary.
/dev/sda5             618         653      280576   82  Linux swap / Solaris
Run Code Online (Sandbox Code Playgroud)

Gil*_*il' 13

如果要放大系统分区

首先,关闭swap ( swapoff /dev/sda5),因为我们将暂时删除swap 分区。

使用 GParted 或cfdiskfdisk来:

  1. 删除逻辑分区/dev/sda5和扩展分区/dev/sda2
  2. 扩大/dev/sda1以跨越整个磁盘减去您要为交换分区分配的内容。
  3. 为交换重新创建一个分区(为简单起见,将其设为主分区)。

不要重新打开交换。注释掉 中的交换行/etc/fstab,然后重新启动。(如果您不重新启动,内核将继续使用有关分区的过时数据,这可能会带来灾难性的后果。)

重新启动后,编辑/etc/fstab以更改交换设备的名称并取消注释。用 格式化交换区mkswap并用 激活它swapon -a

最后扩大现有的文件系统以/dev/sda1使用resize2fs /dev/sda1.

如果要创建另一个分区

使用 GParted 扩大扩展分区 ( /dev/sda2) 并/dev/sda6在其上创建一个新的逻辑分区。告诉 GParted 你需要一个 Linux 文件系统在/dev/sda6. 使用mke2fs -t ext4 /dev/sda6.

  • 我有严重的疑问......你有任何支持这个的链接吗?请注意,我们正在谈论我们刚刚启动的分区,即它已经有一个文件系统。您如何确保在调整分区大小时没有进程使用该分区?这只适用于单任务操作系统,例如 MS-DOS (3认同)
  • @Sergey 您可以放大已安装的分区,这实际上非常安全。您甚至可以缩小或移动已安装的分区,因为内核不会读取更新的信息;之后在分区上做任何事情将是灾难性的,比如在它上面创建一个文件系统。 (2认同)
  • @Sergey 没有进程使用分区是非常重要的。但这没关系:在正常操作中,没有进程使用该分区。如果一个进程继续访问一个已经挂载的文件系统就好了,因为文件系统驱动程序从不更新它关于分区的知识,它从挂载时间开始一直使用旧的边界。来源:我的经验,并浏览内核源代码。 (2认同)

Ser*_*gey 4

那是我会尝试的:

  1. 许多 VPS 托管提供商在其控制面板中都有操作分区的工具。访问控制面板将是最安全的选择。

  2. 不要调整分区大小,而是创建第二个分区并将“工作”数据移动到该分区。IE。挂载/home或将您的数据挂载到单独的分区

  3. 如果您仍然想冒险,请尝试以只读方式重新安装启动分区,看看是否可以在以只读方式安装时调整其大小

  4. 一些非常棘手的事情,比如删除交换 - 在驱动器的最后创建根分区的副本 - 配置 grub 从新分区启动 - 重新启动 - 调整原始分区的大小 - 将数据复制回来 - 再次修改 grub - 重新启动 - 删除临时根分区 - 再次创建交换分区。

我认为后两个选项非常危险,因为如果出现任何问题,您的系统将无法启动,因此您将失去对系统的任何访问权限。