U盤安裝Arch Linux

来源:https://www.cnblogs.com/silentdoer/archive/2023/03/08/17196737.html
-Advertisement-
Play Games

此文大多數來自這篇文章,但是修改了裡面一些錯誤的地方和優化了一些內容,以及增加了桌面安裝部分和其他一些常用軟體安裝(wayland下的輸入法/firefox等) https://zhuanlan.zhihu.com/p/112541071 正文開始: 安裝前的準備 在Windows還沒有被消滅之前, ...


此文大多數來自這篇文章,但是修改了裡面一些錯誤的地方和優化了一些內容,以及增加了桌面安裝部分和其他一些常用軟體安裝(wayland下的輸入法/firefox等)

https://zhuanlan.zhihu.com/p/112541071

正文開始:

安裝前的準備

在Windows還沒有被消滅之前,先用它製作一個啟動U盤(不是最終安裝的那個u盤),然後用這個U盤來安裝Arch Linux。為完成這一操作,需要準備如下工具:

  1. Windows電腦開機(什麼!你沒有Windows?那你還要裝什麼Arch Linux?);
  2. 下載Arch Linux鏡像文件——>清華大學開源軟體鏡像站
  3. 下載一個製作啟動U盤的工具,這裡我選擇——>rufus;[這裡註意,rufus寫u盤鏡像的時候,用u盤先轉換為GPT格式[guid],可以用diskgenius來整盤轉;然後rufus寫鏡像時分區類型選GPT)
  4. 一個容量2G以上的大U盤。(安裝u盤)
  5. 一個用於安裝移動操作系統的256G以上的移動u盤(系統u盤)

使用rufus製作啟動U盤的步驟非常簡單,選一下系統鏡像文件,選一下自己的U盤(一般會軟體自動選好的),點開始,安心等著就完事了。

來自rufus官方網站的截圖

準備安裝

把製作好的啟動U盤插上電腦,開機,瘋狂地按那個能夠啟動電腦BIOS的鍵。在BIOS中將U盤設為第一啟動項,保存退出,就可以等著進入U盤裡面的系統了。如果顯示出如下界面,說明啟動U盤製作成功了[我的界面沒有這麼炫,只有文字]。選擇第一個選項就可以開始安裝系統了,如果進不去系統,說明啟動U盤沒有做好,可能需要重新製作一份。

等待進入啟動U盤當中的Linux操作系統

等著系統自己啟動一小會兒,當進入到如下界面以後,就可以開始安裝系統了。

成功進入啟動U盤當中的Linux系統

首先,我們需要確定自己的啟動模式(UEFI/BIOS):[我用的是UEFI模式,一般u盤安裝盤和u盤系統盤都轉為了GPT,且BIOS里配置了UEFI(不要開CSM)那這裡一般就是UEFI]

ls /sys/firmware/efi/efivars

如果提示不存在這個文件,那就說明我們的啟動模式是BIOS,否則就是UEFI。下圖是一個BIOS啟動模式的示意圖。

BIOS啟動模式示意圖

【UEFI啟動模式】如果屏幕上出現一大把東西,那就說明電腦支持UEFI啟動模式。UEFI啟動模式需要在BIOS當中開啟,如果老鐵的硬體比較新,但又不是UEFI啟動模式,可能需要去自己的BIOS當中去看看了。

UEFI啟動模式示意圖

然後,我們需要給電腦連上互聯網。使用ip link查看電腦的所有網卡,然後用rfkill確保網卡能用。我的筆記本電腦使用無線網卡連接網路,對應網卡的名字是wlan0,這個名字在後面還會用到。

確定所有網卡的名字

使用命令行程式iwctl連接互聯網。首先,鍵入iwctl進入該程式,可以發現終端視窗發生了一些微妙的變化。

進入iwctl程式後的界面示意圖

輸入help可以查看該程式的幫助文檔,在這裡我們主要使用幾個以station開頭的命令。

iwctl幫助文檔當中值得註意的幾個以station開頭的命令

可以通過幾個命令的素質四連可以很快樂地完成互聯網的連接。分別是station list列出所有可用無線網卡的名字,然後用station <wlan> scan掃描當前可用的無線網(<wlan>需要換成自己的無線網卡名字,我的是wlan0),再然後使用station <wlan> get-networks展示掃描結果(在敲命令的過程中隨時都可以使用TAB鍵進行命令補全),最後使用station <wlan> connect <name>去連接相應的無線網,需要輸入無線網路的密碼(顯示為星號)。效果如下所示:

iwctl素質四連完成互聯網連接

