arch linux 安裝

好長(zhǎng)時(shí)間都沒(méi)有更新自己的博客了,我簡(jiǎn)單翻閱了一下自己的更新記錄,上一次更新好像還是在5月份左右,距今也有快半年,這半年也是遇到了很多事情,有不好的,也有好的。這半年我對(duì)在日常生活工作中使用Linux系統(tǒng)產(chǎn)生了一些興趣,從零開(kāi)始折騰這一系列的內(nèi)容,主要從安裝、配置、以及嘗試各種軟件來(lái)取代Windows的主導(dǎo)地位,也產(chǎn)生了一些心得,這里我想分幾篇博客來(lái)聊聊我是如何慢慢使用arch Linux 來(lái)替代以前的Windows機(jī)器

為何選擇arch Linux

我本身有一臺(tái)6年前買(mǎi)的聯(lián)想的筆記本,隨著每次系統(tǒng)的更新,也變得越來(lái)越卡了,終于有一點(diǎn)我忍不了想著要不退回到windows 7吧,windows 10這臺(tái)機(jī)器已經(jīng)有點(diǎn)不行了。恰巧我最近在看一本關(guān)于計(jì)算機(jī)發(fā)展史的書(shū),書(shū)中提到自由軟件運(yùn)動(dòng),那種運(yùn)動(dòng)有一種人人為我,我為人人的理想主義色彩,我想既然不能編寫(xiě)自由軟件造福一方,至少應(yīng)該享受自由軟件帶來(lái)的好處,而且國(guó)內(nèi)經(jīng)常爆出各種軟件竊取用戶(hù)隱私的新聞。何不趁此機(jī)會(huì)轉(zhuǎn)移到自由軟件陣營(yíng)呢?說(shuō)做就做,自由軟件的基礎(chǔ)自然是需要一個(gè)自由的操作系統(tǒng),Linux是目前使用最為廣泛的自由操作系統(tǒng)。在看了各種Linux發(fā)行版本之后我決定使用arch Linux,主要有以下幾個(gè)原因:

  1. 更新方式比較激進(jìn),arch Linux采用滾動(dòng)更新的方式,這意味著用戶(hù)能享受最新的軟件版本,當(dāng)然過(guò)激的更新行為會(huì)導(dǎo)致一些問(wèn)題,比如常見(jiàn)的滾掛。我自認(rèn)為我不缺少動(dòng)手能力,這個(gè)我有信心能自己解決
  2. arch Linux 豐富的軟件源使它能夠安裝其他發(fā)行版Linux無(wú)法安裝的軟件
  3. 豐富的wiki文檔,你能遇到的問(wèn)題幾乎都可以在里面找到答案
  4. 最小化安裝,arch Linux自身是最精簡(jiǎn)的系統(tǒng),幾乎精簡(jiǎn)到不能再精簡(jiǎn)。因此比起其他發(fā)行版本的Linux來(lái)說(shuō),它提供更高自由度的可配置性。
  5. 安裝困難,我一直覺(jué)得對(duì)于自己專(zhuān)業(yè)內(nèi)的事情,要做就做最困難的,既然它的安裝使用最為困難,那我就用它,當(dāng)徹底征服了這一塊內(nèi)容,帶來(lái)的成就感是無(wú)法比擬的。而且熟悉了它的安裝過(guò)程,又例如提高對(duì)Linux的認(rèn)識(shí)

基于上述幾點(diǎn)理由,我開(kāi)始了漫長(zhǎng)的折騰之路

arch Linux 安裝

安裝主要參考 arch wiki 好在文檔大部分都有中文版本,對(duì)于英語(yǔ)不好的人來(lái)說(shuō)閱讀起來(lái)也不會(huì)有過(guò)多的阻礙

制作U盤(pán)啟動(dòng)項(xiàng)

首先去官方指定的鏡像站下載安裝包,然后使用相應(yīng)的工作制作U盤(pán)啟動(dòng)項(xiàng),windows上我使用的是rufus、Linux或者mac上直接使用如下命令寫(xiě)入到U盤(pán)

sudo dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress oflag=sync

