教程以VBox为实验平台,系统以Gentoo Linux和Arch Linux为例,因为他们的官方文档比较齐全,遇到不懂的地方,你可以去官方寻找答案。
/*****************************************************
* Linux系统通用安装教程之手动安装全指导——文字版 *
*****************************************************/
一、安装过程概览
1,从可移动设备或硬盘启动工作系统
2,配置工作系统的网络
3,给硬盘分区并格式化分区
4,放置文件系统
5,安装一些必须的软件
6,配置宿主系统
7,安装并配置引导器(Bootloader)
8,卸载文件系统并重启
二、安装开始
1 ——> 选择合适的宿主系统并启动工作系统
你有很多种安装方案。前提是你要有一个工作系统的LiveCD镜像文件。你可以从网易开源镜像站获取,或者从清华大学开源镜像站获取,或者从中国科技大学开源镜像站获取。
第一种方案:从LiveCD启动。(本人推荐采用这种方式,因为简单、稳定)
你需要将下载好的镜像文件刻录到CD-R光盘或CD-RW光盘上,然后从光盘启动。
第二种方案:从LiveUSB启动。(这种方式比较适合老鸟,我是一个LiveUSB极客,我不推荐新手这样做)
你需要用Syslinux4dos或grub4dos将U盘、MP3、MP4或SD卡等可移动设备做成启动盘,然后配置相关的启动文件从而引导工作系统。
这方面的资料可以直接从网上搜索,就类似于从U盘安装Linux系统的资料。我本人建议老鸟用Slax安装Gentoo,对于Arch暂时没有研究出,你可以从网上查找相关资料。
第三种方案:从硬盘启动。(此方案与LiveUSB方案类似,不再赘述)
2 ——> 选择并配置与网络相关的信息
在Gentoo中配置网络:
1 net-setup eth0
2 # 一直按回车,然后重复一下这个命令
3
4 ifconfig
5 # 查看是否获得IP地址了
6
7 ping baidu.com
8 # 测试网络是否能ping通外网
在Arch中配置网络,还要配置软件源的快的镜像:
1 dhcpcd eth0
2 # 通过DHCP客户端获得IP地址
3
4 wifi-menu
5 # 通过Wi-Fi扫描并连接到无线局域网
6
7 ifconfig
8 # 查看网络连通状态
9
10 ping baidu.com
11 # 测试能否连通外网
12
13 # 配置镜像列表是Arch的重要步骤,这一点与Gentoo有明显的区别
14
15 vi /etc/pacman.d/mirrorlist 或 nano /etc/pacman.d/mirrorlist
16 # 编辑Arch软件仓库的镜像列表,在第一个## Score:上面添加软件源的网易镜像站
17 # 复制这两行到第一个## Score 的上面
18 ## Score: 5.8,China
19 Server = http://mirrors.163.com/archlinux/$repo/os/$arch
20 (Arch官方测得网易镜像站速度的得分为5.8,由于我们是在中国,所以把网易镜像站的这两行写到第一个吧。)
3 ——> 给硬盘分区并格式化分区
使用分区命令fdisk:
1 fdisk -l
2 # 获知你的硬盘的设备名
3
4 fdisk /dev/sd*
5 # 格式化硬盘。。以下是使用fdisk的相关命令
6
7 m
8 # 获得帮助信息
9
10 d
11 # 删除指定的分区
12
13 n
14 # 从空白区新建分区
使用分区命令cfdisk:(由于cfdisk具有易操作的界面,在此不再介绍此命令,你可以从网上或书上查找使用方法。)
分区方案:
= 建议分4个主分区 =
第一个分区作为boot分区,size不超过200M,(因为内核及内核模块的size是不会超过这个量的)
第二个分区作为根分区,size不小于4G,(如果是用的是虚拟机并且不安装桌面环境,可以小于4G)
第三个分区作为备用分区,size根据需要而定,(如果要安装双系统,这个分区是很有必要保存的,而且先不要格式化)
第四个分区作为交换分区,size一般不小于1G。(如果实际内存为4G或4G以上,甚至是个人用的情况下,可以不创建交换分区)
格式化分区:
1 mkfs -t ext2 /dev/sd*1 或 mke2fs /dev/sd*1
2 # 格式化第一分区为EXT2文件系统
3
4 mkfs -t ext3 /dev/sd*2 或 mke2fs -j /dev/sd*2
5 # 格式化第二分区为EXT3文件系统
6
7 # 第三分区备用,暂时不格式化
8
9 mkswap /dev/sd*4
10 # 格式化第四分区为交换分区
4 ——> 挂载文件系统并装载必要的文件
在Gentoo中挂载文件系统:
1 mount /dev/sd*2 /mnt/gentoo
2 # 挂载/dev/sd*2到/mnt/gentoo目录并定为宿主系统的 / 分区
3
4 mkdir /mnt/gentoo/boot
5
6 mount /dev/sd*1 /mnt/gentoo/boot
7 # 挂载/dev/sd*1到/mnt/gentoo/boot目录设为宿主系统的 /boot分区
8
9 swapon /dev/sd*4
10 # 激活交换分区
在Arch中挂载文件系统:
1 # 步骤与Gentoo的一致,只是挂载的工作目录不同,注意区别
2
3 mount /dev/sd*2 /mnt
4
5 mkdir /mnt/boot
6
7 mount /dev/sd*1 /mnt/boot
8
9 swapon /dev/sd*4
装载系统文件:
Gentoo比较特别,Gentoo的Portage树是一直稳定更新的,Gentoo还把基本的系统和Portage树打包成快照上传到各大镜像站中了。如下是装载过程:
1 cd /mnt/gentoo
2 # 进入宿主系统的根目录
3
4 wget http://mirrors.163.com/gentoo/releases/x86/current-stage3/stage3-i686-*.tar.bz2
5 # 下载基本的系统的快照
6
7 tar xjpf stage3*
8 # 解压快照
9
10 cd /mnt/gentoo/usr
11 # 进入/mnt/gentoo/usr目录
12
13 wget http://mirrors.163.com/gentoo/snapshots/portage-latest.tar.bz2
14 # 下载新的Portage快照
15
16 tar xjf portage-latest*
17 # 解压Portage快照
Arch的方式是简单的,一个命令就搞定了。如下是具体过程:
1 pacstrap /mnt base base-devel grub-bios
2 # 安装基本的系统、编译工具和启动引导器到宿主系统
5 ——> 进入宿主系统环境并安装一些必须的软件
Gentoo进入宿主系统环境之前需要设置正确的时间,还要挂载设备目录/dev和虚拟文件系统目录/proc,要做一些准备工作。如下是详细过程:
1 cd /
2
3 date MMDDhhmmYY
4 # 设置时间
5
6 mount -t proc proc /mnt/gentoo/proc
7
8 mount -o bind /dev /mnt/gentoo/dev
9
10 cp -L /etc/resolv.conf /mnt/gentoo/etc/
11
12 chroot /mnt/gentoo /bin/bash
13
14 env-update && source /etc/profile
15
16 # 挂载/proc 和 /dev文件系统,拷贝/etc/resolv.conf文件,然后切换到你的宿主系统的环境。
Arch和Gentoo的这一步差不多,先生成宿主系统的fstab文件,任何用Arch的arch-chroot脚本可以直接进入宿主环境。如下是详细过程:
1 cd /
2
3 data MMDDhhmmYYYY
4 # 设置时间
5
6 genfstab -p /mnt >> /mnt/etc/fstab
7 # 生成fstab文件
8
9 arch-chroot /mnt
10 # 切换到宿主系统的环境
安装软件就大同小异了。基本上都是利用包管理器从官方的软件仓库下载安装所需的软件。如下是Gentoo和Arch的对比:
1 # Gentoo的比较简单,用emerge进行包的管理。
2
3 emerge -sync
4 #先更新一下Portage树,虽然下载了新的Portage树的快照,但还是建议你与官方同步一下。
5
6 emerge less nano syslog-ng vixie-cron dhcpcd ppp os-prober mirrorselect
7 # 先安装的是编辑器、阅读器、系统管理工具和网络连接工具,这些是必要的软件。
8
9 pacman -Syy
10 # 传入两个-y会强制pacman刷新所有软件包列表。一般情况下,只要源有了更改,就应该使用 pacman -Syy 命令。
11
12 pacman -S os-prober dialog wireless_tools ifplugd
13 # Arch自带了基本的系统工具,安装这几个就行了
6 ——> 配置系统
Gentoo和Arch甚至和其他发行版的配置步骤几乎是一致的,以下合并两者的步骤:
设置时区:
1 cp /usr/share/zoneinfo/Asia/Hong_kong /etc/localtime
2 # 以香港时区为中国本地时区
3
4 # 如果你想用世界时间作为本地时间,我建议你复制伦敦时区
5 cp /usr/share/zoneinfo/Europe/London /etc/localtime
6
7 hwclock --systohc --utc
8 # 设置硬件时钟为UTC
设置主机名和域名:
1 cd /etc
2
3 echo 你的主机名 > /etc/hostname
4 # 对于Arch来说这样就行了,Gentoo官方给的步骤太多了。
5 # 如果出现了问题,你就按情况根据官方的步骤做吧。
配置宿主系统的网络:
之前的配置网络那部分是为下载文件而配置的,现在是为宿主系统开机自动连接网络而配置,Arch与Gentoo略有不同。
1 mirrorselect -i -o >> /etc/make.conf
2 # 在Gentoo中选择网易镜像站和搜狐镜像站作为Portage的软件源
3
4 nano -w /etc/conf.d/net
5 # /etc/conf.d/net当中收集了所有的网络信息。
6 # 编辑这个文件配置连接到网络的方式,你可以添加config_eth0=("dhcp")到该文件中,让eth0自动获得IP地址。
7
8 # Arch可以跳过这一步,Arch基本上是从工作系统的获取网络配置信息的
配置开机启动项:
1 # 要想使宿主系统开机就启动网络等服务,必须将其设为默认开机启动服务
2
3 ln -s /etc/init.d/net.lo /etc/init.d/net.eth0
4 # net.eth0是映射到eth0网卡的服务,Gentoo在/etc/init.d目录中是没有net.eth0这个文件的。
5 # 这一步必须要做的
6
7 rc-update add net.eth0 default
8
9 rc-update add syslog-ng default
10
11 rc-update add vixie-cron default
12
13 # 下面配置Arch的网络
14 ln -s /etc/network.d/examples/ /etc/network.d/ethernet-dhcp
15
16 systemctl enable net-auto-wired.service
17 # 设置开机启动有线网络
配置内核映像:
Gentoo需要自行编译内核文件,而且Gentoo的快速安装指南并没有详细介绍,建议你阅读官方的内核配置文档。以下是二者的配置过程:
1 # Gentoo编译内核简略过程
2
3 echo 'MAKEOPTS="-j3"' >> /etc/make.conf
4 # 这一步加速用emerge编译安装软件的过程,内核源码size比较大。
5
6 emerge gentoo-sources
7 # 下载并安装内核内核源码,这里只是下载内核源码和补丁包。
8
9 emerge genkernel
10
11 # genkernel是使用类似安装光盘中的内核配置来配置内核的
12 # 如果你不清楚如何配置内核选项,我建议你用genkernel
13
14 zcat /proc/config.gz > /usr/share/genkernel/arch/x86/kernel-config
15 # 复制安装光盘上的内核配置文件到genkernel搜索配置文件的默认位置。
16
17 genkernel --menuconfig all
18 # 如果你的内存size不小于4G,我建议你还是进入内核选项启用"High Memory Support (64G)"。
19 # 若要了解其他的必要的选项,建议你阅读官方文档。
20
21 # Arch仍然保持其KISS原则,一条命令就搞定
22
23 mkinitcpio -p linux
24 # 这一步创建initramfs内核映像,它是启动时供内核读取的压缩镜像。
25 # 目的是引导系统使其能够读取根文件系统。
配置fstab文件:
1 # Gentoo与Arch在一步保持一致,这是必不可少的一步。
2
3 vi /etc/fstab 或 nano /etc/fstab
4 # 编辑fstab文件,设置挂载文件系统的类型。
5
6 # 以下是内容示例
7 /dev/sd*1 /boot ext2 defaults,noatime 1 2
8 /dev/sd*2 / ext3 defaults,noatime 0 0
9 /dev/sd*4 none swap defaults 0 1
10 /dev/sr0 /mnt/cd auto noauto,user 0 0
7 ——> 安装并配置grub到宿主系统
grub是众所周知的启动引导器(Bootloader)之一。它大的优点就是可以引导不同分区下的多个系统。Gentoo和Arch在这一步也是不同的。以下是二者区别:
Gentoo安装并配置grub:
1 emerge grub
2 # 下载并安装grub
3
4 grub
5 # 进入grub配置界面
6
7 grub> root (hd0,0)
8 # 注意,这里的root定位于内核映像所在的分区。即/boot分区。
9
10 grub> setup (hd0)
11 # 注意,这一步是安装grub到/boot/grub目录。
12
13 grub> quit
14
15 # 接下来编辑grub的配置文件并保存
16
17 vi /boot/grub/grub.conf 或 nano /boot/grub/grub.conf
18
19 # 下面是示例内容
20
21 default 0
22 # 默认选择哪个列表来引导。0表示第一个, 1表示第二个,以此类推。
23
24 timeout 30
25 # 在启动选项列表的停留时间(单位是秒)
26 splashimage=(hd0,0)/boot/grub/splash.xpm.gz
27
28 title Gentoo Linux
29 root (hd0,0)
30 kernel /boot/你的内核文件 root=/dev/sd*2 vga=791
31 initrd /boot/你的文件系统映像文(即initramfs映像)
32
33 # 以下是双系统用户所需的内容,但是前提是你的Windows系统在第三个分区
34 title Microsoft Windows
35 rootnoverify (hd0,2)
36 makeactive
37 chainloader +1
Arch安装并配置grub:
1 # 安装软件的那一步已经安装了grub-bios,Arch配置
2
3 grub-install --recheck /dev/sd*
4 # 注意,这一步非常重要,而且容易出错,是安装到/dev/sd*,不是/dev/sd*1
5
6 # 我之前安装os-prober的目的是让grub自己搜索其他的系统。现在要用到了。
7
8 grub-mkconfig -o /boot/grub/grub.cfg
9 # 这一步自动生成配置文件。
8 ——> 卸载宿主系统的文件系统并重启电脑
终于配置完成了,现在做一些善后工作。
1 exit
2 # 先退出宿主环境
3
4 cd /
5
6 umount /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo/boot /mnt/gentoo
7 # Gentoo可以这样直接卸载宿主系统的文件系统
8
9 # Arch需要先复制一个脚本
10
11 cp /usr/bin/wifi-menu /mnt/usr/bin/
12 # 这就是那个用来连接Wi-Fi的脚本,很有用的。
13
14 umount /mnt/boot /mnt
15 # 卸载宿主系统
16
17 reboot
18 # 重启
三、总结
实际上,安装任何系统都没有Gentoo复杂。也许你会说LFS,但是LFS不是发行版,没有包管理器,没有安装脚本,甚至没有通用安装教程。所以,本篇总结安装Gentoo和Arch的教程可以作为通用的Linux安装教程。
安装步骤无非就是以上那8个步骤。重要的是,一方面,你要会用常用的命令: cd cp vi nano less exit reboot poweroff ls cat echo 等等;另一方面,你要学会自己从网上找帮助。
好了,如果你还不熟练,可以重新安装几次。以本教程为指导,你要多动手多动脑,把基础打牢。