![分区架构](https://linux22.com/image/1160930/%E5%88%86%E5%8C%BA%E6%9E%B6%E6%9E%84.png)
我找不到有关 partman 交换计算的任何有用信息,并且我也尝试使用以下模式进行分区但没有成功,希望您能在这里帮助我。
我正在使用 preseed 进行磁盘分区,同时我希望交换分区是 RAM 的 1.5 倍,但不超过 12GB。
示例用例:我有 6GB RAM 的机器和 192GB 的机器。话虽如此,对于 6GB 的机器
我想要 9GB 交换分区(x1.5),但是对于 192GB,我不想要 288GB 交换分区,当然,想法是无论机器的物理 RAM 超过 12G 多少,它都会创建最多 12GB 的交换分区。
我希望 partman 可以提供这个,否则我需要在分区之前在 early_command 期间创建一些动态脚本。
分区架构
d-i partman-auto/expert_recipe string \
boot-root :: \
300 2048 2048 ext4 method{ format } \
$primary{ } $bootable{ } \
format{ } use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /boot } \
. \
150% 150% 12288 linux-swap method{ swap } \
format{ } $lvmok{ } lv_name{ swap } \
. \
61440 61440 61440 ext4 method{ lvm } \
$lvmok{ } mountpoint{ / } lv_name{ root } \
format{ } use_filesystem{ } filesystem{ ext4 } \
options/relatime{ relatime } \
. \
51200 51200 51200 ext4 method{ lvm } \
$lvmok{ } mountpoint{ /tmp } lv_name{ tmp } \
format{ } use_filesystem{ } filesystem{ ext4 } \
options/relatime{ relatime } \
options/nodev{ nodev } options/nosuid{ nosuid } \
. \
1 1000 10000000000 ext4 method{ lvm } \
$lvmok{ } mountpoint{ /localdrive } lv_name{ localdrive } \
format{ } use_filesystem{ } filesystem{ ext4 } \
options/usrquota{ usrquota } options/grpquota{ grpquota } \
options/user_xattr{ user_xattr } options/acl{ acl } \
options/nodev{ nodev } options/relatime{ relatime } \
.
谢谢!
答案1
好的,我已经在 early_command 期间对其进行了配置,这似乎是我唯一的选择。
以下是对我有用的方法:
# PartMan LVM Method
# first drive is selected and selected only.
# 1. /boot partition size 2G.
# 2. swap will be x1.5 of the pysical RAM but not more then 12G.
# 3. / - root is fixed to 60G.
# 4. /tmp fixed to 50G.
# 6. /localdrive will take all the unallocated space.
d-i partman-md/device_remove_md boolean true
d-i partman-auto/method string lvm
d-i partman-auto/purge_lvm_from_device boolean true
d-i partman-auto-lvm/guided_size string max
d-i partman-auto-lvm/new_vg_name string vg
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-lvm/device_remove_lvm_span boolean true
d-i partman-lvm/confirm boolean true
d-i partman/alignment string optimal
d-i partman/choose_partition select finish
d-i partman/confirm_write_new_label boolean true
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
# These commands will run immediately before the partitioner starts.
d-i partman/early_command string \
debconf-set partman-auto/disk "$(list-devices disk | head -n1)"; \
debconf-set grub-installer/bootdev "$(list-devices disk | head -n1)"; \
TMEM=$(($(sed -n 's/^MemTotal: \+\([0-9]*\) kB/\1/p' /proc/meminfo) / 1024)); \
DSWAP=$(expr $TMEM \* 150 \/ 100); \
if [ "${DSWAP}" -gt "12288" ]; then \
DSWAP=12288; \
fi; \
debconf-set partman-auto/expert_recipe "boot-root :: \
300 2048 2048 ext4 method{ format } \
\$primary{ } \$bootable{ } \
format{ } use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /boot } \
. \
${DSWAP} ${DSWAP} ${DSWAP} linux-swap method{ swap } \
format{ } \$lvmok{ } lv_name{ swap } \
. \
61440 61440 61440 ext4 method{ lvm } \
\$lvmok{ } mountpoint{ / } lv_name{ root } \
format{ } use_filesystem{ } filesystem{ ext4 } \
options/relatime{ relatime } \
. \
51200 51200 51200 ext4 method{ lvm } \
\$lvmok{ } mountpoint{ /tmp } lv_name{ tmp } \
format{ } use_filesystem{ } filesystem{ ext4 } \
options/relatime{ relatime } \
options/nodev{ nodev } options/nosuid{ nosuid } \
. \
1 1000 10000000000 ext4 method{ lvm } \
\$lvmok{ } mountpoint{ /localdrive } lv_name{ localdrive } \
format{ } use_filesystem{ } filesystem{ ext4 } \
options/usrquota{ usrquota } options/grpquota{ grpquota } \
options/user_xattr{ user_xattr } options/acl{ acl } \
options/nodev{ nodev } options/relatime{ relatime } \
.";