上述命令的含義是制作一個(gè)鏡像文件,源文件內(nèi)容保存在if參數(shù)所指定的位置,輸出到 of 所指定的位置, status=progress 表示現(xiàn)實(shí)制作進(jìn)度, oflag=sync表示以同步的方式寫(xiě)入,即所有數(shù)據(jù)寫(xiě)入完成命令結(jié)束,而不是剛寫(xiě)入就結(jié)束

需要注意的是,sdx 是u盤(pán)在系統(tǒng)中的命名,一般插入U(xiǎn)盤(pán)后,在shell上使用fdisk -l可以看到,另外有的U盤(pán)可能經(jīng)過(guò)分區(qū),顯示出下面還有sdx1、sdx2等分區(qū),要寫(xiě)到sdx,而不是sdx1或者sdx2

將U盤(pán)插入待裝機(jī)的電腦上,進(jìn)入bios調(diào)整啟動(dòng)順序和安全設(shè)施,如果使用uefi方式啟動(dòng)的話(huà),需要調(diào)整啟動(dòng)方式為uefi only 而不是 legacy/csm

接下來(lái)就可以啟動(dòng)電腦,進(jìn)入arch Linux的安裝界面了

arch linux 安裝界面

聯(lián)網(wǎng)設(shè)置

進(jìn)入到安裝界面的第一步需要連接上網(wǎng)絡(luò),這里使用 iwctl 進(jìn)行網(wǎng)絡(luò)連接配置

iwctl                       #進(jìn)入交互式命令行
device list                 # 列出設(shè)備名,比如無(wú)線(xiàn)網(wǎng)卡一般叫做 wlan0
station wlan0 scan          #掃描Wi-Fi
station wlan0 get-networks  #列出掃描到的Wi-Fi名稱(chēng),例如要連接到esi-0這個(gè)Wi-Fi
station wlan0 connect esi-0 #嘗試連接,這個(gè)時(shí)候需要輸入密碼

成功后就連上互聯(lián)網(wǎng)了,可以使用 ping archlinux.org 來(lái)試試網(wǎng)絡(luò)是否成功連上

更新系統(tǒng)時(shí)間

后續(xù)在訪問(wèn)https之類(lèi)的站點(diǎn)時(shí)會(huì)驗(yàn)證客戶(hù)端和服務(wù)器的證書(shū)和時(shí)間的,有時(shí)候時(shí)間不統(tǒng)一,在訪問(wèn)時(shí)可能會(huì)報(bào)無(wú)效的證書(shū)之類(lèi)的錯(cuò)誤

使用命令

timedatectl set-ntp true

更新之后可以使用 timedatectl status 檢查服務(wù)狀態(tài)

磁盤(pán)分區(qū)與格式化

根據(jù)arch wiki上的說(shuō)法,采用uefi的啟動(dòng)方式時(shí),至少需要一個(gè)boot或者efi 分區(qū)作為efi系統(tǒng)分區(qū)(大小不能小于280M)、一個(gè)根分區(qū)。

這里假設(shè)硬盤(pán)大小為100G,我采用如下的分區(qū)方案

  • efi 分區(qū) /efi 1G
  • 根分區(qū) / 40G
  • 用戶(hù)主目錄 /home 剩余全部空間,越大越好

windows 做類(lèi)比的話(huà),根分區(qū)相當(dāng)于c 盤(pán),主要用來(lái)裝系統(tǒng)相關(guān)的內(nèi)容,用戶(hù)分區(qū)相當(dāng)于D盤(pán)或者其他盤(pán),用來(lái)放用戶(hù)數(shù)據(jù),后續(xù)如果系統(tǒng)掛了,重裝系統(tǒng)的話(huà),不會(huì)破壞用戶(hù)目錄的內(nèi)容,甚至如果用戶(hù)目錄在其他物理盤(pán)上,后面換機(jī)器了直接將這塊盤(pán)掛載到其他機(jī)器上,數(shù)據(jù)直接就能用了

首先將磁盤(pán)分區(qū)表轉(zhuǎn)化為gpt類(lèi)型

lsblk                       #顯示分區(qū)狀況
parted /dev/sdx             #執(zhí)行parted命令, 進(jìn)行磁盤(pán)類(lèi)型變更
(parted)mktable             #輸入mktable 修改磁盤(pán)分區(qū)表類(lèi)型
new disk label type? gpt    #輸入gpt,修改分區(qū)表為gpt類(lèi)型
quit                        #最后退出parted交互式命令 

