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)