>

Arch Linux 介绍

Arch Linux 是 Linux 的一种发行版,它遵循 Arch之道(The Arch Way),核心理念就是 KISS 原则(Keep It Simple, Stupid)。

基于这个原则,Arch Linux 系统在安装时只会安装最基础的软件包,用户可以根据自己的需要在系统安装完成之后自行安装其他软件包,这样就把系统做到尽可能的精简。

Arch Linux 提供了一个非常好用的软件管理工具 pacman,所有的软件都可以通过 pacman 来进行管理(下载,安装,升级,卸载等)。而且, Arch Linux 一个很大的特点就是软件包非常新,Arch Linux 总是第一时间尝试新的软件,比如最新的内核等。另外,Arch 的 AUR 仓库包含大量软件包,只需一个 makepkg 命令即可构建,非常方便。

Arch 采用滚动更新的方式,不像其他系统那样有发行的版本(比如 Windows 7, Windows 10, Ubuntu 12.04, Ubuntu 16.04等等),系统一旦安装,就不再需要重装,因为一旦系统中的某个库或者核心包有了更新, Arch Linux 的软件厂库就会把它加入升级,通过 pacman 系统可以随时得到最新的升级,而无需重装一个新的系统。

下载安装 Arch ISO

https://archlinux.org/download/

1、引导安装介质
进入 BIOS 进行修改引导顺序,将安装介质调至第一引导顺序,保存设置并重启。
进入BIOS的方式已知的有:开机时按下 [Delete]、[F1]、[F2]、[F11] 或 [F12] 键。
使用引导菜单引导安装介质。引导菜单调出方式已知的有:开机时按下[Esc]、[F8]、[F9] 键或 [F12] 键。

2、出现引导界面,选择 Boot Arch Linux 并回车。

3、进入系统之后,检查是否开启 UEFI 模式
主板是否支持UEFI以及UEFI模式是否开启会影响安装方式。

# mount -t efivarfs efivarfs /sys/firmware/efi/efivars # 若已挂载则无视
# efivar -l

若 Arch Linux 是以 UEFI 模式启动的, 则 efivar 会正确地列出UEFI变量

分区

1、查看硬盘,lsblk
这个命令可以列出机器上所有的硬盘和分区情况。

如果本机只有一块硬盘,那么就是 /dev/sda, 如果有第二块、第三块硬盘,那么就是 /dev/sdb, /dev/sdc, 以此类推。
每块硬盘的不同分区用数字标示,比如 sda1, sda2, sda3 依次递增。

2、确定使用何种分区格式(MBR 还是 GPT),还需要确定需要几个分区。
分区的要求是至少要有一个分区。通常,我们会划分3个,分别为 /boot, / , /home。
通常, /boot 通常只需要大概 100 MB 大小就足够了,/home 分区会存储所有用户的数据,需要足够大!然后把剩余的容量划分到 根目录 / 分区。
另外,若安装目标内存 ≤ 2GB,建议添加一个swap分区, swap分区的大小一般建议为内存的2倍。如果内存超过2G,则可以不必使用swap分区。如果内存大于8G的话,可以不设置 swap 分区。

简单来说,如何安排分区,取决于每个人如何规划。现在假设硬盘120 G,可以大致参考下面的方案:

/dev/sda1  100 MB  /boot  物理分区
/dev/sda2  40G     /      物理分区
/dev/sda3  60G     /home  物理分区
/dev/sda4  8G      swap   物理分区