接下來(lái)使用cfdisk 命令對(duì)磁盤(pán)進(jìn)行分區(qū)

cfdisk /dev/sdx #使用cfdisd對(duì)磁盤(pán)進(jìn)行分區(qū)
cfdisk 界面

free space 表示未分區(qū)的部分,上下鍵用來(lái)選擇區(qū)域,左右鍵用來(lái)選擇操作

先選擇new新建分區(qū),然后輸入大小,最后回車(chē),重復(fù)幾次這個(gè)操作,按照之前定義的大小來(lái)完成分區(qū)

fdisk 完成分區(qū)

記得完成之后,將選項(xiàng)調(diào)整到wirte 在退出前將分區(qū)寫(xiě)入到磁盤(pán)。完成之后使用

fdisk -l 

查看分區(qū)

分區(qū)

接下來(lái)格式化磁盤(pán)中的各個(gè)分區(qū)

  • efi 分區(qū)格式化為 vfat 格式
  • 根分區(qū)和用戶(hù)分區(qū)格式化為 ext4格式
mkfs.ext4 /dev/sda2
mkfs.ext4 /dev/sda3
mkfs.vfat /dev/sda1

接下來(lái)將磁盤(pán)掛在到當(dāng)前系統(tǒng)的文件目錄下,使磁盤(pán)能正常被系統(tǒng)訪問(wèn)到

mount /dev/sda2 /mnt
mkdir /mnt/efi
mkdir /mnt/home
mount /dev/sda1 /mnt/efi
mount /dev/sda3 /mnt/home

系統(tǒng)安裝

折騰了這么多東西,終于要開(kāi)始正式安裝系統(tǒng)了,arch linux提供了一個(gè)腳本用來(lái)自動(dòng)安裝系統(tǒng)內(nèi)核

pacstrap /mnt base base-devel linux linux-firmware

這句命令可以幫助我們將系統(tǒng)所需要的包安裝到/mnt 這個(gè)目錄也就是磁盤(pán)上

等待一段時(shí)間,安裝就完成了,先別著急重啟,還有一些內(nèi)容需要安裝

pacstrap /mnt dhcpcd vim sudo networkmanager # dhcpcd networkmanager 是網(wǎng)絡(luò)相關(guān)的軟件包,后期缺少可以通過(guò)網(wǎng)絡(luò)下載,聯(lián)網(wǎng)軟件沒(méi)有的話(huà)只能白瞎 

系統(tǒng)自身配置

到這里基本已經(jīng)完成了安裝部分的工作了,接下來(lái)要進(jìn)行的就是重啟前的基本配置了

生成磁盤(pán)分區(qū)的記錄文件

genfstab -U /mnt >> /mnt/etc/fstab

生成之后可以使用cat或者 vim 之類(lèi)的命令復(fù)查一下生成的是否有誤

fstab 文件

接下來(lái)切換到新安裝的系統(tǒng)上

arch-chroot /mnt

在新系統(tǒng)中先在/etc/hostname中設(shè)置主機(jī)名,在文件中輸入你想要的主機(jī)名,例如叫 arch

接下來(lái)在文件/etc/hosts中設(shè)置與其匹配的條目,可以加入以下內(nèi)容

127.0.0.1   localhost
::1         localhost
127.0.1.1   arch.localdomain    arch

接著設(shè)置時(shí)區(qū),在/usr/localtime 下用 /usr 中合適的時(shí)區(qū)創(chuàng)建符號(hào)連接

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

將系統(tǒng)時(shí)間同步到硬件時(shí)間

hwclock --systohc

接下來(lái)進(jìn)行本地化操作,程序如果需要本地化文件,都需要依賴(lài) locale,它規(guī)定了地域、貨幣、時(shí)區(qū)日期的格式、字符排列方式和本地化標(biāo)準(zhǔn)。需要在這兩個(gè)文件中設(shè)置 locale.genlocale.conf

編輯 /etc/locale.gen 然后去掉 en_US.UTF-8 UTF-8 和其他需要的地區(qū)前的注釋?zhuān)缱鳛橹形挠脩?hù)可以去掉 zh_CN.UTF-8 UTF-8 以顯示中文

編輯完成之后使用如下命令生成 locale

