我有一台运行 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
先决条件
- 一切都可以在虚拟机中一次性完成,无需重启,如果
/
(/dev/sda2
) 是一个可在线调整大小的文件系统。你从未说过什么是文件系统/
。我假设它是ext4
(xfs
也可以,其他一些可能也可以)。 - 这是一个虚拟机,继续之前请先备份。
- 安装 gdisk。不要使用
fdisk
,但gdisk
:fdisk
不能总是很好地处理我下面描述的 GPT PMBR 问题,gdisk
对此没有问题。安装大小小于 1M。
- 一切都可以在虚拟机中一次性完成,无需重启,如果
对分区执行的操作
swapoff /dev/sda3
准备将其移除:它碍事而且不是至关重要的。- 运行
gdisk /dev/sda
。注意有关 GPT PMBR 的警告:这是因为 EFI 在磁盘的开始和结束处都写入了其标签信息。因此,当您扩大磁盘时,新结束处不再有 GPT 签名和数据。gdisk
更正这些信息并要求确认:只需接受。fdisk
此步骤可能会失败(在 fdisk 的最后一个 w 处完成)。 - (可选)记下要更改的分区的唯一 GUID(
i
2
和i
3
),以便在后续步骤中重复使用。 d
使用和删除分区 3 (交换分区)3
,否则您无法扩大分区 2。- 棘手的部分:删除分区 2 (
d
2
)。(重新)创建分区 2 (n
2
)在同一地点:选择相同的开始(1050624
)和更大的尺寸或更大的结束,这样您将有更多可用空间,例如+7G
。分区类型8300
。如果告诉您检测到旧文件系统的签名,请不要删除它,那是您正在运行的系统。 - 为交换分区 ( ) 重新创建一个新的分区 3
n
3
,建议从默认开始,并且大小可能与之前相同,输入8200
。 - (可选)恢复以前提到的分区的唯一 GUID,如果某些配置的磁盘设置依赖于它(
PARTUUID=...
),则需要使用专家选项(x
然后分别针对分区 2 和 3c
2
和c
3
)。 - 写入更改(
w
确认...)。您将收到有关内核未使用新分区表的错误。这是意料之中的。退出(q
)。
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
文件系统
重新使用交换并扩大文件系统:现在分区中有空间,里面的文件系统可以使用该空间。
# mkswap /dev/sda3 # swapon /dev/sda3 # resize2fs /dev/sda2 # ext4 can be resized "online" ie while mounted.
或者对于 xfs:
# xfs_growfs /
您已设置完毕。验证重启后是否一切正常。否则,备份就完成了。