我已经与这个问题斗争了几个星期。我正在尝试使用 PXE 和 Kickstart 自动安装 Ubuntu 服务器。我已经设法通过 Google 解决了我遇到的大多数问题,但这个问题让我很为难。我能找到的这个问题的唯一另一个例子是在 askubuntu 上,那里有一个人问了与我即将问的问题完全相同的问题,但没有得到任何答复。从这里我可以得出两个结论之一 - 没有人使用 Kickstart,或者这个问题是由一些我还没有找到的模糊设置引起的。
回答我的问题。我的预置文件中的这一行
d-i partman-auto/choose_recipe select atomic
据说将整个磁盘划分为一个分区。这正是我想要的。但是,安装完成后,我的磁盘如下所示
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/server1-root 9.2G 1.5G 7.3G 18% /
...some other stuff like udev...
/dev/sda1 228M 25M 191M 12% /boot
/dev/mapper/server1-home 203G 188M 192G 1% /home
因此,硬盘被划分为一个很小的 root 分区和一个很大的 home 分区。阅读手册意味着这就是
d-I partman-auto/choose_recipe select homes
确实如此,但这也意味着没有“默认”操作 - 也就是说,如果我的此行语法错误或完全缺失,安装程序将停止并询问我该怎么做。但它没有 - 它只是继续前进并创建这个巨大的 /home 分区。
让我困惑的主要事情(另一位发帖者没有提到)是为什么
/dev/mapper/server1-home
对我来说,这意味着它认为它是一个 RAID 或其他 DM 卷。但事实并非如此 - 它是一个 240Gb 的磁盘。
目前我的剩余预置如下。请注意,这是版本 100 万左右 - 我真的已经为此努力了好几天。我尝试过非 LVM 版本等等。这恰好是我在这里发布之前尝试过的最新版本。
d-i partman-auto/disk string /dev/sda
d-i partman/default_filesystem string ext4
d-i partman-auto/method string lvm
d-i partman-auto/purge_lvm_from_device boolean true
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-auto-lvm/guided_size string max
d-i partman-auto/choose_recipe select atomic
d-i partman/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
该机器还配有第二个 1Tb 磁盘,一旦我正确分配第一个磁盘,它就会被安装为 /data。
我真的希望有人能帮忙,因为我在这个问题上花了太长时间。
史蒂夫
答案1
通过选择“原子”,您告诉安装程序使用预定义的配方文件。安装程序将在以下目录中查找此“原子”配方文件:
/lib/partman/recipes-<arch>-<subarch>/*
/lib/partman/recipes-<arch>/*
/lib/partman/recipes/*
在这些目录中搜索原子配方,看看它是否定义了您想要的内容。
以下是我在 PXE 服务器上进行的预置配方,仅设置交换分区并将其余磁盘用于根目录(Ubuntu 14.04,网络启动安装):
d-i partman-auto/init_automatically_partition select biggest_free
d-i partman-auto/expert_recipe string \
swap-root :: \
2048 4000 2048 linux-swap \
method{ swap } format{ } \
. \
100 10000 100000000 ext3 \
$primary{ } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext3 } \
mountpoint{ / } \
.
#d-i partman-auto/choose_recipe select swap-root
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
答案2
我已经发现了发生了什么。我不确定是否要用“错误”这个词来描述这一点,但我能够重复它并进行测试以确认我的发现。
长话短说 - 我使用的机器有 240GB SSD 和 512GB 内存。如果我将 RAM 数量减少到 120Gb 以下(SSD 大小的一半),原子分区方案就可以正常工作。一旦安装的 RAM 超过 120Gb,我就会得到一个 9Gb 的 / 分区,其他所有分区都分配给 /home。
我通过学习专家方法并指定 64Gb 交换分区解决了这个问题。其他一切都水到渠成了。
我希望这能帮助别人。