预置 Ubuntu 12.04 会忽略分区方案

预置 Ubuntu 12.04 会忽略分区方案

我已经与这个问题斗争了几个星期。我正在尝试使用 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 交换分区解决了这个问题。其他一切都水到渠成了。

我希望这能帮助别人。

相关内容