<!> 這篇文章似乎被忽略,因此必須被分類為建立中 —— RussHerold;請把回饋發送給 GlennMatthys 並請他作出更新

<!> 這篇論壇文檔描述了一個類似的啟動方法供安裝 CentOS-6 之用。

手動安裝

準備功夫

啟動主機操作系統

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

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

linux rescue 

你也可採用:

linux text 

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

reboot 

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

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

碟盤設置

首先,按你喜好的分割方式設定你的碟盤。你可選用任何格式:RAID、LVM、等……請記下你的碟盤設置,因為你在設定 grub、menu.lst 及 fstab 時需要它。採用 RAID、LVM、或其它格式所需的設置將會多於本指南所引述的。為求保持範例簡單,我們會使用單一碟盤,並利用 fdisk 設置三個分割區。舉個例:

# fdisk /dev/sda

/dev/sda1/dev/sda3 的分割區類型將會是 ext2/dev/sda2 的分割區類型將會是 swap。它們會個別按類型進行格式化:

# mkfs /dev/sda1
# mkfs /dev/sda3
# mkswap /dev/sda2

你也可選擇在那二個存放數據的分割區上設定採用 ext2ext3 日誌延伸,但你亦可在初始化安裝後才利用 tune2fs 指令來進行這項設定。

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

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

設置 RPM

視乎你所採用的主機操作系統,你可能需要在主機的操作系統上初始化 rpm 的資料庫

# rpm --initdb

??? 問:這裡在說甚麼?在不明白主機的操作系統為何需要一個 RPM 資料庫。 RussHerrold

現在掛載套件的來源。這個範例採用的是 CentOS 安裝光碟,而光碟的碟盤位於 /dev/hdc

# mkdir /source
# mount /dev/hdc /source

請使用以下指令來安裝套件:

# rpm --root /target -i (一個或多個套件的完整路徑)

提示:你可暫時把它放在指令殼內:# alias INSTALL='rpm --root /target -i '

安裝基本系統

請利用指令殼的 tab 來自動完成套件的名稱。這些指令刻意去除套件的版本,好讓它們能適用於不同版本。

讓我們安裝一些基本套件(請記得,這個範例假設你設立了簡稱:INSTALL = rpm --root /target -i

# INSTALL setup basesystem filesystem

先安裝 bash,因為 post-install 腳本需要它

# INSTALL bash glibc glibc-common termcap libgcc tzdata mktemp libtermcap

安裝一些依賴性套件(目的是要令下個指令較簡潔)

# INSTALL grep pcre libstdc++ info ncurses zlib gawk sed ethtool

安裝系統的主要部份

# INSTALL coreutils libselinux libacl libattr pam audit-libs cracklib-dicts cracklib libsepol mcstrans libcap chkconfig python db4 openssl readline bzip2-libs gdbm findutils krb5-libs initscripts util-linux popt udev MAKEDEV centos-release shadow-utils keyutils-libs iproute sysfsutils SysVinit net-tools module-init-tools e2fsprogs e2fsprogs-libs glib2 mingetty device-mapper sysklogd psmisc centos-release-notes procps libsysfs iputils

安裝套件管理員

# INSTALL rpm beecrypt elfutils-libelf rpm-libs sqlite

安裝 YUM

# INSTALL yum python-elementtree rpm-python yum-metadata-parser python-sqlite expat libxml2 python-urlgrabber m2crypto python-iniparse

你也許會想安裝一個慣用的編輯器

# INSTALL nano

這個套件安放預設值在主目錄,例如為 ls 加上顏色

# INSTALL rootfiles

設定新系統

此刻,你已擁有一個可經由 chroot 進入的系統,所以我們可著手進行基本設定

掛載目錄供 chroot 採用:

# mount --bind /dev /target/dev
# mount -t proc none /target/proc
# mount -t sysfs none /target/sys
# chroot /target

建立 /etc/shadow

# pwconv

設定 fstab

# nano -w /etc/fstab

安裝內核。由於來源套件並未掛載在 /target 目錄樹內,你必須在 chroot 以外的主機操作系統上進行。只要更改光碟掛載的位置,便沒有這個必要。

# exit
# INSTALL kernel mkinitrd cpio device-mapper-multipath dmraid gzip kpartx lvm2 nash tar less device-mapper-event

安裝開機程式 —— grub。

# INSTALL grub diffutils redhat-logos

再度進入 chroot 為新的安裝設定開機程式

# chroot /target

我們可以先設定開機程式。開啟 /boot/grub/menu.lst,然後放入以下內容:

timeout 5
default 0

# (0) CentOS
title CentOS
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5 root=/dev/sda3 ro
initrd /initrd-2.6.18-92.el5.img

??? 問題:採用 menu.lst 並非 CentOS 的做法,因為它有別於 Debian,採用 grub.conf。這裡必須乎合 CentOS 的慣例。 RussHerrold

請把上述範例中的內核版本改為你實際安裝的版本。

要是這個指令輸出錯誤報告,你可以安全地忽視它,因為它並不重要。

??? 問題:錯誤報告是有意思的,而上述的萬用解釋明顯是錯的。請規限及糾正這個斷定。 RussHerrold

重要的就是 grub-install 正確地把開機時所需的檔案複製至 /boot/grub/

??? 問題:再一次,範例中的 menu.lst 所指的目錄差不多肯定是 /boot/ 。這些必須被測試及糾正。 RussHerrold

# /sbin/grub-install /dev/sda

要是上一步失敗了,請以手動方式安裝 grub —— 即是在 grub 的指令殼輸入:

# grub
#- root (hd0,0)
#- setup (hd0)

可選套件

你也許會想安裝 passwd,還有 shadow passwd utilities 來設定密碼

# INSTALL passwd libuser openldap cyrus-sasl-lib

這些是用來設定鍵盤語言(loadkeys)

# INSTALL kbd usermode

安裝後的提示

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

系統設定

很多系統設定都放置在 /etc/sysconfig。請閱讀

/usr/share/doc/initscripts

內的完整文檔。

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

網絡

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

rpmdb: unable to lock mutex: Invalid argument

要是你採用的主機操作系統有不同的 db 版本,rpm 將會投訴 rpmdb: unable to lock mutex: Invalid argument。以下方法重建 RPM 資料庫,並儘可能保留原有的內容

# rpmdb --rebuilddb -vv

Translation of revision 12

zh-tw/HowTos/ManualInstall (last edited 2012-10-11 05:12:47 by TimothyLee)