3、确定好分区方案之后,使用 cfdisk 或者 parted 进行分区(cfdisk 是可视化的,更加方便一些),下面是常用的几个分区工具的比较:
(1). cfdisk
cfdisk是一个漂亮的程序,它只接受最严谨的分区表, 而且它能生成高质量的分区表。如果可能,你最好使用这个程序。最大的亮点就是使用方便,字符界面下的交互界面很好。
(2). fdisk
这个是很多人一开始都会使用的工具,据说是一个有很多bug的分区工具软件(我用了很久,也没有发现过 bug,或许现在已经完善了)。 它所做的操作是模糊不清的,通常在碰巧的情况下它才会正常的运行(据说)。 它唯一值得使用的地方是它对 BSD 的磁盘标签和非 DOS 的分区表有所支持, 尽量少用这个程序(据说,我没有任何证据正名它是不行的)。
(3). sfdisk
是一个专为黑客提供的程序,它的用户界面很不友善,但它更精确,也比 fdisk 和 cfdisk更有效。另外,它只能以非交互的方式运行。我基本上只用在使用它看分区表。

直接执行 cfdisk 或者 cfdisk /dev/sda 来进行硬盘分区,会出现如下所示界面,选择 dos, 然后根据提示操作即可。

按照上述规划, sda1 作为 /boot 分区, sda2 作为 / 分区, sda3 作为 /home 分区, sda4 作为 swap 分区

4、分区完成之后,就需要对分区进行格式化来创建文件系统、同时,创建并激活 swap 分区(mkswap,swapon)
ArchLinux 支持许多文件系统,比如 FAT, ext4, btrfs 等等。如果对文件系统没有概念,那么推荐使用 ext4,这个是 archlinux 下最常见的文件系统。 btrfs 据说对 SSD 有优化。

Arch Linux 自带了不同的格式化工具,他们均在 /usr/bin 目录下

# ls -1 /usr/bin/ | grep -E 'mkfs|mkswap'...
mkfs.ext4*    # ext4 格式化工具...
mkfs.fat*     # fat 格式化工具...
mkswap*       # swap 格式化工具

下面对所有分区进行格式化:

1
2
3
4
5
# mkfs.exr4 /dev/sda1
# mkfs.ext4 /dev/sda2
# mkfs.ext4 /dev/sda3
# mkswap /dev/sda4
# swapon /dev/sda4

注意:对 swap 分区的创建是使用 mkswap 命令,而且创建完成之后还需要执行 swapon 命令进行激活。这样的目的是为了让 genfstab 能生成 fstab 时包含swap分区

四、进行系统安装 Installation

1、挂载新分区
分区格式化完成之后,文件系统就已经建立完毕。这时候就需要把分区挂载到系统中。
执行 mount 命令进行挂载,命令格式是: mount <设备名> <挂载点>。需要注意挂载顺序,根目录 / 需要最先挂载。
根目录挂载完之后,需要创建其他挂载点(也即根目录下的子目录,比如 /home,/boot 等),然后依次挂载。

1
2
3
4
mount /dev/sda2 /mnt
mkdir /mnt/{boot,home}
mount /dev/sda1 /mnt/boot
mount /dev/sda3 /mnt/home

swap 分区无需进行挂载, 其不属于文件系统。

2、选择更新源

1
2
3
sed -i "s/^\b/#/g" /etc/pacman.d/mirrorlist
nano /etc/pacman.d/mirrorlist
pacman -Syy

3、安装基础系统
选项 -i 是用来选择确认,也可以去掉,直接一步完成。

# pacstrap -i /mnt base base-devel

4、生成 fstab 并检查 fstab 是否正确
选项 -U 是用来指定 uuid 格式。

# genfstab -U -p /mnt >> /mnt/etc/fstab
# cat /mnt/etc/fstab

参考检查项:
对于每一行的最后一部分 ,/ 分区应该为 1,其他分区为 2。
btrfs 分区(无论是否为 / 分区)及 swap 分区的应该为 0。
若发现错误,直接对 fstab 进行修正,勿再次执行 genfstab。

注意:这里使用的是UUID,如果不加-U,那么在 fstab中记录的就是 /dev/sdX 之类的地址了,UUID 的方式更加好,为什么呢?请自行wiki。

fstab 大致内容如下:

[root@arch ~]# cat /etc/fstab
# 
# /etc/fstab: static file system information
#
# <file system> <dir>   <type>  <options>   <dump>  <pass>
/dev/sda1   UUID=8084711b-2eab-4da8-aef2-0c9e8f4cbf70 /boot ext4 rw,relatime,data=ordered    0 2
/dev/sda2   UUID=66456dcc-5f5f-49a6-96a6-536f736eccb6   /   ext4 rw,relatime,data=ordered    0 2
/dev/sda3   UUID=d6fb3286-aeff-4c72-b91c-14ca22e1db08 /home ext4 rw,relatime,data=ordered    0 2
/dev/sda4   UUID=06f7e8e8-6323-4eff-918f-2fb6c004322d  none swap defaults 0 0

五、配置基础系统

1、进入新系统
首先使用 chroot 进入已经部署好的基本系统,关于 chroot 的知识,点击进入

# arch-chroot /mnt/bin/bash
# alias ls='ls --color'

2、Locale
Locale 决定了软件使用的语言、书写习惯和字符集

需要编辑两个文件:locale.genlocale.conf。 /etc/locale.gen 是一个仅包含注释文档的文本文件。指定您需要的本地化类型,只需移除对应行前面的注释符号(#)即可,请选择帶 UTF-8的项,使用 vi 打开并编辑 /etc/locale.gen 文件,解开以下三项的注释:

en_US.UTF-8 UTF-8  
zh_CN.UTF-8 UTF-8  
zh_TW.UTF-8 UTF-8

实际操作中,除了上面三行内容外,其它内容都可以删除。然后执行locale-gen 以生成 locale 信息:

$ locale-gen  

创建 locale.conf 并提交我们的本地化选项:

$ echo LANG=en_US.UTF-8 > /etc/locale.conf 

简体中文用户可执行:

# sed -i '/zh_CN.UTF-8/{s/#//}' /etc/locale.gen
# locale-gen
# echo LANG=zh_CN.UTF-8  > /etc/locale.conf

如果不安装桌面环境,使用 en_US.UTF-8 即可。

2.设置console

编辑 /etc/vconsole.conf,然后输入如下内容:

KEYMAP=us
FONT=

3、设置时区
可用的时区全集中在 /usr/share/Zone/SubZone 目录中,所以要查看可用时区,直接浏览 /usr/share/zhoninfo 即可。
将 /etc/localtime 软链接到 /usr/share/zoneinfo/Zone/SubZone,这里采用上海的时区:
中国大陆用户可执行:

# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# ln -s /usr/share/zoneinfo/<时区>/<子时区> /etc/localtime

硬件时间
使用 utc 时间

# hwclock --systohc --utc

自动校对时间

# pacman -S ntp
# systemctl enable ntpd

4、主机名
设置主机名

# echo <主机名> > /etc/hostname

5、创建ramdisk环境

# mkinitcpio -p linux

6、为 root 设置密码

# passwd

7、添加用户
添加一个用户并把它添加进 wheel 组,通常 wheel 组具有 sudo 权限。

# useradd -m -g users -G wheel -s /bin/bash alex
# passwd alex

8、配置 sudo

# pacman -S sudo
# visudo

删去 wheel 组前面的注释,把其权限开放出来。

# %wheel ALL=(ALL) ALL

9、配置网络 networkmanager

# papcman -S networkmanager
# systemctl enable NetworkManager

网络工具,有线和无线

pacman -S dhcpcd wpa_supplicant dialog

为了使开机就有网络,需设置dhcpcd开机自启动

systemctl enable dhcpcd

六、安装引导器 bootloader

(1)对于BIOS用户,这里推荐使用GRUB
BIOS + MBR:

# pacman -S grub (os-prober # 启动 win + linux 双系统)
# grub-install --target=i386-pc --recheck /dev/sda

生成默认配置文件

# grub-mkconfig –o /boot/grub/grub.cfg

注意:这里不需要指明 sda1、2之类的,直接指定硬盘即可。

(2)使用UEFI的用户,现在的启动器是system-boot,是直接用systemd来启动系统。
UEFI:

只需要运行如下命令:

bootctl install

虽然换成了system-boot,但是配置依旧少不了。
首先我们需要在/boot/loader/entries文件夹中创建名为arch.conf的配置文件,命令:

nano /boot/loader/entries/arch.conf
然后添加如下内容:

title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/sda2 rw

注意:root部分可以填写UUID,执行blkid可查看分区的UUID。但是为了图方面,我就直接用路径代替了,sda3即为root分区,各位需要根据自己的分区情况自行决定。

接下来需要配置 /boot/loader/loader.conf,这个文件有默认的内容,只需要修改下即可。

timeout 3
default arch

注:timeout 3指的是系统开机后的等待时间,按以上设置会出现一个开机启动菜单,3指的是等待3秒让我们选择,不过本人希望更快一点,故本人直接设置为0

# mount -t efivarfs efivarfs /sys/firmware/efi/efivars # 若已挂载则无视
# pacman -S grub efibootmgr
# grub-install --target=x86_64-efi --efi-directory=/boot/EFI --bootloader-id=arch_grub --reche

生成配置文件:

# grub-mkconfig -o /boot/grub/grub.cfg

七、退出安装环境

执行下列命令

#exit
#umount -R /mnt
#reboot

至此,这样一个完全可用的 Arch Linux 就安装完成了,如下图:

当然安装好系统只是第一步,还有很多需要我们学习。

八 声音管理

某些桌面环境亦提供了声音控制功能。若此时跳过本节,亦可稍后进行设置。
Arch Linux默认开启了声音支持,默认静音。用户可通过下列命令取消静音:
1、安装 alsa-utils

# pacman -S alsa-utils

2、配置

#alsamixer

方向键 选中 Master 和 PCM
[M] 取消静音

九、配置图形用户界面

1、安装显卡驱动
确定显卡型号:

$ lspci | grep VGA

对应驱动包:
Intel 显卡:xf86-video-intel
nVidia 显卡:
GeForce 7 以上:xf86-video-nouveau;nvidia
GeForce 6/7:xf86-video-nouveau;nvidia-304xx
AMD/ATI 显卡:
开源驱动:xf86-video-ati

2、安装驱动

# pacman -S 驱动

如果是在 virtualbox 中安装 archlinux,需要把 kernel 模块加上。

# pacman -S linux-headers
# pacman -S virtualbox-guest-utils

添加进模块

# modprobe -a vboxguest vboxsf vboxvideo

创建一个模块配置文件,比如取名为 vbox.conf,然后编辑该文件,添加下列三行,

vboxguest
vboxsf
vboxvideo

3、安装 X 窗口系统
3.1 安装 Xorg Server

#pacman -S xorg-server xorg-server-utils xorg-xinit

3.2 安装3D支持

#pacman -S mesa

3.3 添加触摸板支持

# pacman -S xf86-input-synaptics

3.4 安装字体
Dejavu 和文泉驿-微米黑

# pacman -S ttf-dejavu wqy-microhei

4、安装桌面环境
Arch Linux 有许多桌面环境可供选择:Cinnamon(gnome-terminal)、GNOME(gnome-extra)、KDE、LXDE、Xfce。
https://wiki.archlinux.org/index.php/Desktop_environment

# pacman -S cinnamon (gnome-terminal)

或者

# pacman -S xfce4

安装附加功能:

# pacman -S xfce4-goodies

5、启动桌面环境(显示管理器)
安装 lightdm

#pacman -S lightdm lightdm-gtk3-greeter或lightdm-gtk2-greeter(#安装cinnamon时,使用gtk3)
#systemctl enable lightdm

6、安装输入法(fcitx)
安装

#pacman -S fcitx-im

配置:

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

KDM、GDM、LightDM 等显示管理器的用户,向 ~/.xprofile添加以上内容。
使用 startx 或 slim 的用户,向 ~/.xinitrc 添加以上内容。

参考

https://wiki.archlinux.org/index.php/Installation_guide_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)


如果你对我的文章感兴趣,欢迎留言或者关注我的专栏。

微信公众号:“知辉”

搜索“deliverit”或

扫描二维码