我有以下预安装的方法(为方便阅读而截断):
d-i partman-auto/expert_recipe string \
boot-root :: \
1 1 1 free \
$iflabel{ gpt } \
$reusemethod{ } \
method{ biosgrub } \
. \
512 512 1074 ext2 \
$defaultignore{ } \
method{ format } \
format{ } \
use_filesystem{ } \
filesystem{ ext2 } \
mountpoint{ /boot } \
. \
2147 800 -1 $default_filesystem \
$lvmok{ } \
lvm_name { root } \
method{ format } \
format{ } \
use_filesystem{ } \
$default_filesystem{ } \
mountpoint{ / } \
. \
100% 512 100% linux-swap \
$lvmok{ } \
in_vg{ vg_01 } \
method{ swap } \
format{ } \
. \
100 10000 -1 $default_filesystem \
$defaultignore{ } \
method{ lvm } \
device{ /dev/sdb } \
vg_name{ vg_01 } \
[...]
.
这使得几乎我想要的,唯一的问题是 partman-auto 创建物理卷里面/dev/sdb 的一个分区(即pvcreate /dev/sdb1
)。
我真正想要的partman-auto 在整个装置(IE pvcreate /dev/sdb
)。
我想要这样做的原因很简单:轻松在线(热)扩展。(这适用于虚拟环境)。
我尝试了多种解决方案,但似乎都没有效果,比如从我的配方中删除 PV 并添加到我的预播文件中:
d-i partman/early_command \
string dd if=/dev/zero of=/dev/sdb bs=512 count=1; pvcreate -ffy /dev/sdb; vgcreate -fy vg_01 /dev/sdb
但这会导致安装程序失败或挂起,询问我想要什么分区布局。
如果您知道如何完成我想要的,或者即使您知道目前仅靠预先设定是不可能的,也请帮助我。
谢谢。
答案1
partman(Debian 安装程序分区工具)似乎不支持此功能。
我已经在 Debian 错误跟踪器中提交了一个愿望清单,它目前被标记为“wontfix”: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=418519
答案2
甚至在尝试预先配置之前,在手动安装中 partman 无法使用首先创建的现有 PVpvcreate /dev/sda
并继续进行 LV 定义。
对于 partman 来说,主启动磁盘上缺少分区表是行不通的。
最近的 Linux 内核修复了分区表编辑后的重启要求。因此删除 PV 分区并重新创建更大的分区以匹配虚拟磁盘大小,然后运行partprobe
以通知内核其新大小,然后调用pvresize /dev/sda1
:虚拟磁盘增长后如何在线扩展 Linux PV 分区