寫在前面
本文首發(fā)于我的博客
更新修改的內(nèi)容第一時間不會同步到簡書,敬請各位移步博客原文https://www.viseator.com/2017/05/17/arch_install/查看或評論
這可能是你能找到的最適合你的中文
ArchLinux安裝教程。
前幾天硬盤掛了,萬幸的是家目錄放在了另一塊硬盤上所以存活了下來。不得不再重裝一遍Arch,算上幫朋友裝的,這已經(jīng)是我第四次安裝Arch了。也想借此機會記錄這個過程寫一篇完全按照官方Wiki指導(dǎo)再加上Wiki上沒有重點寫出來但是安裝過程中會遇到的一些問題的一篇不太一樣的安裝教程。
很多人提起起Arch的第一反應(yīng)就是安裝困難,這種困難有很多原因,也就是接下來我們將會面對的問題。
- 沒有圖形界面的引導(dǎo):
Arch只給我們提供了一個最小的環(huán)境,所有的安裝操作都需要在命令行中完成,這對于不習(xí)慣命令行操作的人來說是最難以跨越的一個坎。許多發(fā)行版之所以可以流行開來就是因為他們提供了友好的、流程化的安裝過程,這幫很多人解決了學(xué)習(xí)Linux的第一步:安裝一個Linux。 - 預(yù)備知識的不足與缺乏查找并解決問題的能力:一些對于安裝系統(tǒng)比較重要的知識例如系統(tǒng)引導(dǎo)、配置文件的編輯、簡單的命令行操作等沒有接觸過,所以操作時往往摸不著頭腦,一旦自己的操作結(jié)果與教程不符便不知道如何去解決遇到的問題。
- 缺乏合適的教程:安裝Arch最好的也是最完備的教程就是官方的Installation guide與Wiki,雖然部分內(nèi)容有中文版,但是中文的翻譯有些時候會落后于英文版,不推薦完全依賴于中文Wiki。并且官方Wiki的寫作方式更偏向于文檔,沒有我們所習(xí)慣的按步驟編排的安裝過程,給不熟悉這種寫作方式的同學(xué)造成了閱讀與使用上的困難。國內(nèi)的可以找到的教程往往都是時間比較久遠,或是沒有提及或是忽略了一些新手容易犯錯誤的地方。
本篇教程致力于與現(xiàn)有的Wiki保持一致,并且適當?shù)丶尤胍恍┻m合初學(xué)者學(xué)習(xí)的鏈接,希望可以讓閱讀了這篇教程的同學(xué)可以提高自己利用現(xiàn)有及以后可能出現(xiàn)的新的Wiki內(nèi)容的能力。
ArchLinux或者是Linux的優(yōu)點就不在這里多說了,我相信打開這篇教程的同學(xué)一定可以從這樣的過程中得到很多。
下面就正式開始我們的教程。
安裝教程
前期準備
安裝介質(zhì)
在安裝之前我們先要準備一個安裝介質(zhì),在這里只推薦U盤作為安裝介質(zhì)。
到https://www.archlinux.org/download/頁面下方的中國鏡像源中下載
archlinux-**-x86_64.iso這個iso文件。-
如果是
Linux系統(tǒng)下制作安裝介質(zhì),推薦使用dd命令,教程: -
如果是
windows系統(tǒng)下制作安裝介質(zhì),推薦使用usbwriter這款輕量級的工具,下載鏈接:
-
磁盤準備
我們需要有一塊空閑的磁盤區(qū)域來進行安裝,這里的空閑指的是沒有被分區(qū)的空間。下面來介紹如何準備這塊空間。
-
在
windows下空出一塊分區(qū)來安裝:利用windows自帶的磁盤管理工具就可以:- 右擊
windows圖標,在彈出菜單中選擇磁盤管理(其他版本的windows請自行找到打開磁盤管理的方式):
- 右擊

2. 右擊想要刪除的分區(qū),選擇刪除卷(注意這步之后這個分區(qū)的所有數(shù)據(jù)將會丟失):

