![将分区移动到磁盘末尾](https://linux22.com/image/224362/%E5%B0%86%E5%88%86%E5%8C%BA%E7%A7%BB%E5%8A%A8%E5%88%B0%E7%A3%81%E7%9B%98%E6%9C%AB%E5%B0%BE.png)
我在 Promox 上有一个运行 Debian 11 的虚拟机。我需要增加磁盘空间,因此我在 Proxmox GUI 中调整了磁盘大小。但现在,我需要扩大根分区。如果根分区是磁盘上的最后一个分区,那么这不会是问题,但现在它是磁盘中间的分区。在调整根分区的大小之前,需要将交换分区移至磁盘末尾。但需要满足两个条件:
- 交换分区必须保持相同的大小
- 最终的交换分区必须与磁盘布局正确对齐
由于我正在开发无头设备,因此我们必须使用 CLI。这就是,分手给我的:
(parted) print
Model: QEMU QEMU HARDDISK (scsi)
Disk /dev/sda: 68.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 2097kB 1049kB bios_grub
2 2097kB 33.3GB 33.3GB ext4
3 33.3GB 34.4GB 1022MB linux-swap(v1) swap
(parted) print free
Model: QEMU QEMU HARDDISK (scsi)
Disk /dev/sda: 68.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
17.4kB 1049kB 1031kB Free Space
1 1049kB 2097kB 1049kB bios_grub
2 2097kB 33.3GB 33.3GB ext4
3 33.3GB 34.4GB 1022MB linux-swap(v1) swap
34.4GB 68.7GB 34.4GB Free Space
我知道,我必须删除现有的交换分区,swapoff /dev/sda3
在parted中使用和删除它。
我的问题是:我必须输入什么才能创建一个与该磁盘末尾大小完全相同的正确对齐的交换分区?
顺便说一句:我不想用文件替换交换。
答案1
您可以使用如下标志进行对齐:
parted /dev/sda --align optimal
然后设置单位作为第一步
unit MiB
print
就我个人而言,我有一个名为pdisk
处理此问题的脚本,并且我parted
以非交互方式运行:
#!/bin/sh
#
dev="$1"
shift
test 0 -eq $# && set -- print
parted "$dev" --align optimal unit MiB "$@"
进而
pdisk /dev/sda [<command>]