使用 dipartman 配方字符串?

使用 dipartman 配方字符串?

我想以相同的方式自动分区我的所有工作站:

  • 第一个分区是可启动的 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

相关内容