-
在
linux下分出一塊區(qū)域安裝:使用fdisk進行,教程請見鏈接中的刪除分區(qū): 空閑的磁盤(新磁盤):不需要進行任何操作。
U盤安裝
下面的過程實際上都在剛剛準備好的U盤啟動介質(zhì)上的Linux系統(tǒng)下進行,所以啟動時都應(yīng)該選擇U盤。
設(shè)置啟動順序
這一步在不同品牌的電腦上都不一樣,所以需要大家自行搜索自己電腦品牌+啟動順序這個關(guān)鍵詞來進行設(shè)置。
例如我的電腦搜索神舟 啟動順序可以得到如下的結(jié)果:
一般來說現(xiàn)在的主板都可以不用進入BIOS而快速地切換啟動順序,只要找到相應(yīng)的快捷鍵就可以了。
進入U盤下的Linux系統(tǒng)
- 按上一步設(shè)置好啟動順序,啟動之后會看到如下界面(UEFI啟動方式的界面可能不同):

如果直接進入`windows`,請檢查啟動順序是否設(shè)置成功,U盤是否在制作啟動介質(zhì)時成功寫入。
如果沒有看到這個界面,請檢查U盤是否制作成功,如果多次遇到問題可以考慮換一個U盤。
選擇第一個選項。
- 這時
Arch開始加載,你將會看到屏幕顯示如下內(nèi)容:

加載完成后你將會進入一個有命令提示符的界面:

如果出現(xiàn)`FAIL`或是其他錯誤信息導(dǎo)致無法啟動請自行搜索錯誤信息來獲得解決方法。
這就是`Linux`的終端界面了,接下來我們將通過在這個界面執(zhí)行一系列命令來將`Arch`安裝到我們的磁盤上。
下面進行的過程是按照官方Installation guide為依據(jù)進行的,出現(xiàn)的任何問題都可以到鏈接中的相應(yīng)部分查找原文找到解決方式。
檢查引導(dǎo)方式
目前的引導(dǎo)方式主要分為EFI引導(dǎo)+GPT分區(qū)表與BIOS(LEGACY)引導(dǎo)+MBR分區(qū)表兩種,幾乎比較新的機器都采用了EFI/GPT引導(dǎo)的方式。關(guān)于這部分的內(nèi)容如果有興趣可以通過這個鏈接進行了解:
如果你不知道自己的引導(dǎo)方式,請在命令提示符下執(zhí)行以下命令:
ls /sys/firmware/efi/efivars
這里的ls是命令,空格后面的一串為路徑,作為ls命令的參數(shù)。ls命令的作用是顯示路徑目錄下的所有的文件(夾)。
如果你對命令行下的常用操作(TAB補全、取消命令等)不熟悉,請先學(xué)習(xí)了解下面部分實用的快捷鍵或命令:
Tab鍵 命令行自動補全。鍵入命令或文件名的前幾個字符,然后按 [Tab] 鍵,它會自動補全命令或顯示匹配你鍵入字符的所有命令
↑(Ctrl+p) 顯示上一條命令
↓(Ctrl+n) 顯示下一條命令
Ctrl-C: 終止當前正在執(zhí)行的命令
輸入命令并回車執(zhí)行后,如果提示
ls: cannot access '/sys/firmware/efi/efivars': No such file or directory
表明你是以BIOS方式引導(dǎo),否則為以EFI方式引導(dǎo)。現(xiàn)在只需要記住這個信息,之后會用到。
聯(lián)網(wǎng)
arch并不能離線安裝,因為我們需要聯(lián)網(wǎng)來下載需要的組件,所以我們首先要連接網(wǎng)絡(luò)。
-
如果你是有線網(wǎng)并且路由器支持DHCP的話插上網(wǎng)線后先執(zhí)行以下命令獲取IP地址:
dhcpcd -
然后執(zhí)行以下命令來判斷網(wǎng)絡(luò)連接是否正常:
ping www.baidu.com如果可以看到類似下面的內(nèi)容就說明連上了網(wǎng)絡(luò):

