手動安裝

準備功夫

啟動主機操作系統

你可以選擇任何採用 rpm 套件管理員的發行版本,即使主機發行本並不原生地運用 rpm。

要是你使用 CentOS 的安裝光碟,不論是 CD 1、DVD 1 或 live CD,啟動光碟時請使用:

linux rescue 

你也可採用:

linux text 

來啟動「文字介面」(TUI)控制台。要是你已經進入「圖像介面」(GUI)安裝環境,請稍候,當它提問有關分割區時,你可按 ctrl-alt-F2。這樣你便會取得一個文字控制台來設定分割區的細節。當你滿意後,請在文字介面控制台儲存分割資料,然後重新啟動電腦:

reboot 

並利用這些分割區續繼安裝。

此外你可選擇提供一個 vga= 的開機參數,這樣便能擁有一個較大圖像暫存區的顯示視窗。

以下安裝是在穩定版 debian(stretch)livecd 進行,但這些步驟在任何較近期的系統上都應該很類似。

在主操作系統上安裝所需工具

# apt-get update
# apt-get install rpm yum curl mdadm lvm2 xfsprogs

碟盤設置

首先,按你喜好的分割方式設定你的碟盤。你可選用任何格式:RAID、LVM、等……請記下你的碟盤設置,因為你在設定 grub、menu.lst 及 fstab 時需要它。

我們建議採用 gpt 分區表,因為只有它們才能支援新型的大容量碟盤及 UEFI 開機。在進行分割前,必須決定是以 UEFI 還是 MBR 開機,因為這個決定會影響分割區的數量及類型。要是採用 RAID,你亦需要 RAID 的版本。

在 fdisk 內,g 建立一個新的 GPT 分區表。

# fdisk /dev/sda
...
Command (m for help): g

你必須按需要建立數個分割區。若果以 UEFI 開機,你需要一個細小的 UEFI system 類型分割區並以格式化為 fat(你須要利用 fdisk 設定分割區類型)。有需要的話,你可以在該分割區採用軟件 raid1,但在建立 raid 陣列時你需要加入 --metadata=0.90 的選項。若果以 MBR 開機,你需要在裝置的起首位置建立一個 BIOS boot partition 類型的分割區。

例:在 fdisk 把一個分割區的類型設為 BIOS boot partition

# fdisk /dev/sda
...
Command (m for help): t
Partition number (1-3, default 3): 1
Partition type (type L to list all types): L
  1 EFI System                     C12A7328-F81F-11D2-BA4B-00A0C93EC93B
  2 MBR partition scheme           024DEE41-33E7-11D3-9D69-0008C781F39F
  3 BIOS boot partition            21686148-6449-6E6F-744E-656564454649
...
Partition type (type L to list all types): 3

如果採用 RAID,我建議利用 RAID1 建立一個獨立的開機分割區(並在 RAID1 上設立 UEFI 系統分割區),而系統的其餘部份(/、/home、……)則可採用任何 raid 級別及 lvm 的組合。 CentOS 的預設檔案系統是 xfs,因此設定好分割區、raid 及 lvm 後,請用 mkfs.xfs 建立 /boot 及 / 檔案系統,有需要的話再用 mkfs.vfat 建立 UEFI 系統分割區。要是採用的是舊版 mkfs,我建議利用 mkfs.xfs -m crc=1 這個選項來啟用檔案系統的 crc 中繼資料。在新版的 xfsprogs 工具下,這是預設值。

接下來,在現有的檔案系統上設置一個位置,用作建立新安裝的用途,而分割區將會掛載在相對的 ././boot 的位置:

# mkdir /target
# mount /dev/sda3 /target
# mkdir /target/boot
# mount /dev/sda2 /target/boot

若是以 UEFI 開機,掛載 UEFI 系統分割區

# mkdir /target/boot/efi
# mount /dev/sda1 /target/boot/efi

安裝系統