locale-gen

/etc/locale.conf 文件中指定系統(tǒng)使用的語(yǔ)言,這里推薦使用英文,否則在出錯(cuò)的時(shí)候可能會(huì)出現(xiàn)中文亂碼,不便與排錯(cuò)

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

設(shè)置root 密碼

passwd root

根據(jù)cpu的不同,安裝對(duì)應(yīng)的微碼,以確保處理器能穩(wěn)定運(yùn)行

pacman -S intel-ucode   #intel
pacman -S amd-ucode     #amd

安裝引導(dǎo)程序

為了能在機(jī)器加電之后正常找到Linux所在位置,需要安裝引導(dǎo)程序,來(lái)引導(dǎo)操作系統(tǒng)的啟動(dòng)。

pacman -S grub efibootmgr # 使用grub做引導(dǎo)程序,efibootmgr 是uefi方式啟動(dòng)需要的
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=arch #將啟動(dòng)項(xiàng)取名為arch 啟動(dòng)類(lèi)型為efi的64位系統(tǒng) 系統(tǒng)啟動(dòng)位置在 /efi

接下來(lái)可以稍微對(duì)啟動(dòng)配置做一些修改,編輯 `/etc/default/grub` 文件,去掉 `GRUB_CMDLINE_LINUX_DEFAULT` 一行中最后的 `quit` 參數(shù),同時(shí)把`log level` 的數(shù)值從3改到5,這樣是為了后續(xù)如果出現(xiàn)系統(tǒng)錯(cuò)誤方便排查。同時(shí)加入 `nowatchdog` 參數(shù),這樣可以顯著提升開(kāi)關(guān)機(jī)速度

修改完成之后生成grub所需的配置文件

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

這樣就完成了安裝

exit
umount -R /mnt
reboot

一切順利的話(huà),重啟之后應(yīng)該就能進(jìn)入系統(tǒng)了。

新系統(tǒng)基礎(chǔ)配置

網(wǎng)絡(luò)配置

之前我們下載了與網(wǎng)絡(luò)相關(guān)的兩個(gè)工具networkmanagerdhcpcd,用來(lái)管理網(wǎng)絡(luò)和dhcp自動(dòng)分配IP地址

systemctl enable --now NetworkManager # 啟動(dòng)networmmanager服務(wù)
nmcli device wifi list # 查看Wi-Fi列表
nmcli device wifi connect ssid password password #連接Wi-Fi,ssid表示W(wǎng)i-Fi名,后面一個(gè)password表示連接wifi的真實(shí)密碼

網(wǎng)絡(luò)連接成功之后,使用pacman將系統(tǒng)更新到最新版本

pacman -Syyu

創(chuàng)建非root用戶(hù)

為了系統(tǒng)安全防止自己某天抽風(fēng)不小心輸入類(lèi)似 rm -rf / 之類(lèi)的危險(xiǎn)命令,平時(shí)最好使用非root登陸。 對(duì)于系統(tǒng)操作使用sudo來(lái)提升權(quán)限

useradd -m -G wheel -s /bin/bash arch

創(chuàng)建一個(gè)名為arch的用戶(hù),將用戶(hù)組歸屬到wheel中,同時(shí)創(chuàng)建用戶(hù)目錄, 并且指定shell使用bash

接下來(lái)使用 passwd arch 來(lái)修改用戶(hù)密碼

由于系統(tǒng)中并沒(méi)有安裝vi,所以默認(rèn)會(huì)使用vi命令的一些命令都會(huì)失效。所以需要將 vi 鏈接到 vim

ln -sf /usr/bin/vim /usr/bin/vi

使用visudo 將文件中 #%whell ALL=(ALL) ALL 這行的注釋去掉

使用su arch 將當(dāng)前用戶(hù)切換到arch??梢允褂妹?code>sudo pacman -Syyu來(lái)更新系統(tǒng),同時(shí)測(cè)試一下輸入用戶(hù)密碼之后能否執(zhí)行一些root命令

設(shè)置交換文件

在桌面環(huán)境中,交換分區(qū)或文件用來(lái)實(shí)現(xiàn)休眠(hibernate)的功能,即將當(dāng)前環(huán)境保存在磁盤(pán)的交換文件或分區(qū)部分。除此之外,某些特定軟件需要 swap 才可以正確運(yùn)行。交換文件與分區(qū)性能相同,且交換文件更為靈活,可隨時(shí)變更大小,增加與刪除

