
我喜歡使用 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 - 只需手動建立您的方案,然後在安裝程式中,根據需要手動匹配您的現有設備。