我們會採用 centos 鏡站上的最新版 centos-release 套件(你可以在 http://mirror.centos.org/centos/7/os/x86_64/Packages/ 的清單內找到它)

# rpm --root /target -i http://mirror.centos.org/centos/7/os/x86_64/Packages/centos-release-7-4.1708.el7.centos.x86_64.rpm
# mkdir -p /etc/pki/rpm-gpg && cp /target/etc/pki/rpm-gpg/* /etc/pki/rpm-gpg
# yum --installroot=/target --releasever=7 install yum

準備 chroot

# cp /etc/resolv.conf /target/etc
# mount --bind /dev/ /target/dev/
# mount -t proc procfs /target/proc/
# mount -t sysfs sysfs /target/sys/

若是以 UEFI 開機:

mount -t efivarfs efivarfs /target/sys/firmware/efi/efivars/

進入 chroot

# chroot /target

重裝套件管理員及基本套件

# yum --releasever=7 install yum centos-release
# yum install @core @base redhat-lsb-core dracut-tools dracut-config-generic dracut-config-rescue

若你採用 RAID,設置軟件 RAID 陣列

# mdadm --detail --scan > /etc/mdadm.conf

安裝開機程式

要是你不是以 UEFI 開機,你可選擇不安裝 UEFI 開機程式。

# yum install grub2 grub2-efi efibootmgr
# cat > /etc/default/grub << EOF
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.auto rhgb quiet consoleblank=0"
GRUB_DISABLE_RECOVERY="true"
EOF

要是以 MBR 開機,安裝 grub 到 MBR 並建立設定檔:

# grub2-install /dev/sda
# grub2-mkconfig -o /boot/grub2/grub.cfg

如果你採用多個碟盤(例如:在 raid1 下開機,你可將它安裝到每個開機碟盤)。

要是以 UEFI 開機,請建立 UEFI 開機項目及建立 grub 設定檔。這裡假設 sda 上的第一個分割區是 UEFI 系統分割區:

# efibootmgr -c -p 1 -d /dev/sda -L "centos sda" -l '\EFI\centos\grubx64.efi'
# grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

如果你採用多個碟盤(例如:在 raid1 下開機,你可以在每個開機碟盤建立項目)。 請利用 efibootmgr -v 檢查你的開機項目列在開機次序的第一位,否則你可以這樣刪除項目

# efibootmgr -b entrynum -B

或這樣更改開機次序

# efibootmgr -o bootnum,nextbootnum,nextnextbootnum

設置系統

網絡設定

在 /etc/hosts 加入你的主機名稱:

# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.60 myhostname.domain.tld myhostname

可預計的網絡介面名稱

網絡裝置的名稱(多數)會是下列之一,在實體機器上我的是 ID_NET_NAME_ONBOARD,但我無法可靠地預計虛擬機器上的名稱。要是你採用較新的系統進行安裝,視乎 systemd 及 uddev 的版本和設定,它可能(或許不能)擁有同一個名稱。若是要停用這個功能,你可以搜尋如何停用可預計的網絡介面名稱。

# udevadm test-builtin net_id /sys/class/net/eth0 2> /dev/null
ID_NET_NAME_ONBOARD=eno1
ID_NET_NAME_PATH=enp3s0

綱絡腳本

# echo "NETWORKING=yes" > /etc/sysconfig/network

個別介面的 DHCP 設置:

# cat > /etc/sysconfig/network-scripts/ifcfg-eno1 << EOF
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno1
DEVICE=eno1
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no
EOF

啟用 journald

# mkdir /var/log/journal
# chgrp systemd-journal /var/log/journal
# chmod 2755 /var/log/journal
# systemctl enable systemd-journald

更新檔案系統的 selinux 標籤

# touch /.autorelabel

建立 /etc/fstab

在 /etc/fstab 內至少加入 / 及 /boot,再按需要加入 /boot/efi。我建議採用 UUID,並利用 blkid 尋找每個分割區的 UUID。

# cat /etc/fstab
UUID=5ee0f2e5-0e9c-4fe4-a8b8-c5a0f3e1f9f3       /       xfs     defaults        0 0
UUID=e63ef796-a478-4388-9713-804588c86cd9       /boot   xfs     defaults        0 0
UUID=dfdd57a6-39cf-4613-9764-0c2169dbec11       swap    swap    defaults        0 0

最後步驟

設定 root 的密碼

# passwd
Changing password for user root.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

設定時區

舉例說,若要設定歐洲/巴黎的時區:

# cd /etc
# rm localtime
rm: remove symbolic link ‘localtime’? y
# ln -s ../usr/share/zoneinfo/Europe/Paris localtime

離開 chroot,然後解除掛載一切

# mount |grep target |awk '{ print $3 }' |xargs umount -lf

重新開機。 首次登入時,請以 root 的身份執行以下指令來完成系統的設置:

# hostnamectl set-hostname myhostname
# localectl set-locale LANG=en_US.utf8

安裝後的提示

現在你應擁有一台支援開機的系統!以下的提示能協助你過渡首次開機

系統設定

很多系統設定都放置在 /etc/sysconfig。見

/usr/share/doc/initscripts

內的完整文檔。

請在 /etc/sysconfig/keyboard 內利用 KEYTABLE 變數來設定你的鍵盤

網絡

/etc/sysconfig/network-scripts/。參考 ifcfg-lo 作為例子。

Translation of revision 18

zh-tw/HowTos/ManualInstall (last edited 2017-11-07 10:52:19 by TimothyLee)