这篇文章似乎被忽略,因此必须被分类为创建中 —— 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
你也可选择在那二个存放数据的分区上设置采用 ext2 的 ext3 日志扩展,但你亦可在初始化安装后才利用 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
