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 格式化工具
下面对所有分区进行格式化:
# 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 等),然后依次挂载。
mount /dev/sda2 /mnt
mkdir /mnt/{boot,home}
mount /dev/sda1 /mnt/boot
mount /dev/sda3 /mnt/home
swap 分区无需进行挂载, 其不属于文件系统。
2、选择更新源
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
参考检查项:
对于每一行的最后一部分 <pass> ,/ 分区应该为 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.gen
与 locale.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)