dd if=/dev/zero of=swapfile bs=1M count=4096 status=progress #設(shè)置4G的交換分區(qū),大小根據(jù)系統(tǒng)的實(shí)際內(nèi)存來(lái)決定,一般最好略大于物理內(nèi)存
chmod 600 /swapfile
mkswap /swapfile # 格式化swap文件
swapon /swapfile # 啟用swap文件

最后往/etc/fstab中追加如下內(nèi)容

/swapfile none swap defaults 0 0

開(kāi)啟32位軟件庫(kù)支持與ArchLinuxCN庫(kù)的支持

為了系統(tǒng)的穩(wěn)定,官方關(guān)閉了32位軟件以及aur軟件庫(kù),但是僅僅只依靠官方源中的軟件時(shí)不夠用的,這里我們要打開(kāi)這兩個(gè)庫(kù)

vim /etc/pacman.conf

去掉[multilib]一節(jié)中兩行的注釋?zhuān)瑏?lái)開(kāi)啟 32 位庫(kù)支持。
在文檔結(jié)尾處加入下面的文字,來(lái)開(kāi)啟 ArchLinuxCN 源。

[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
添加這兩行

執(zhí)行 sudo pacman -Syyu 更新pacman數(shù)據(jù)庫(kù)

然后需要安裝 archlinuxcn-keyring 包以導(dǎo)入 GPG key

sudo pacman -S arhclinuxcn-keyring

有時(shí)候因?yàn)槊荑€環(huán)的問(wèn)題,導(dǎo)致這一步安裝報(bào)錯(cuò),可以依次執(zhí)行下面的命令

sudo pacman -syyu
sudo pacman -S haveged
sudo pacman -Syu haveged
sudo systemctl start haveged
sudo systemctl enable haveged

sudo rm -fr /etc/pacman.d/gnupg
sudo pacman-key --init
sudo pacman-key --populate archlinux
sudo pacman-key --populate archlinuxcn

然后再重新安裝,即可解決問(wèn)題

最后安裝 yay 用來(lái)下載archlinuxcn庫(kù)中的軟件

結(jié)尾

至此,已經(jīng)完成了對(duì)系統(tǒng)的安裝到基礎(chǔ)配置,現(xiàn)在已經(jīng)有了一個(gè)基本可用的操作系統(tǒng)了,但是目前系統(tǒng)仍然只有一個(gè)基本的黑框框,作為日常使用還遠(yuǎn)遠(yuǎn)不足,至少還需要一個(gè)桌面環(huán)境,后面的博文會(huì)陸續(xù)介紹我是如何安裝并配置一個(gè)基本的桌面環(huán)境。最后到一個(gè)基本可用于日常生活和工作中的操作系統(tǒng)。

<hr />

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • #準(zhǔn)備的材料 2G以上U盤(pán)一個(gè) 下載arch鏡像 鏡像地址:arch鏡像下載地址 #制作USB啟動(dòng)盤(pán) window...
    aae85ba76281閱讀 794評(píng)論 0 1
  • Arch-Linux 配置小記(一) 一、Arch-Linux簡(jiǎn)介 1.簡(jiǎn)介 Arch Linux是朝向輕量(li...
    ikaroskun閱讀 1,590評(píng)論 2 3
  • 建議:在開(kāi)始安裝之前,請(qǐng)簡(jiǎn)要通讀全文一遍; 本文目錄: ● 本文的目的● 第一步,U盤(pán)啟動(dòng)電腦● 第二步,安裝前...
    驛窗閱讀 8,397評(píng)論 0 21
  • 相較而言,安裝Arch linux比ubuntu麻煩很多,想看ubuntu安裝過(guò)程的可以看這篇。 下載iso鏡像,...
    JohnAo_閱讀 494評(píng)論 0 0
  • 1. 前提 為什么推薦Arch Linux?因?yàn)樗糜脝h! 如果想要學(xué)習(xí)Linux,Arch Linux是個(gè)很好的...
    清無(wú)色閱讀 39,892評(píng)論 14 24

友情鏈接更多精彩內(nèi)容