> 再次提示用快捷鍵Ctrl-C可以終止當前正在執(zhí)行的命令
-
如果你是無線網(wǎng),請執(zhí)行以下命令:
wifi-menu這是一個實用的命令行下聯(lián)網(wǎng)工具,有字符形式的圖形化界面,利用它可以方便地聯(lián)網(wǎng),如果它沒能起作用,需要進入以下頁面查找解決方式:
https://wiki.archlinux.org/index.php/Wireless_network_configuration
連接以后同樣可以通過上面的
ping命令來進行測試。
更新系統(tǒng)時間
執(zhí)行如下命令:
timedatectl set-ntp true
正常情況下這樣的命令并沒有輸出,所謂沒有消息就是最好的消息
分區(qū)與格式化
特別注意:涉及到分區(qū)與格式化的操作要格外注意,命令在回車之前請再三確認知道自己在做什么,并且沒有輸錯命令,否則將會來帶來數(shù)據(jù)的丟失!如果有需要在操作之前請備份重要的數(shù)據(jù)。
但是我們也并不要過于懼怕分區(qū)與格式化過程,正確操作的情況下不會對你其他數(shù)據(jù)產(chǎn)生任何影響。
查看目前的分區(qū)情況
執(zhí)行命令:
fdisk -l
以我的電腦為例:

可以看到我的一塊238.5g的硬盤(/dev/sda就代表這塊硬盤),下面列出了/dev/sda*這三個分區(qū),/dev/sda3是我存活下來的家目錄,可以看到它的類型為Linux分區(qū)。注意看Start與End的數(shù)值,這個數(shù)值代表扇區(qū)號,可以理解成硬盤被劃分成了一個個小單元,可以直觀地看出來在/dev/sda2的End與/dev/sda3的Start之間空出了一大塊未分配的空間,接下來我們將分配這塊區(qū)域。
- 如果你是BIOS/MBR方式引導(dǎo),跳過下面創(chuàng)建一個引導(dǎo)分區(qū)的步驟。
- 如果你是EFI/GPT方式引導(dǎo),并且同時安裝了其他系統(tǒng),那么你應(yīng)該可以在分區(qū)列表中發(fā)現(xiàn)一個較小的并且類型為EFI的分區(qū)(注意查看硬盤的大小,這個
EFI分區(qū)有可能是你U盤中的,需要排除),這是你的引導(dǎo)分區(qū),請記下它的路徑(/dev/sdxY)備用,跳過下面創(chuàng)建一個引導(dǎo)分區(qū)的步驟。 - 如果你是EFI/GPT方式引導(dǎo),但是沒有這個較小的并且類型為EFI的引導(dǎo)分區(qū)(這種情況一般只會出現(xiàn)在新的硬盤),那么你需要先創(chuàng)建一個引導(dǎo)分區(qū)。
創(chuàng)建一個引導(dǎo)分區(qū)(僅上面所列的第三種情況需要進行這步)
執(zhí)行命令:
fdisk /dev/sdx (請將sdx替換成你要操作的磁盤如sdb sdc等)
下面你就進入了fdisk的操作環(huán)境, 輸入m并回車可以查看各命令的作用。
如果你是一塊全新的硬盤,輸入
g來創(chuàng)建一個全新的gpt分區(qū)表。輸入
n創(chuàng)建一個新的分區(qū),首先會讓你選擇起始扇區(qū),一般直接回車使用默認數(shù)值即可,然后可以輸入結(jié)束扇區(qū)或是分區(qū)大小,這里我們輸入+512M來創(chuàng)建一個512M的引導(dǎo)分區(qū)。這時我們可以輸入
p來查看新創(chuàng)建的分區(qū)。輸入
t并選擇新創(chuàng)建的分區(qū)序號來更改分區(qū)的類型,輸入l可以查看所有支持的類型,輸入ef更改分區(qū)的類型為EFI。輸入
w來將之前所有的操作寫入磁盤生效,在這之前可以輸入p來確認自己的分區(qū)表沒有錯誤。-
輸入以下命令來格式化剛剛創(chuàng)建的引導(dǎo)分區(qū):
mkfs.fat -F32 /dev/sdxY (請將的sdxY替換為剛創(chuàng)建的分區(qū))
現(xiàn)在引導(dǎo)分區(qū)就創(chuàng)建好了。
創(chuàng)建根分區(qū)
輸入命令:
fdisk /dev/sdx (請將sdx替換成你要操作的磁盤如sdb sdc等)
如果你是一塊全新的硬盤,輸入
o來創(chuàng)建一個新的MBR分區(qū)表。輸入
n創(chuàng)建一個新的分區(qū),首先會讓你選擇起始扇區(qū),一般直接回車使用默認數(shù)值即可,然后可以輸入結(jié)束扇區(qū)或是分區(qū)大小,如果我們想要使創(chuàng)建的分區(qū)完全占滿空閑的空間,可以直接回車使用默認結(jié)束扇區(qū)。這時我們可以輸入
p來查看新創(chuàng)建的分區(qū)。輸入
w來將之前所有的操作寫入磁盤生效,在這之前可以輸入p來確認自己的分區(qū)表沒有錯誤。-
輸入以下命令來格式化剛剛創(chuàng)建的根分區(qū):
mkfs.ext4 /dev/sdxY (請將的sdxY替換為剛創(chuàng)建的分區(qū))
這是我的分區(qū)過程供參考:


