我想自动安装具有多个磁盘的 Debian 系统。有/dev/sda
用于/boot
、/dev/sdb
用于多个 LV(用于/
、/home
等)以及/dev/sdc
用于 PostgreSQL 的/pddata
。我目前很难理解是否以及如何使用 preseed 来实现这一点。
FWIKpartman-auto/expert_recipe
只能对单个磁盘进行分区,因此它大概可以用于分区/dev/sdb
(布局最复杂的磁盘)。通常的解决方法用于分区第二个磁盘使用preseed/late_command
,因为它运行命令安装完成前/dev/sda
它大概不能与(或)相关,/dev/sdb
因为安装程序必须在完成之前将文件复制到那里。还有partman/early_command
,这听起来很有希望。但是,它在分区程序启动之前立即运行,因此在安装基本系统之前,因此在fdisk
或parted
可用之前。(至少这是一个快速实验所建议的。)所以它似乎又回到了前面提到的 partman 限制。
我是否遗漏了相关内容? preseed 是否可以用于自动安装具有与我类似的磁盘配置的 Debian 系统?
答案1
我相信您可以使用 LVM 来处理多个磁盘,您似乎计划使用它。从可用文档
使用“lvm”自动分区方法时,配方中会识别特定选项。这些选项允许同时对多个磁盘进行分区
我发现这篇博文/dev/sda
使用和共享完整的示例配置/dev/sdb
d-i partman-auto/method string lvm
# These options remove any existing LVM and deploy a new system
# Without all of these set like this you can end up with errors
# when you try to reinstall a machine with existing volume groups
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-auto/expert_recipe string \
pvs :: \
20480 750000 750000 ext4 \
$primary{ } \
method{ lvm } \
device{ /dev/sda } \
vg_name{ system } \
. \
1000000 1000000000 1000000000 ext4 \
$primary{ } \
method{ lvm } \
device{ /dev/sdb } \
vg_name{ data } \
. \
system :: \
20480 20498 5000000 ext4 \
$lvmok{ } \
lv_name{ root } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ / } \
in_vg{ system } \
. \
2048 2050 8192 linux-swap \
$lvmok{ } \
lv_name{ swap } \
method{ swap } format{ } \
in_vg{ system } \
. \
data :: \
1000000 1000009 -1 ext4 \
$lvmok{ } \
lv_name{ var } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /data } \
in_vg{ data } \
. \
100000 100001 500000 ext4 \
$lvmok{ } \
lv_name{ datasnapshots } \
\$defaultignore \
in_vg{ data } \
.
我自己还没有尝试过。