将 partman 分区设为单个磁盘非常简单:
d-i partman-auto/disk string /dev/xvda
d-i partman-auto/method string regular
d-i partman-auto/expert_recipe string \
boot-swap :: \
2048 2048 -1 ext3 \
$primary{ } \
$bootable{ } \
method{ format } \
format{ } \
use_filesystem{ } \
filesystem{ ext3 } \
mountpoint{ / } \
device{ /dev/xvda } \
. \
或者更简单:
d-i partman-auto/disk string xvda
d-i partman-auto/method string regular
d-i partman-auto/choose_recipe select atomic
但是,如果磁盘不止一个,我找到或编写的所有方法都不起作用。安装程序进入要求分区方法的屏幕,然后就停在那里。我以为我已经在这里回答了这个问题:
# The presently available methods are:
# - regular: use the usual partition types for your architecture
# - lvm: use LVM to partition the disk
# - crypto: use LVM within an encrypted partition
d-i partman-auto/method string regular
即使这确实回答了问题,但实际上它停留在下一步,即选择磁盘,这不就是答案吗?
d-i partman-auto/disk string /dev/xvda
我的目标是最终得到三个磁盘:根目录位于 /dev/xvda,包括 /home、/usr 和其余部分;额外的交换卷位于 /dev/xvdb;EXT3 卷位于 /dev/xvdc,安装在 /var/build 上。更复杂的是,/var/build 在安装时不存在,因此也需要以某种方式创建。这是在 Debian Squeeze 上。
答案1
我还没有尝试过这个,但是我为 Etch 做了什么应该仍能工作。未经测试:
d-i preseed/late_command string echo ';' | sfdisk /dev/xvdb ; mkswap /dev/xvdb1 ;
echo '/dev/sdb1 none swap sw 0 0' >> /target/etc/fstab ;
echo ';' | sfdisk /dev/xvdb ; mke2fs -j -q /dev/xvdb1 ;
mkdir /target/var/build ;
echo '/dev/xvdb1 /var/build ext3 defaults 0 2' >> /target/etc/fstab
我必须找到找到这个sfdisk
技巧的参考资料——它基本上清除了磁盘的分区表并创建了一个巨大的分区。