掛載分區(qū)
執(zhí)行以下命令將根分區(qū)掛載到/mnt:
mount /dev/sdxY /mnt (請將sdxY替換為之前創(chuàng)建的根分區(qū))
如果你是EFI/GPT引導(dǎo)方式,執(zhí)行以下命令創(chuàng)建/boot文件夾并將引導(dǎo)分區(qū)掛載到上面。BIOS/MBR引導(dǎo)方式無需進行這步。
mkdir /mnt/boot
mount /dev/sdxY /mnt/boot (請將sdxY替換為之前創(chuàng)建或是已經(jīng)存在的引導(dǎo)分區(qū))
選擇鏡像源
因為從這步開始,需要進行一些編輯配置文件的操作,所以需要掌握一些命令行下非常著名的一款編輯器Vim的基本操作,在這里推薦學(xué)習(xí)下面這個鏈接中的存活部分,可以完成編輯、復(fù)制粘貼與保存工作即可。
鏡像源是我們下載的軟件包的來源,我們需要根據(jù)自己的地區(qū)選擇不同的源來加快下載的速度。
執(zhí)行以下命令,用Vim來編輯/etc/pacman.d/mirrorlist這個文件
vim /etc/pacman.d/mirrorlist
提示:輸入路徑時可以用
Tab鍵補全

找到標有China的鏡像源,normal模式下按下dd可以剪切光標下的行,按gg回到文件首,按p將行粘貼到文件最前面的位置(優(yōu)先級最高)。
當然也可以直接手工輸入。
這里推薦使用清華、浙大源:
Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.zju.edu.cn/archlinux/$repo/os/$arch
最后記得用:wq命令保存文件并退出。
安裝基本包
下面就要安裝最基本的ArchLinux包到磁盤上了。這是一個聯(lián)網(wǎng)下載并安裝的過程。
執(zhí)行以下命令:
pacstrap /mnt base base-devel
根據(jù)下載速度的不同在這里需要等待一段時間,當命令提示符重新出現(xiàn)的時候就可以進行下一步操作了。
配置Fstab
生成自動掛載分區(qū)的fstab文件,執(zhí)行以下命令:
genfstab -L /mnt >> /mnt/etc/fstab
由于這步比較重要,所以我們需要輸出生成的文件來檢查是否正確,執(zhí)行以下命令:
cat /mnt/etc/fstab