值得註意的是,中文名無線網路會被顯示成方塊塊(就比如上面圖片當中就有一個wifi的名字全是方塊),所以把無線網名稱設置為純英文還是有必要的哈。完成無線網設置後,使用quit退出iwctl,回到熟悉的終端當中。

【有線連接】如果電腦插上了網線,那就應該能直接連上互聯網了,無需任何設置[這裡註意,全部安裝完畢,用u盤系統盤啟動後,這個wifi又失去了連接配置,而且station命令也沒了,可以用NetworkManager里的一個命令在root賬號情況下重新配置wifi,具體命令後面會講]。

使用ping -c 4 baidu.com測試一下是否成功地連上了互聯網,如果輸出和下圖非常類似的話,那就是成功了。有時候可能不會立馬就連上網,可以過十幾秒再試試ping

測試是否成功地連接上了網路

正式開始安裝系統了,首先更新一下系統時鐘:

timedatectl set-ntp true 

什麼輸出都沒有的話,就說明設置成功了。在Linux宇宙,啥輸出都沒有是最好的結果。可以用timedatectl status查看一下系統時鐘狀態,這裡的時間應該是UTC時間。

[註意,這裡可以不用用timedatectl設置時區那麼快,後面會有設置]

設置系統時鐘

現在開始做硬碟分區了,BIOS啟動模式和UEFI啟動模式的分區會有點不同,老鐵們請移步查看archlinux wiki獲取更多信息。輸入cfdisk就會進入一個非常好看的文本用戶界面。

【多硬碟情形】直接輸入cfdisk預設處理的是/dev/sda[註意自己安裝的情形是一定要通過後面的cfdisk /dev/xxx選擇系統u盤的],如果老鐵有很多硬碟,可以先用fdisk -l查看所有硬碟名稱,然後用cfdisk /dev/XXX處理相應硬碟。

如果是BIOS啟動模式,首先刪掉所有現有分區,然後新建兩個分區,一個至少512M的swap分區,一個用掉所有剩餘空間的分區。用type設定各個分區的格式,swap分區設定為Linux swap,另一個分區取預設值83 Linux

UEFI啟動模式】如果是UEFI啟動模式,同樣刪掉所有現有分區(這個最好安裝前就先把系統u盤的所有分區刪除掉),然後新建三個分區,一個300M的boot分區,一個至少512M的swap分區(我選了2G),最後一個分區用掉所有剩餘空間。用type設定各個分區的格式,boot分區設為EFI Systemswap分區設為Linux swap ,剩下的分區設為Linux root x86-64

[這裡解釋一下,一開始Free Space里只有一個未分區的硬碟,Free Space選擇它,最下麵有[New],按下New後,下麵會提示new的分區大小是多少,第一次對Free Space我是用來分出boot分區的,因此刪除預設給出的大小,輸入300M;

接著繼續選擇Free Space,第二次也是New 輸入2048M,第三次選擇Free Space New後就用它預設的分區大小回車即可(第三個分區用剩餘的全部容量),接著再分別選擇boot swap root三個分區分別選擇下麵的Write回車]

選擇write寫入分區表(看上面一點解釋,是三個分區分別都write),在出現的對話框中用yes確認寫入後退出cfdisk。分區完成以後就要格式化一下硬碟,那個大於512M的分區格式化為swap,命令如下:

[我這裡的swap由於是第二次分的,所以它在我這裡是/dev/sdc2,當然不絕對,要看分區具體的描述決定]

mkswap /dev/sdXY
swapon /dev/sdXY

這裡面的sdXY要按照自己的實際情況來填,在我的例子當中我只有一個硬碟,同時swap分區是放在sda2分區的,這裡我的參數就是/dev/sda2。然後再格式化我的/dev/sda3,相應的命令是mkfs.ext4 /dev/sda3(這個是root分區,roo分區因為最大所以格式化會比較久)。如果分了更多的區,那就要依次進行格式化。這個格式化操作會比較慢一些,略微等一下就好。如果不記得自己的分區表了,可以用cfdiskfdisk -l檢查一下自己的分區表,可以從容量和類型等屬性來判斷具體某個分區是乾什麼用的。

【UEFI啟動模式】如果是UEFI啟動模式,boot分區要格式化為FAT32分區(boot分區就是那個EFI System的)。

mkfs.vfat -F32 /dev/XXX
格式化硬碟

格式化完成以後就要掛載硬碟,因為這個時候的系統是運行在U盤裡的,而你要對電腦的硬碟進行操作,顯然需要掛載一下,相當於把硬碟當成大號U盤(系統u盤)插到小u盤(安裝u盤)上面。命令當中的/dev/sdXY需要根據實際情況設置為自己的根目錄,也就是那個比較大,占掉所有剩餘空間的硬碟分區(root目錄,ext4文件系統的那個,我的是/dev/sdc3)。

