为了在从模板克隆的 Debian 11 VM 上半自动化 LVM 分区扩展,与sfdisk
交互式fdisk
.
- 这是原始分区
root# sudo fdisk /dev/sda
Commande (m pour l'aide) : p
Disque /dev/sda : 45 GiB, 48318382080 octets, 94371840 secteurs
Modèle de disque : VDISK
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 1048576 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x919d40af
Périphérique Amorçage Début Fin Secteurs Taille Id Type
/dev/sda1 * 2048 2000895 1998848 976M 83 Linux
/dev/sda2 2000896 86962175 84961280 40,5G 8e LVM Linux
/dev/sda3 86964222 94369791 7405570 3,5G 5 Étendue
/dev/sda5 86964224 94369791 7405568 3,5G 83 Linux
- 我通过 fdisk 执行以下任务以扩展 LVM 的 VG:注意:未使用 sda3 和 sda5,这就是我删除它们的原因。
- 删除分区 5 : "d", 5
- 删除分区 3 : "d", 3
- 删除分区 2 : "d", 2
- 使用默认开始/结束扇区创建新的扩展部分 2,类型为 LVM:“n”、“e”、“2”、“t”、“lvm”
结果是:
Commande (m pour l'aide) : p
Disque /dev/sda : 45 GiB, 48318382080 octets, 94371840 secteurs
Modèle de disque : VDISK
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 1048576 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x919d40af
Périphérique Amorçage Début Fin Secteurs Taille Id Type
/dev/sda1 * 2048 2000895 1998848 976M 83 Linux
/dev/sda2 2000896 94371839 92370944 44G 8e LVM Linux
接下来,在 VM 磁盘从 45=>60GB 增长后,我可以使用以下命令刷新 sda2sudo pvresize /dev/sda2
然后,扩展我的 LVM 的 VGssudo lvextend -L +5G /dev/vg/my_vg_name
最后,调整文件系统大小sudo resize2fs /dev/vg/my_vg_name
并成功重启。
- 我想编写这些操作的脚本(肯定需要人工验证)所以我的第一个想法是使用
sfdisk
. 在将命令放入脚本之前,我手动测试它们,所以我会这样做:
- 删除分区 5:
sudo sfdisk /dev/sda 5 --delete --force --lock;
- 删除分区 3:
sudo sfdisk /dev/sda 3 --delete --force --lock;
- 删除分区 2:
sudo sfdisk /dev/sda 2 --delete --force --lock;
- 使用默认开始/结束扇区创建新的扩展部分 2,类型为 LVM:
sudo sfdisk /dev/sda 2 --force --lock << EOF
,,V
write
EOF
结果似乎不错,sda2 大小从 45 增加到 ~60GB:
Disque /dev/sda : 60 GiB, 64424509440 octets, 125829120 secteurs
Modèle de disque : VDISK
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 1048576 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x919d40af
Périphérique Amorçage Début Fin Secteurs Taille Id Type
/dev/sda1 * 2048 2000895 1998848 976M 83 Linux
/dev/sda2 2000896 125829119 123828224 59G 8e LVM Linux
现在让我们刷新 sda2,然后扩展一个 VG,它变坏了:
root# sudo pvresize /dev/sda2
Physical volume "/dev/sda2" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
root# sudo lvextend -L +5G /dev/vg/var
Insufficient free space: 1280 extents needed, but only 0 available
似乎分区表不是最新的 sfdisk 而它是 fdisk。
这是 sfdisk 的“正常”行为还是我错过了什么?
此外,如果您有更简单的想法或任何建议,请随时告诉它是否具有建设性。
来自另一个论坛的人找到了我将在下面总结的解决方案:似乎 sfdisk 需要显式
partprobe
或kpartx -uv /dev/sda
写入更改后。这意味着我必须执行以下任务:
现在我可以扩展和调整我的 LVM 部分的大小了