如圖,可以看到/dev/sda4被掛載到了根分區(qū)。
/dev/sda3是我之前存活下來的家目錄被掛載到了/home目錄(你們沒有這條)。
如果是EFI/GPT引導(dǎo)的還應(yīng)該有引導(dǎo)分區(qū)被掛載到/boot目錄。
Chroot
Chroot意為Change root,相當于把操縱權(quán)交給我們新安裝(或已經(jīng)存在)的Linux系統(tǒng),執(zhí)行了這步以后,我們的操作都相當于在磁盤上新裝的系統(tǒng)中進行。
執(zhí)行如下命令:
arch-chroot /mnt
這里順便說一下,如果以后我們的系統(tǒng)出現(xiàn)了問題,只要插入U盤并啟動, 將我們的系統(tǒng)根分區(qū)掛載到了/mnt下,再通過這條命令就可以進入我們的系統(tǒng)進行修復(fù)操作。
設(shè)置時區(qū)
依次執(zhí)行如下命令設(shè)置我們的時區(qū)為上海并生成相關(guān)文件:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc

提前安裝必須軟件包
因為我們現(xiàn)在已經(jīng)Chroot到了新的系統(tǒng)中,只有一些最基本的包(組件),這時候我們就需要自己安裝新的包了,下面就要介紹一下ArchLinux下非常強大的包管理工具pacman,大部分情況下,一行命令就可以搞定包與依賴的問題。
安裝包的命令格式為pacman -S 包名,pacman會自動檢查這個包所需要的其他包(即為依賴)并一起裝上。下面我們就通過pacman來安裝一些包,這些包在之后會用上,在這里先提前裝好。
執(zhí)行如下命令:
pacman -S vim dialog wpa_supplicant ntfs-3g
一路確認之后包就被成功裝上了。

圖中只安裝了Vim和它的依賴。
設(shè)置Locale
設(shè)置我們使用的語言選項,執(zhí)行如下命令來編輯/etc/locale.gen文件:
vim /etc/locale.gen
在文件中找到zh_CN.UTF-8 UTF-8 zh_HK.UTF-8 UTF-8 zh_TW.UTF-8 UTF-8 en_US.UTF-8 UTF-8這四行,去掉行首的#號,保存并退出。如圖:


然后執(zhí)行:
locale-gen

打開(不存在時會創(chuàng)建)/etc/locale.conf文件:
vim /etc/locale.conf
在文件的第一行加入以下內(nèi)容:
LANG=en_US.UTF-8
保存并退出。
設(shè)置主機名
打開(不存在時會創(chuàng)建)/etc/hostname文件:
vim /etc/hostname
在文件的第一行輸入你自己設(shè)定的一個myhostname
保存并退出。
編輯/etc/hosts文件:
vim /etc/hosts
作如下修改(將myhostname替換成你自己設(shè)定的主機名)
127.0.0.1 localhost.localdomain localhost
::1 localhost.localdomain localhost
127.0.1.1 myhostname.localdomain myhostname

這里我設(shè)置的是viseator。
保存并退出。
設(shè)置Root密碼
Root是Linux中具有最高權(quán)限帳戶,有些敏感的操作必須通過Root用戶進行,比如使用pacman,我們之前進行所有的操作也都是以Root用戶進行的,也正是因為Root的權(quán)限過高,如果使用不當會造成安全問題,所以我們之后會新建一個普通用戶來進行日常的操作。在這里我們需要為Root帳戶設(shè)置一個密碼:
執(zhí)行如下命令:
passwd
按提示設(shè)置并確認就可以了。

或許有的人已經(jīng)發(fā)現(xiàn)官方Wiki和一些其他教程資料中的命令是以#或$開頭的,這兩個符號就對應(yīng)著命令行中的命令提示符,#代表以Root用戶執(zhí)行命令,$代表以普通用戶執(zhí)行命令,平時使用教程中的命令時應(yīng)該注意這一點。
安裝Intel-ucode(非IntelCPU可以跳過此步驟)
直接pacman安裝:
pacman -S intel-ucode
安裝Bootloader
經(jīng)常聽說很多人因為引導(dǎo)問題導(dǎo)致系統(tǒng)安裝失敗,多數(shù)是因為教程沒有統(tǒng)一或是過時的教程引起的,這里只要按照步驟來其實是不難的。
這里我們安裝最流行的Grub2。
-
首先安裝
os-prober這個包,它可以配合Grub檢測已經(jīng)存在的系統(tǒng),自動設(shè)置啟動選項。pacman -S os-prober
如果為BIOS/MBR引導(dǎo)方式:
-
安裝
grub包:pacman -S grub -
部署
grub:grub-install --target=i386-pc /dev/sdx (將sdx換成你安裝的硬盤)注意這里的
sdx應(yīng)該為硬盤(例如/dev/sda),而不是形如/dev/sda1這樣的分區(qū)。 -
生成配置文件:
grub-mkconfig -o /boot/grub/grub.cfg