mount /dev/sdXY /mnt

【UEFI啟動模式】如果是UEFI啟動模式,需要在/mnt下新建一個boot文件夾,然後把boot分區掛載到該文件夾下(註意這裡是boot分區,那個EFI System的而非root分區)。如果有更多硬碟,也可以在這個時候用同樣的方法掛載上來。

mkdir /mnt/boot
mount /dev/XXX /mnt/boot

正式安裝

選擇合適的鏡像源,使用vim打開/etc/pacman.d/mirrorlist,找一個感覺速度比較快的鏡像源用dd切掉,gg到首行按p粘貼一下(最上面的最優先),然後:wq存儲並退出。這樣在安裝軟體的時候,網速就會比較快了。當然也可以直接使用清華鏡像源(即第一個Server上面加一行:

Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch

),請參考如下幫助文檔。

archlinux | 鏡像站使用幫助 | 清華大學開源軟體鏡像站 | Tsinghua Open Source Mirror mirrors.tuna.tsinghua.edu.cn/help/archlinux/

調整完鏡像源以後,可以刷新一下軟體包緩存:

pacman -Syy

現在可以正式開始安裝系統了,安裝系統使用pacstrap,輸入如下命令安裝一些基礎包:

pacstrap /mnt base linux linux-firmware base-devel

除了這些包以外,我們還可以安裝許多其他的包,比較重要的是一定要安裝一個網路管理器和一個文本編輯器,否則新系統啟動後連不上網或者是改不了配置文件就傻了。

pacstrap /mnt networkmanager dhcpcd vim

networkmanager提供nmcli(命令行工具)和nmtui(文本界面工具)用來聯網,dhcpcd用來動態獲取ip地址,vim用來編輯配置文件。只要能連上網,別的軟體都可以晚點裝,目前裝這麼多東西就足夠開機了。需要等待安裝過程完成以後,再執行後續的操作,現在可以出去上個廁所先。

生成分區表:

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

如果掛載了其他的硬碟,那麼這一步會把他們的相關信息寫入配置文件,開機啟動後會自動完成硬碟掛載。如果在前面的操作當中沒有掛載其他硬碟,系統便不會把相關信息寫入配置文件,系統啟動後如果想要使用其他硬碟,還需要手動掛載。

進入新系統:

arch-chroot /mnt

設置時區(當然了,如果不在國內肯定就不設置上海的時區了哈):

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

設置硬體時間

hwclock --systohc

本地化設置,使用vim打開/etc/locale.gen,把en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8取消註釋,保存退出。運行下麵兩條命令:

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

註意到這裡設置的是en_US.UTF-8,這是因為中文在終端中可能會被顯示為方塊塊(後面安裝了中文字體後可以考慮換成zh_CN.UTF-8)。

設置網路(這裡的myhostname取一個自己喜歡的名字)(這裡的網路應該是錯誤的說法,感覺這裡設置的是windows下的主機名,我的是xxx-PC):

echo myhostname >> /etc/hostname

使用vim打開/etc/hosts,在裡面輸入下麵三行內容(myhostname換成上面自己取的名字,localdomain隨便取一個自己喜歡的組織名):

127.0.0.1	localhost
::1		localhost
127.0.1.1	myhostname.localdomain	myhostname

設置root用戶的密碼(連輸兩遍,輸入時無顯示):

passwd

intel的CPU安裝intel-ucodeamd的CPU安裝amd-ucode。如果不太確定自己的cpu型號,可以安裝一個neofetch,然後使用neofetch查看。(不知道能不能兩個都安裝?)

# 可選項
pacman -S neofetch
neofetch # 查看cpu和顯卡信息

# 必選項
# 但是需要根據實際情況安裝其中某一個就可以了 
pacman -S intel-ucode
pacman -S amd-ucode 

對於BIOS啟動模式,安裝grub用來啟動系統,註意sdX後面沒有數字:

pacman -S grub
grub-install --target=i386-pc /dev/sdX
grub-mkconfig -o /boot/grub/grub.cfg

UEFI啟動模式】對於UEFI啟動模式,需要同時安裝grubefibootmgr

pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB 
grub-mkconfig -o /boot/grub/grub.cfg

(這裡註意,上面的=GRUB的GRUB似乎可以自定義,比如可以寫ArchLinux)

退出系統,準備關機了:

exit

卸載剛剛掛載上來的硬碟(卸載失敗也無所謂,不強求,一般會提示busy):

