我想以相同的方式自动分区我的所有工作站:
- 第一个分区是可启动的 1GB ext4 /boot 分区
- 第二个分区是 2GB 交换分区
- 第三个分区是 ext4 / 分区,占用剩余的空间
- 所有分区都应该格式化
我认为将其添加到我的 preseed.cfg 中将实现我想要的:
d-i partman-auto/workstation_recipe string \
root :: \
1024 1023 1024 ext4 \
$primary{ } $bootable{ } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /boot } \
. \
2048 2047 2048 linux-swap \
$primary{ } \
method{ swap } format{ } \
. \
17408 100000000000 -1 ext4 \
$primary{ } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ / } \
.
这是基于这个博客。这会做我想要的事情吗?我还需要在 preseed.cfg 中添加其他内容以使其在无需用户干预的情况下接受这些指令吗?我以前从未使用过帕特曼食谱。
答案1
我花了几天时间在互联网上搜索后发现了这一点任何关于 partman 的信息很少 - 文档记录得并不好。这是我使用的配置:
# This automatically creates a standard unencrypted partitioning scheme.
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular
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/choose_recipe select unencrypted-install
d-i partman-auto/expert_recipe string \
unencrypted-install :: \
1024 1024 1024 ext4 \
$primary{ } $bootable{ } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /boot } \
. \
2048 2048 2048 linux-swap \
$primary{ } \
method{ swap } format{ } \
. \
17408 100000000000 -1 ext4 \
$primary{ } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ / } \
.
d-i partman-md/confirm boolean true
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
只需将其放入您的预置中,您就可以开始了。逐行:
- 使用磁盘 /dev/sda
- 进行常规安装(未加密或 LVM)
- 删除任何现有的 LVM而不提示
- 删除任何现有的 RAID 设置而不提示
- 确认这就是你想要的
- 再次确认
- 选择“未加密安装”配方,如下所示
- 这是单个逻辑行,指定整个配方,一次一个分区。它完全按照我在问题中指定的方式创建分区表。
- 再次确认
- 允许partman写入新标签
- 完成该过程
- 再次确认
- 再次确认
就这样,效果完美。
答案2
我知道这是一篇旧文章,但我不确定硬编码是否/dev/sda
是一个好主意。相反,我会使用类似的东西
d-i partman/early_command string \
USBDEV=$(list-devices usb-partition | sed "s/\(.*\)./\1/");\
if [ ! -z "$USBDEV" ]; then \
BOOTDEV=$(list-devices disk | grep -v "$USBDEV" | head -1);\
else \
BOOTDEV=$(list-devices disk | head -1);\
fi; \
debconf-set partman-auto/disk $BOOTDEV;\
debconf-set grub-installer/bootdev $BOOTDEV;\
lvremove --select all -ff -y; vgremove --select all -ff -y; pvremove ${BOOTDEV}* -ff -y
确保第一个内部驱动器用作安装介质,并且排除任何可能的外部 USB 驱动器,因为枚举顺序可能会动态更改。
答案3
尝试以下 3 行(根据需要进行更改):
d-i partman-auto/disk string /dev/sda
d-i partman/choose_partition select finish
d-i partman/confirm boolean true