2.10. 动态分区示例

使用 Anaconda kickstart 模板,以下部分指示 Anaconda 擦除整个磁盘,自动分区,将分区增大到最大大小,然后继续进行置备过程中的下一个事件序列:

zerombr
clearpart --all --initlabel
autopart <%= host_param('autopart_options') %>

动态分区由安装程序执行。因此,您可以编写自己的规则来根据节点的运行时信息指定如何对磁盘进行分区,例如:磁盘大小、驱动器、供应商或制造商的数量。

如果要置备服务器并使用动态分区,请作为模板添加以下示例。当包含 #Dynamic 条目时,模板的内容加载到 %pre shell scriplet 并创建一个 /tmp/diskpart.cfg,然后包含在 Kickstart 分区部分。

#Dynamic (do not remove this line)

MEMORY=$((`grep MemTotal: /proc/meminfo | sed 's/^MemTotal: *//'|sed 's/ .*//'` / 1024))
if [ "$MEMORY" -lt 2048 ]; then
    SWAP_MEMORY=$(($MEMORY * 2))
elif [ "$MEMORY" -lt 8192 ]; then
    SWAP_MEMORY=$MEMORY
elif [ "$MEMORY" -lt 65536 ]; then
    SWAP_MEMORY=$(($MEMORY / 2))
else
    SWAP_MEMORY=32768
fi

cat <<EOF > /tmp/diskpart.cfg
zerombr yes
clearpart --all --initlabel
part /boot --fstype ext4 --size 200 --asprimary
part swap --size "$SWAP_MEMORY"
part / --fstype ext4 --size 1024 --grow
EOF