umount /mnt

重啟電腦(黑屏的時候記得拔掉U盤,或者是在啟動前重新進BIOS設置啟動順序):

reboot

進入系統

開機後顯示這樣的畫面,就說明我們已經成功地安裝好Arch Linux系統了。

等待登錄

登錄的時候輸入root作為用戶名,密碼自然是自己在安裝系統的時候設置好的密碼。

登錄成功

安裝完成後

在使用NetworkManager聯網之前,先啟動必要的後臺服務,然後用nmclinmtui(推薦)聯網就可以了。

systemctl start  NetworkManager
systemctl enable NetworkManager
systemctl start  dhcpcd
systamctl enable dhcpcd

連接上互聯網以後(註意,這裡需要用root賬號再通過nmtui來連wifi,選擇Activate xxx,然後選擇對應的wifi連接,連接好後可以用ip -brief address看下自己的ip情況),我們需要創建一個普通用戶賬號,一直使用root不太好。username可以改成自己喜歡的用戶名,-m表示創建用戶的家目錄~-G表示把用戶放進wheel這個

useradd -m -G wheel username

創建完用戶以後,設置一下該用戶的密碼:

passwd username

為了讓新創建普通用戶能夠獲得管理員許可權,安裝sudo包:

pacman -S sudo

安裝完畢以後,使用vim打開/etc/sudoers,找到%wheel ALL=(ALL:ALL) ALL這一行取消註釋,然後使用:wq!強制改寫該文件,使得wheel這個組內的用戶都可以使用sudo

使用exit退出root帳號,用普通用戶登錄系統後就可以正式開始使用archlinux系統了。

 

接下來就是安裝桌面環境和桌面環境下的一些軟體了:

1.安裝中文字體:

sudo pacman -S wqy-zenhei ttf-fireflysung noto-fonts(也可以找一些其他更好看的字體)

2.安裝KDE Plasma:

sudo pacman -S plasma-wayland-session plasma-wayland-protocols qt5-wayland qt6-wayland xorg-xwayland plasma sddm konsole dolphin kate ark okular spectacle

安裝完成後再用:systemctl enable sddm啟動登錄管理器服務;

3.安裝中文輸入法:

sudo pacman -S fcitx5-im fcitx5-chinese-addons

安裝完成後設置環境變數:

sudo vim /etc/environment,添加這些配置:

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
INPUT_METHOD=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus

這裡預設的輸入法不好用,但是又不知道搜狗支持wayland不,如果支持可以用:yay -S fcitx5-pinyin-zhwiki fctix5-pinyin-sougou安裝試下;

 

接著重啟電腦(重啟後桌面環境才會生效)

啟動後就可以看到進入了桌面環境,其左上角可以看到預設是wayland,賬戶是上面新建的非root賬號;

登錄進去後發現KDE是英文,可以點擊左下角菜單,選擇System Settings-> Regional Settings,可以看到語言預設是美國的,點擊Modify就可以選擇簡體中文(如果上面沒有安裝中文字體會發現有亂碼)

如果發現輸入法不能用,可以試著註銷一下用戶;

 

接著安裝瀏覽器,可以之間用sudo pacman -S firefox安裝;

