ArchLinux Vmware安裝指北
在本文開始之前,首先允許我提前宣告一點,Arch Linux的安裝並不算難,但是絕對也算不上簡單,中間的安裝可能會遇到很多問題,本篇文章不能保證完全貼合你的真實機器環境,但是我會在我安裝過程中遇到的一點點小問題都說出來,給大家避個坑,這裡我安裝Arch的時候參考的文章是https://arch.icekylin.online/guide/rookie/basic-install,大家也可以一併參考。
現在我會按照這篇文章的流程,開始說我是如何安裝的。那麼接下來,介紹一下需要的安裝環境
-
Windows
-
VMware虛擬機器
-
Vmware的NAT網路連線模式
-
一個清醒的大腦
-
一杯茶或者咖啡
畢竟是安裝作業系統,第一步肯定獲得Arch Linux作業系統的映象包,關於其映象包,由於官網給我們的是磁鏈和BT檔案,所以網路環境和軟體環境好的同學可以使用官網的下載方式,記得用BT的要做種哈,人人為我,我為人人。條件不允許的同志,可以選擇使用映象站來下載;這裡貼出官網的下載方式和映象站
官網:
magnet:?xt=urn:btih:0cd42065571809961e9661db2123a87d77c33964&dn=archlinux-2024.07.01-x86_64.iso(磁鏈)
https://archlinux.org/releng/releases/2024.07.01/torrent/(BT)
映象站(阿里):
https://mirrors.aliyun.com/archlinux/iso/2024.05.01/archlinux-2024.05.01-x86_64.iso
下載之後記得對比檔案hash值(當然你不比較也可以,這一步只是確保我們使用的映象是否是完整無損的),在官網的https://archlinux.org/download/頁面即可找到映象包的hash值。
新建虛擬機器
對比完hash值確定檔案是完整無損的之後,我們即可進入安裝階段,在安裝之前,我們先來建立一個新的虛擬機器。(如果這裡你會,請跳過這部分)
這裡我們選擇典型即可,沒有必要去自定義,典型就夠用,隨後下一步
隨後選擇我們的映象檔案,下一步
這裡選擇Linux-其他Linux 6.x核心64位,下一步
這裡可以給我們的虛擬器來起一個名字,我們可以將其命名為你喜歡的任意名字,這裡我使用ArchLinux作為這臺虛擬機器的名字;這裡的“位置”指的是這臺虛擬機器的存放位置,建議脫離C盤去存放虛擬機器。下一步
這裡我們選擇將虛擬磁碟檔案儲存為單個檔案,方便後續管理,大小設定為20G。下一步
這裡我們點一下自定義硬體,調整一下磁碟執行記憶體的大小,1~2GB均可,依照個人計算器情況來給即可,安裝過程中建議不要低於1GB,取高不取低。網路控制器選項使用NAT,隨後確定。一切完畢之後,我們點選一下我們的Arch
當顯示為如此介面時,我們的基本配置算是完成了
正如我開頭所說,我會按照我給出的文章的步驟來安裝並且幫大家避開我安裝時的坑,所以應該會有大量的步驟是和連結中師傅的文章相同,特此告知。
安裝Arch
0.必要的設定項&一堆可能有點用的閒話
在安裝之前,首先不要急著啟動Arch,我們先到Arch虛擬機器的儲存位置修改一下.vmx檔案,使用UEFI來引導系統啟動。
在左側窗格右鍵我們的Arch,選擇開啟虛擬目錄
找到.vmx檔案,使用記事本開啟
在其中新增一行條目,firmware=”efi”,隨後儲存即可。隨後我們再來啟動Arch
點選開啟此虛擬機器即可開啟我們的Arch
啟動後如果顯示為這樣的介面,說明UEFI引導生效,選擇第一項,我們來開始安裝Arch
眼尖的朋友可能會發現,arch啟動的時候這裡有一個SSH的守護程序被啟動了,也就是說我們安裝Arch的時候是完全被允許使用SSH來遠端連線的,關於我為什麼要提這個問題,因為我們安裝的時候是無法在虛擬機器中貼上的,如果我們能夠使用物理機Shell工具遠端連線到Arch的安裝程序上,就可以正常的來貼上命令了,這樣的話將會起到事半功倍的效果。如果你沒有相關的工具,那麼也不影響後續的操作;如果你有,請使用root@xxx.xxx.xxx.xxx來進行連線,ip a命令可以檢視Arch的IP,passwd可以修改root的密碼。(即便如此,我還是建議從來沒有安裝過Arch的同志們手動敲一下命令,以便更深入的去理解命令的含義和Linux的核心;如果你是一個安裝老手,那麼這個方法將幫助你快速對Arch進行安裝<說實話老手還會看這篇文章嗎,wwwwwwwwww>)
ookk,閒話少說,基本的配置完成,我們還是步入正軌來安裝Arch吧
1.首先來禁用reflector服務
systemctl stop reflector
如果執行沒有報錯,恭喜你,禁用成功了
2.隨後來確保一下我們的確是處在UEFI的引導模式下
ls /sys/firmware/efi/efivars
如果能夠輸出一堆檔名,說明這裡處在UEFI引導模式下,可以進行下一步操作
如果發生報錯,提示檔案不存在或者檔案為空,說明你沒有使用UEFI引導啟動,請回到本小節開頭位置學習如何修改.vmx檔案,使Arch在UEFI模式下被引導啟動。
3.連線網路
原文寫這一步主要面向的是無線網路使用者,這裡由於我們使用的是虛擬機器的虛擬網路卡,這步可以直接跳過
4.測試網路狀態
curl www.baidu.com
如果能夠輸出東西,有一堆HTML標籤等等;而不是網路不可達、連線超時、不能連線到伺服器、找不到主機等等報錯,說明網路無異常,報錯示例:
網路無異常的話我們來繼續
5.更新系統時鐘
正如原文所說,系統時間的準確是十分重要的,我們的SSL證書等等以及例如OTP等等很多服務,都是要建立在時間準確的前提下的,所以這一步是至關重要的。
使用命令同步系統時間
timedatectl set-ntp true
如果沒有報錯,說明執行成功,可以使用
timedatectl status
來檢視同步後的時鐘狀態資訊
=> arch時間
=> 我的物理機系統時間
由於我們國家處於東八區,這裡的Time zone給出的是UTC+0,所以只要將其時間加上8H即可得出我們的時間,如果計算後的時間和我們的實際時間基本相吻合,那麼這裡就可以繼續操作了(由於我截圖中間有點操作時間,實際上計算過後時間是基本分毫不差的)
6.更改軟體倉庫下載源
這一步相信經常使用Linux的同志們都很清楚了,由於國外的軟體倉庫物理上距離我們就遠,再加上各種各樣的原因,我們下載軟體包的時候,需要使用國內的下載映象站來加速我們的下載,這裡映象站有很多,我們使用原文中給出的四個就完全夠用了
執行命令,使用vim來修改軟體倉庫
vim /etc/pacman.d/mirrorlist
開啟後的頁面是這樣的,我們新增四條條目在最上面,在最上面的會優先被呼叫
Server = https://mirrors.ustc.edu.cn/archlinux/\$repo/os/\$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/\$repo/os/\$arch
Server = https://repo.huaweicloud.com/archlinux/\$repo/os/\$arch
Server = http://mirror.lzu.edu.cn/archlinux/\$repo/os/\$arch
新增完成之後,我們儲存退出即可
(沒用過vim的同志看過來,方向鍵可以調整游標位置,按i鍵之後即可進入編輯模式,此時可以寫入內容,寫入完成之後按下esc退出編輯模式,隨後按下冒號<真的要按下冒號,要使用shift那種>,輸入wq按回車即可儲存退出;如果你嫌wq兩個字母麻煩,可以直接輸入x,隨後回車退出,同樣也是儲存退出)
倉庫源修改完畢之後,我們就可以繼續下一步的操作啦
7.分割槽和格盤
安裝系統必備的一步了屬於是,由於這裡我們是使用新開虛擬機器操作,顧慮不用很多,不會刷寫到我們物理機的磁碟。但是在這裡我還是提一嘴嗷,資料無價,請謹慎操作。
使用命令
lsblk
檢視一下我們當前的磁碟狀態
可以看到我們分了20G的盤就在這裡,我們要操作的就是這個盤,記住了,他叫做sda,這一步很重要,不要搞錯了名字。(如何判斷我們的盤是哪一個=>你新建虛擬機器的時候分了多少的空間,這裡哪一個吻合就是哪一個)
記住我們要操作的盤叫做sda後,接下來我們使用cfdisk來進行磁碟操作,執行命令
cfdisk /dev/sda
這裡的sda就是你要安裝Arch系統的系統盤的名字,由於這裡我是sda,我將繼續使用sda做演示
執行之後會彈出這樣的視窗,選擇gpt回車
之後會進入這樣的頁面,操作之前,我來說一下這東西怎麼用
可以看到下面有一排操作選擇,我們可以使用左右方向鍵來移動。
-
第一個New為新建,也就是從某個空間中拿出多少空間作為新建磁碟區。
-
第二個Quit為退出,即退出這個軟體
-
第四個Write為寫入,即儲存修改
剩下的選項我們用不到,暫且不做講述,知道如何使用之後,我們來繼續操作
我們在Free space(空閒空間)中選擇New選項,回車即可彈出左下角的提示資訊,這裡是在詢問我們需要分配多少空間出來,我們首先分一個Swap分割槽出來,這個分割槽有點類似於Windows的交換檔案,這個分割槽的大小可以是你執行記憶體大小的60%左右,這裡我是分了2G的運存給虛擬機器,所以就是2G*0.6=1.2G,我們首先分1.2G出來
可以看到這裡就分了1.2G出來,名為sda1;但是我們先不管分出來的1.2G,我們繼續來分Free space。現在我們還剩18.8G,現在我們要分efi的引導區大小,理論來說efi的引導分割槽不會用太多空間,這裡我有點強迫症,剩下的800MB都分給它吧,我留下一個整的18G。
使用方向鍵上下調節上側選選項卡位置到Free Space,繼續New 800M出來
隨後剩下的全分出來
分完之後,我們回頭捋一下,sda1是Swap、sda2是efi引導區、sda3是Linux系統區。這裡一定要記住每個分割槽是幹嘛的,後面需要用到這幾個名字
捋完之後,我們不要退出,可以看到我們分好磁碟空間之後,下方的選項卡就變了,我繼續來說一下我們會用到的選項
-
第一個Delete是刪除當前所選磁碟,刪除之後,其空間會返回到Free space中,如果分錯了可以選擇這個刪除重新分配
-
第三個Quit是退出,不用多說了
-
第四個Type是調整磁碟型別,一會我們會用到,這裡先不展開細說
-
第六個Write為將修改寫入磁碟,相當與“儲存”功能
瞭解完成之後,我們繼續操作,選擇sda1,使用type功能,回車
可以看到這裡開啟一個選單頁面,這裡我們向上移動方向鍵,將sda1設定為Linux swap,回車
可以看到這裡成功修改了,隨後按照同樣的步驟,將sda2設定為EFI system將sda3設定為Linux filesystem(嚴格按照之前分盤的sda1為swap、sda2為efi引導、sda3為檔案系統來分配type)
設定完成之後,我們來選擇write將操作寫入磁碟
可以看到這裡有個提示,我們確認無誤後輸入yes(一定要輸入完整的“yes”,不要縮寫輸入y,這樣不會儲存)
當下方提示“The partition table has been altered.”後,說明修改成功,我們就可以選擇Quit來退出了
隨後我們來確保操作成功,執行命令
fdisk -l
檢視分割槽狀態
如果這裡顯示的和你設定的相一致,說明磁碟的分盤就已經完成了。我們可以進行格盤了
首先我們來格式化efi分割槽,執行命令
mkfs.fat -F32 /dev/sda2
#sda2切換成你的efi分割槽盤,後面有關硬碟的操作不再強調,請按照你的實際來選擇硬碟
隨後格式化Swap分割槽
mkswap /dev/sda1
格式化Btrfs分割槽(格式化系統分割槽)
mkfs.btrfs -L arch /dev/sda3
這裡-L選項後的arch可以自定義一個名字,這個名字將作為分割槽的LABLE,請不要使用空格和特殊字元,這裡我以arch這個名字作為分割槽的LABLE
至此磁碟格式化完成,如果沒有問題,就可以來進行下一步操作
強調一下,從現在開始,每個盤是幹嘛的還是要記住,後面要用到,用不到了的時候我會說
8.操作Btrfs分割槽
首先我們來掛載Btrfs分割槽(系統分割槽)到/mnt下
mount -t btrfs -o compress=zstd /dev/sda3 /mnt
檢查掛載情況
df -h
掛載完成之後,繼續來建立Btrfs子卷,依次執行命令
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
檢查子卷狀態,執行命令
btrfs subvolume list -p /mnt
如果顯示出來了相關ID資訊等等,即子卷建立成功,顯示的資料可能和我會有些出入,屬於正常現象。
子卷建立成功後,我們就可以解除安裝/mnt,掛載子捲了,解除安裝/mnt命令
umount /mnt
上述操作無誤後進入下一步
9.掛載
注意,我們的掛載是有順序的,請按照下面的命令和提示依次執行命令掛載分割槽
mount -t btrfs -o subvol=/@,compress=zstd /dev/sda3 /mnt #掛載根目錄,請使用Linux檔案系統盤(我的是sda3)
mkdir /mnt/home
mount -t btrfs -o subvol=/@home,compress=zstd /dev/sda3 /mnt/home #掛載/home使用者家目錄,請使用Linux檔案系統盤(我的是sda3)
mkdir -p /mnt/boot
mount /dev/sda2 /mnt/boot #掛載/boot啟動引導區,請使用efi盤(我的是sda2)
swapon /dev/sda1 #掛載/swap交換分割槽,請使用swap盤(我的是sda1)
注意,上面的六條命令一條不要少,掛載完成之後可以使用df命令查一下系統分割槽和efi引導分割槽是否掛載完成,執行命令
df -h
如上是沒有問題
使用free命令可以檢視swap掛載情況,執行命令
free
顯示出了Swap且空間大小和我們設定的相吻合,說明沒問題
上述操作全部設定完畢且無誤後,我們就可以安裝系統了
10.安裝系統
執行命令
pacstrap /mnt base base-devel linux linux-firmware btrfs-progs
安裝基礎包
當看到上面的提示,並且出現進度條在跑,開始下載東西后,說明這一步完成啦,接下來會進入一段等待時間,因為系統正在執行你的下載安裝命令。現在你可以中途休息一下,喝杯茶或者咖啡(希望你準備的茶或者咖啡到這一步沒有冷掉),起身走走,眺望一下遠處保護保護眼睛,等待進度條跑完後再回來繼續操作即可……
跑完之後,我們繼續來操作,下一步依舊是安裝,我們來安裝一下其他必要的工具,執行命令安裝vim、sudo、zsh和zsh-completions
pacstrap /mnt networkmanager vim sudo zsh zsh-completions
緊接著又會是一段進度條在跑,不過這個“進度條不長”,相比於剛才的很快就會跑完
安裝完成之後,我們繼續來操作,我們的系統還沒有完全安裝完畢
11.生成fstab檔案
fstab檔案時用來定義硬碟分割槽的重要檔案,是必不可少的檔案之一。由於我們之前已經掛載了重要的磁碟分割槽sda1、sda2和sda3,這裡我們可以使用genfstab命令來根據掛載情況自動生成並且寫入fstab檔案,執行命令
genfstab -U /mnt \> /mnt/etc/fastab
執行之後如果沒有返回任何資訊,說明執行成功,由於是自動生成,為了確保無誤,我們來看一下fastab中的資訊,執行命令
cat /mnt/etc/fastab
最後一次呼叫你關於sda的記憶,看看對應的是否正確,如果正確,那麼這一步就算是完成了,可以進行下一步操作了
好了好了,現在你可以忘掉那幾個sdaxxx具體誰都是幹嘛的啦~
12.切換工作區域
在說切換之前,我這裡先宣告好,一切操作都不需要重啟
我們使用arch-chroot命令來切換到我們安裝好的Arch系統環境中,執行命令
arch-chroot /mnt
當我們執行之後,shell會變成如上樣式,此時的/mnt目錄其實就相當於我們新安裝系統的根目錄/
進入完成之後,我們即可進行下一步的配置操作
13.設定系統的主機名和時區
首先我們來設定主機名,執行命令
vim /etc/hostname
在其中寫你喜歡的主機名即可,注意不要特殊字元,寫完儲存即可,這裡我給主機起名叫Arch了
接下來設定hosts檔案,執行命令
vim /etc/hosts
開啟後預設是這樣的,我們新增幾條條目
127.0.0.1 localhost
::1 localhost
127.0.0.1 arch.localdomain arch
注意這裡的Arch.localdomain Arch中的Arch為你的主機名,請根據實際情況更改(主機名區分大小寫,注意新增的條目前面不要有#)
主機名處理完畢後我們來更改系統的時區,執行命令
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
這樣時區就設定完畢啦,如果沒有問題,就繼續吧,我們的安裝馬上就要完成了
14.設定硬體時間
有點計算機知識的同志應該清除,主機板是有BIOS的,這個東西中本身就有時間,我們設定硬體時間就是為了讓BIOS硬體時間和作業系統所同步(個人理解);執行命令
hwclock --systohc
不要洩氣,安裝馬上結束
15.設定地區偏好
我們知道每個地區都有自己看時間的習慣,我們習慣使用年/月/日,但是有的地方不以這種方式;同樣的,還有字符集ASCII和UTF-8等等問題,這裡我們為了讓作業系統適合我們自己來使用,需要設定一下地區偏好,執行命令
vim /etc/locale.gen
去掉en_US.UTF-8 UTF-8和zh_CN.UTF-8 UTF-8前面的#
隨後儲存,執行命令
locale-gen
當出現如上提示,就說明命令執行成功了,隨後繼續執行
echo 'LANG=en_US.UTF-8' \> /etc/locale.conf
16.設定root密碼、安裝微碼和設定載入程式
root密碼好設定,直接passwd root即可,執行命令
passwd root
輸入密碼的時候會讓你輸入兩次,一次為輸入,一次為驗證,且輸入的時候不會顯示資訊,成功修改之後會顯示如上提示資訊
root密碼設定完畢之後,我們可以繼續安裝微碼了,執行下面的命令可以安裝對應晶片製造商的微碼,根據實際情況選擇即可
pacman -S intel-ucode #Intel微碼
pacman -S amd-ucode #AMD微碼
我的CPU是intel的,所以選擇了intel的微碼,執行安裝命令之後會出現上述提示,這裡確認安裝直接回車即可,隨後耐心等進度條跑完
跑完之後我們就可以來安裝載入程式了
執行如下命令來安裝載入程式
pacman -S grub efibootmgr os-prober
一樣的,等進度條跑完
跑完之後將GRUB安裝到EFI分割槽,執行命令
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH
如果出現No error reported,恭喜,GRUB此時已經成功安裝到EFI磁碟分割槽了。最後我們做一下啟動的最佳化小操作,使用vim編輯/etc/default/grub檔案,執行命令
vim /etc/default/grub
修改GRUB_CMDLINE_LINUX_DEFAULT一行,將末尾的quite去掉,新增nowatchdog,並且修改loglevel=5。修改後的圖如下
隨後儲存,儲存完畢之後執行命令
grub-mkconfig -o /boot/grub/grub.cfg
至此,引導製作完成
17.最後的最後,完成安裝
如果你到了這一步,恭喜你,安裝已經進入尾聲了
執行命令
exit
退出安裝環境
如上就已經成功退出了安裝環境,隨後解除安裝/mnt分割槽,執行命令
umount -R /mnt
最後的最後,我們來執行此次安裝要執行的最後命令
reboot
重啟進行完畢關機操作之後記得將CD檔案斷開連線,VMware的右下角右鍵CD圖示可以直接斷開連線
18.結束安裝與連線網路
重啟之後我們就可以正常引導進入Arch系統了
如果重啟完畢之後顯示瞭如上的介面,那麼恭喜你,成功的安裝了ArchLinux,接下來輸入賬戶名回車,密碼回車即可進入作業系統啦~
既然是Arch,怎麼能不執行fastfetch命令呢?來,我們使用pacman安裝一下,安裝之前,我們先來啟動一下Arch的networkmanager服務,否則Arch是沒有網路的哦,以此執行下面的命令
systemctl start NetworkManager \#啟動NetworkManager
systemctl enable NetworkManager \#將NetworkManager設定為開機自啟
或者直接執行這一條
systemctl enable --now NetworkManager \#立即啟動NetworkManager並將其設定為開機自啟
執行完enable出現上面的提示說明啟動完成
我們curl一下網站看看有沒有網路
ok,可以看到現在網路連線問題也解決了
隨後我們來安裝fastfetch吧,使用pacman安裝,執行命令
pacman -S fastfetch
安裝完成了,來執行一下fastfetch吧
fastfetch
自此,你的ArchLinux就徹徹底底的安裝完畢了,恭喜你走到了這一步!