如果你沒有看到如圖所示的提示信息,請仔細檢查是否正確完成上面的過程。
如果報warning failed to connect to lvmetad,falling back to device scanning.錯誤。參照這篇文章,簡單的方法是編輯/etc/lvm/lvm.conf這個文件,找到use_lvmetad = 1將1修改為0,保存,重新配置grub。
如果為EFI/GPT引導(dǎo)方式:
-
安裝
grub與efibootmgr兩個包:pacman -S grub efibootmgr -
部署
grub:grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub -
生成配置文件:
grub-mkconfig -o /boot/grub/grub.cfg
提示信息應(yīng)與上面的圖類似,如果你發(fā)現(xiàn)錯誤,請仔細檢查是否正確完成上面的過程。
如果報warning failed to connect to lvmetad,falling back to device scanning.錯誤。參照這篇文章,簡單的方法是編輯/etc/lvm/lvm.conf這個文件,找到use_lvmetad = 1將1修改為0,保存,重新配置grub。
安裝后檢查
如果你是多系統(tǒng),請注意上面一節(jié)中對os-prober這個包的安裝。
強烈建議使用如下命令檢查是否成功生成各系統(tǒng)的入口,如果沒有正常生成會出現(xiàn)開機沒有系統(tǒng)入口的情況:
vim /boot/grub/grub.cfg
檢查接近末尾的menuentry部分是否有windows或其他系統(tǒng)名入口。下圖例子中是Arch Linux入口與檢測到的windows10入口(安裝在/dev/sda1),具體情況可能有不同:

如果你沒有看到Arch Linux系統(tǒng)入口或者該文件不存在,請先檢查/boot目錄是否正確部署linux內(nèi)核:
cd /boot
ls
查看是否有initramfs-linux-fallback.img initramfs-linux.img intel-ucode.img vmlinuz-linux這幾個文件,如果都沒有,說明linux內(nèi)核沒有被正確部署,很有可能是/boot目錄沒有被正確掛載導(dǎo)致的,確認/boot目錄無誤后,可以重新部署linux內(nèi)核:
pacman -S linux
再重新生成配置文件,就可以找到系統(tǒng)入口。
如果你已經(jīng)安裝os-prober包并生成配置文件后還是沒有生成其他系統(tǒng)的入口:
你目前處的U盤安裝環(huán)境下有可能無法檢測到其他系統(tǒng)的入口,請在下一步中重啟登陸之后重新運行:
grub-mkconfig -o /boot/grub/grub.cfg
如果還沒有生成其他系統(tǒng)的入口,請參照:
編輯配置文件手動添加引導(dǎo)的分區(qū)入口。
重啟
接下來,你需要進行重啟來啟動已經(jīng)安裝好的系統(tǒng),執(zhí)行如下命令:
exit
reboot
注意這個時候你可能會卡在有兩行提示的地方無法正常關(guān)機,長按電源鍵強制關(guān)機即可,沒有影響。
關(guān)機后拔出U盤,啟動順序會自動以硬盤啟動,如果一切順利,那么你將會看到下面的界面:

啟動時有可能會有輸出信息顯示在這里,直接回車就可以了。
輸入root,再輸入之前設(shè)置的密碼,顯示出命令提示符,恭喜你,你已經(jīng)成功安裝ArchLinux!
安裝后配置
雖然系統(tǒng)安裝好了,但是還沒有進行基本配置和安裝圖形界面,所以接下來我們要進行一些必須的配置和圖形界面的安裝。
請見下一篇文章:ArchLinux安裝后的必須配置與圖形界面安裝教程
特別感謝
博客評論區(qū)中Senrey_Song、YKun、imzhwk、haonan mao、Lichen Zhang對于本教程內(nèi)容的指正。