至此arch linux基本功能的安裝就結束了;


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 使用記憶體對齊機制優化結構體性能,妙啊! 可以簡單理解為:將對齊繫數小的欄位,儘可能放在一起,儘量減少空白填充。 掌握了記憶體對齊機制後,結構體Struct的優化,調整下欄位順序,效果立竿見影。記憶體對齊其實就是典型的空間換時間的方式,來達到優化的目的。牢記對齊原則,對實際場景進行分析,減少空白填充。 ...
  • 昨天在群里看到有小伙伴問,Java里如何解析SQL語句然後格式化SQL,是否有現成類庫可以使用? 之前TJ沒有做過這類需求,所以去研究了一下,並找到了一個不過的解決方案,今天推薦給大家,如果您正要做類似內容,那就拿來試試,如果暫時沒需求,就先瞭解收藏(技多不壓身)。 JSqlParser JSqlP ...
  • 本文已經收錄到Github倉庫,該倉庫包含電腦基礎、Java基礎、多線程、JVM、資料庫、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分散式、微服務、設計模式、架構、校招社招分享等核心知識點,歡迎star~ Github地址:https://github.c ...
  • 自動化測試環境的搭建 :一、安裝 selenium: 安裝方式一: pip install -U selenium 安裝方式二: 手動安裝 selenium: 1、安裝python包,選擇全部組件(pip、安裝過程中配置環境變數)解壓selenium-4.8.2.tar.gz,然後用cmd進入解壓目 ...
  • 代碼覆蓋率(Code coverage)是指在軟體測試中測試用例執行時覆蓋的代碼量與總代碼量的比例。代碼覆蓋率是軟體測試中一個重要的指標,它對於保障軟體質量、提高軟體可靠性和可維護性具有許多好處:發現代碼缺陷、提高代碼的可維護性、確保代碼的正確性和優化測試用例質量等。 我們常用的 IDE,Visua ...
  • Github Actions 是 Github 提供的一種持續集成(CI)和持續部署(CD)工具,可以自動化代碼開發、測試、構建和部署的過程。它可以在代碼倉庫中通過配置文件來定義工作流程(Workflow),包括觸發事件、執行任務和處理結果等。這些工作流程可以與Github倉庫的其他功能(如Issu ...
  • 【開門見山】 實現目標: 需要讓歌詞列表隨著播放的時間更新而滾動,即實時的跟隨歌曲的進度而滾動 效果: ​編輯 需要事先準備的東西: 1.音頻(mp3格式): ​編輯 2.歌詞(詳細): ​編輯 先展示html和css的實現(不重要,自己想怎樣調都行,重點在js的邏輯實現) 1.html: 小tip ...
  • 序言 閑來無聊,前段時間發現一個.net開源框架:masa framework。經過一些小型項目使用,發現確實挺不錯的。然後我又去閱讀了整個masa framework源碼,特此來記錄整個源碼閱讀的過程。 如有錯誤之處還請指點 MASA Framework簡介 ​ Masa Framework是 m ...
一周排行
    -Advertisement-
    Play Games
  • C#TMS系統代碼-基礎頁面BaseCity學習 本人純新手,剛進公司跟領導報道,我說我是java全棧,他問我會不會C#,我說大學學過,他說這個TMS系統就給你來管了。外包已經把代碼給我了,這幾天先把增刪改查的代碼背一下,說不定後面就要趕鴨子上架了 Service頁面 //using => impo ...
  • 委托與事件 委托 委托的定義 委托是C#中的一種類型,用於存儲對方法的引用。它允許將方法作為參數傳遞給其他方法,實現回調、事件處理和動態調用等功能。通俗來講,就是委托包含方法的記憶體地址,方法匹配與委托相同的簽名,因此通過使用正確的參數類型來調用方法。 委托的特性 引用方法:委托允許存儲對方法的引用, ...
  • 前言 這幾天閑來沒事看看ABP vNext的文檔和源碼,關於關於依賴註入(屬性註入)這塊兒產生了興趣。 我們都知道。Volo.ABP 依賴註入容器使用了第三方組件Autofac實現的。有三種註入方式,構造函數註入和方法註入和屬性註入。 ABP的屬性註入原則參考如下: 這時候我就開始疑惑了,因為我知道 ...
  • C#TMS系統代碼-業務頁面ShippingNotice學習 學一個業務頁面,ok,領導開完會就被裁掉了,很突然啊,他收拾東西的時候我還以為他要旅游提前請假了,還在尋思為什麼回家連自己買的幾箱飲料都要叫跑腿帶走,怕被偷嗎?還好我在他開會之前拿了兩瓶芬達 感覺感覺前面的BaseCity差不太多,這邊的 ...
  • 概述:在C#中,通過`Expression`類、`AndAlso`和`OrElse`方法可組合兩個`Expression<Func<T, bool>>`,實現多條件動態查詢。通過創建表達式樹,可輕鬆構建複雜的查詢條件。 在C#中,可以使用AndAlso和OrElse方法組合兩個Expression< ...
  • 閑來無聊在我的Biwen.QuickApi中實現一下極簡的事件匯流排,其實代碼還是蠻簡單的,對於初學者可能有些幫助 就貼出來,有什麼不足的地方也歡迎板磚交流~ 首先定義一個事件約定的空介面 public interface IEvent{} 然後定義事件訂閱者介面 public interface I ...
  • 1. 案例 成某三甲醫預約系統, 該項目在2024年初進行上線測試,在正常運行了兩天後,業務系統報錯:The connection pool has been exhausted, either raise MaxPoolSize (currently 800) or Timeout (curren ...
  • 背景 我們有些工具在 Web 版中已經有了很好的實踐,而在 WPF 中重新開發也是一種費時費力的操作,那麼直接集成則是最省事省力的方法了。 思路解釋 為什麼要使用 WPF?莫問為什麼,老 C# 開發的堅持,另外因為 Windows 上已經裝了 Webview2/edge 整體打包比 electron ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...