扩展完整的虚拟 Debian 磁盘以使用空白空间

扩展完整的虚拟 Debian 磁盘以使用空白空间

我有一台运行 Debian 8 的虚拟服务器,主磁盘已满。我已通过虚拟机管理程序扩展了“物理”硬盘,但我不知道如何扩展主分区以使用虚拟磁盘上新创建的未分配空间。

我已将虚拟磁盘从 4GB 扩展到 10GB。

fidks -l输出:

GPT PMBR size mismatch (8388607 != 20971519) will be corrected by w(rite).
Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 58BB252B-F2A7-48A3-9270-BB80B698AC35

Device       Start     End Sectors  Size Type
/dev/sda1     2048 1050623 1048576  512M EFI System
/dev/sda2  1050624 6293503 5242880  2.5G Linux filesystem
/dev/sda3  6293504 8386559 2093056 1022M Linux swap

df -h输出:

Filesystem      Size  Used Avail Use% Mounted on
udev            438M     0  438M   0% /dev
tmpfs            90M   11M   80M  12% /run
/dev/sda2       2.4G  2.4G     0 100% /
tmpfs           449M     0  449M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           449M     0  449M   0% /sys/fs/cgroup
/dev/sda1       511M  132K  511M   1% /boot/efi
tmpfs            90M     0   90M   0% /run/user/1000

重要的提示:这是一个极其简单的系统,上面只有很少的实用程序,而且由于没有磁盘空间,我无法安装任何东西。

我正在寻找扩展分区的方法。

答案1

  1. 先决条件

    • 一切都可以在虚拟机中一次性完成,无需重启,如果 /( /dev/sda2) 是一个可在线调整大小的文件系统。你从未说过什么是文件系统/。我假设它是ext4xfs也可以,其他一些可能也可以)。
    • 这是一个虚拟机,继续之前请先备份。
    • 安装 gdisk。不要使用fdisk,但gdiskfdisk不能总是很好地处理我下面描述的 GPT PMBR 问题,gdisk对此没有问题。安装大小小于 1M。
  2. 对分区执行的操作

    • swapoff /dev/sda3准备将其移除:它碍事而且不是至关重要的。
    • 运行gdisk /dev/sda。注意有关 GPT PMBR 的警告:这是因为 EFI 在磁盘的开始和结束处都写入了其标签信息。因此,当您扩大磁盘时,新结束处不再有 GPT 签名和数据。gdisk更正这些信息并要求确认:只需接受。fdisk此步骤可能会失败(在 fdisk 的最后一个 w 处完成)。
    • (可选)记下要更改的分区的唯一 GUID(i 2i 3),以便在后续步骤中重复使用。
    • d使用和删除分区 3 (交换分区)3,否则您无法扩大分区 2。
    • 棘手的部分:删除分区 2 ( d 2)。(重新)创建分区 2 ( n 2)在同一地点:选择相同的开始(1050624)和更大的尺寸或更大的结束,这样您将有更多可用空间,例如+7G。分区类型8300。如果告诉您检测到旧文件系统的签名,请不要删除它,那是您正在运行的系统。
    • 为交换分区 ( ) 重新创建一个新的分区 3 n 3,建议从默认开始,并且大小可能与之前相同,输入8200
    • (可选)恢复以前提到的分区的唯一 GUID,如果某些配置的磁盘设置依赖于它(PARTUUID=...),则需要使用专家选项(x然后分别针对分区 2 和 3c 2c 3)。
    • 写入更改(w确认...)。您将收到有关内核未使用新分区表的错误。这是意料之中的。退出(q)。
  3. partx使用命令修复内核的视图问题

    • “移动”交换分区

      # cat /sys/class/block/sda3/start #kernel's view of the old sda3 partion's position
      6293504
      # partx -u /dev/sda3
      # cat /sys/class/block/sda3/start
      (some higher value)              #kernel's view of sda3 is fixed
      
    • !!如果在此步骤中没有获得更高的值,请中止并重新启动:内核将在重新启动后获得新的几何形状(但它会抱怨交换不可用)并跳至步骤 4。

    • 扩大根文件系统的分区

      # cat /sys/class/block/sda2/size #kernel's view of the old partition's size
      5242880
      # partx -u /dev/sda2
      # cat /sys/class/block/sda2/size
      (some bigger value)              #kernel's view of sda2 is fixed
      
  4. 文件系统

    • 重新使用交换并扩大文件系统:现在分区中有空间,里面的文件系统可以使用该空间。

      # mkswap /dev/sda3
      # swapon /dev/sda3
      # resize2fs /dev/sda2 # ext4 can be resized "online" ie while mounted.
      
    • 或者对于 xfs:

      # xfs_growfs /
      

您已设置完毕。验证重启后是否一切正常。否则,备份就完成了。

相关内容