我喜欢使用 Fedora,现在推荐它作为非技术用户的首选发行版。然而,我一直没能在我的主机上使用它,因为我发现安装方法太有限了。多年来,我使用了许多奇怪的分区排列方式;看来自动分区器现在终于对 LVM 有了很好的支持,但我现在转向了涉及 btrfs 子卷的不同方案,我还没有见过可以使用它的方案。无论如何,使用加密和 RAID 以及其他设备映射对这些进行分层可能会令人担忧,而且即使自动化工具声称支持它,生成的安排通常也不是最佳的。
我的首选方法是根据自己的喜好手动排列分区和块设备,然后将所有内容安装在正确的位置并执行假设的安装过程。 Arch 和 Exherbo 都使用这种方法。从技术上讲,这似乎没有理由不适用于自动安装的发行版;它只需要完全跳过分区步骤。
在通常自动安装的发行版中使用此方法的一般选项是什么?我对 Fedora 最感兴趣,但也希望看到有关其他常见发行版(例如 CentOS、Mint、Ubuntu 等)的意见。
答案1
Fedora 与所有 RHEL 风格的发行版一样,使用 kickstart“应答”文件。
kickstart 可能包含类似于以下内容的行:
bootloader --location=mbr --driveorder=sda --append="exec-shield=1 selinux=1 rhgb rhgb quiet quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --none
ignoredisk --drives=sdb
part pv.253002 --onpart=sda2 --noformat --encrypted
part /boot --fstype=ext4 --onpart=sda1
volgroup vg_main --pesize=32768 --useexisting --noformat pv.253002
logvol / --fstype=ext4 --name=lv_root --vgname=vg_main --useexisting --noformat
logvol swap --name=lv_swap --vgname=vg_main --useexisting --noformat
ETC。
kickstart 格式的完整描述可从github 上的 pykickstart
专门针对您的需求:
btrfs:
定义 BTRFS 卷或子卷。该命令的形式为:
btrfs <mntpoint> --data=<level> --metadata=<level> --label=<label> <partitions*>
对于卷和形式:
btrfs <mntpoint> --subvol --name=<path> <parent>
对于子卷。
dmraid:
dmraid --name= --dev=
袭击:
组装软件 RAID 设备。该命令的形式为:
raid <mntpoint> --level=<level> --device=<mddevice> <partitions*>
最重要的是 -part
这里有太多选项无法列出。
可以这么说,part
orpartition
是在 btrfs 之前定义存储的主要工具。
part raid.01 --size=6000 --ondisk=sda
part raid.02 --size=6000 --ondisk=sdb
part raid.03 --size=6000 --ondisk=sdc
part swap1 --size=512 --ondisk=sda
part swap2 --size=512 --ondisk=sdb
part swap3 --size=512 --ondisk=sdc
part raid.11 --size=6000 --ondisk=sda
part raid.12 --size=6000 --ondisk=sdb
part raid.13 --size=6000 --ondisk=sdc
raid / --level=1 --device=md0 raid.01 raid.02 raid.03
raid /usr --level=5 --device=md1 raid.11 raid.12 raid.13
clearpart --all
如果您打算使用 anaconda 语言构建分区,并且clearpart --none
您提供了预先存在的方案(手动构建或%pre
按照 @mattdm 的建议使用),请务必使用。
要在安装过程中使用 kickstart,请在安装过程中添加以下内容:
linux ks=nfs:<server>:/<path>
当然,还有许多其他选项可用于获取文件:cd/iso 、 http 、 BIOS 设备等上的直接路径
答案2
使用启动。 Fedora 让这一切变得简单,手动安装后,它会在根目录中留下文件“anaconda-ks.cfg”。这基本上是您的起始位置,您可以从这里为您自己的安装配置所有内容。 Fedora、centos 和 rhel 的过程相同。
在 Fedora 启动(例如从 Fedora iso)上,您可以指向此文件。我更喜欢将此类文件放在 http 服务器上,但正如您所看到的,它可以放在任何介质上。 https://www.centos.org/docs/5/html/5.1/Installation_Guide/s1-kickstart2-startinginstall.html
答案3
你能使用启动。但是,不要使用普通的分区命令,而是使用%pre
要运行的部分parted
和其他工具来创建您想要的任何方案。请参阅%pre 上的文档。或者,您可以通过实时 USB 启动手动执行此操作。
不管怎样,一定要付出clearpart --none
,这样就不会被消灭。
然后,用于part --usepart
指定现有设备。--noformat
如果您也自己处理过文件系统创建,则可以添加。
(这是有记录的在 Fedora 安装指南中.)
如果您的需求比自动化工具更具体,但又不是特别奇特,那么您就不需要需要kickstart — 只需手动创建您的方案,然后在安装程序中,根据需要手动匹配您的现有设备。