准備工作
工具和必要技能
-
划分一定量的磁盤空間用於linux安裝(推薦至少30G)
-
在bios設置中關閉啟設置中的安全啟動(如有沒有該設置則略過,對archlinux使用安全啟動可參考archwiki-Secure Boot)
-
互聯網(安裝需要聯網)
-
U盤(使用u盤安裝方便許多)
-
Arch Linux ISO文件(在該頁面根據國家和地區選擇網站,下載.iso文件)
-
nano或vim基本操作技能(安裝過程中編輯配置文件)
-
啟動盤制作工具(制作啟動盤)
-
windows可使用usbwriter、poweriso、winsetupfromusb等工具。
-
Linux/OSX可使用dd命令。示例:
dd if=/path/arch.iso of=/dev/sdb bs=10M
/path/arch.iso
是archlinux的ISO文件的路徑,sdx
是U盤的設備編號如sda、sdb、sdc等(可插上優盤后在終端用df -h
命令查看),10M
是讀寫塊的大小(默認512b)。 -
插上U盤啟動盤,使用USB啟動(不同設備方法不同),計算機載入U盤上的系統后,回車選擇第一項(默認)進入,等待一切載入完畢……
分區和掛載
可以先使用lsblk
查看所有硬盤情況,使用fdisk -l /dev/sda
查看硬盤a的情況(硬盤b則為/dev/sdb
),確定系統安裝位置。
分區工具cfdisk
的簡單使用:
- 查看整個磁盤的情況
cfdisk /dev/sda
(第二塊硬盤則是cfdisk /dev/sdb
) - 利用箭頭進行上下左右移動,選中項會高亮顯示,回車鍵確定操作。
New
用於新建分區,輸入新建分區的大小並回車,建立了一個分區。Delete
刪除當前選中的分區。Type
選擇分區類型。Write
用於保存操作。quit
退出(直接輸入q
亦可)。
如果硬盤未進行划分,執行cfdisk即會提示選擇分區方式,如今建議使用GPT 。以下基於GPT+UEFI敘述創建分區(MBR在其中亦有說明)。
分區建立和格式化
-
EFI系統分區(又稱為esp,以下均以esp稱呼)
GPT使用esp引導系統,在linux中將esp掛在的
/boot
,linux的啟動文件置於該分區中。-
如果不存在esp,創建一個類型為
EFI system
的分區(以下假設esp使用/dev/sda1
) ,並對其格式化:mkfs.vfat /dev/sda1 #1. 格式化esp
-
如果已經存在一個esp(例如已經有一個Windows系統,且打算保留),則不要對其進行格式化,否則造成其他系統無法啟動。
-
-
其他分區
-
使用
cfdisk
新建root分區(推薦20G以上,假設為/dev/sda2
)home分區(最好單獨分區,假設為/dev/sda3
)和swap分區(可選,假設為/dev/sda4
)等,然后格式化各個分區:mkfs.ext4 /dev/sda2 #格式化root mkfs.ext4 /dev/sda3 #格式化home mkswap /dev/sda4 #格式話swap
-
LVM分區法
這里使用lvm,將root、home和swap均放置到一個卷組(vg)中。(LVM相關查看archwiki:lvm)
先用
cfdisk
建立一個分區(假設為/dev/sda2
),再建立物理卷->建立卷組->建立邏輯卷->格式化邏輯卷:#1.建立物理卷:在 /dev/sda2建立物理卷 pvcreate /dev/sda2 #2.建立卷組:新建名為linux的卷組並將sda2加入到卷組中 vgcreate linux /dev/sda2 #3.建立邏輯卷:在linux卷組中建立root、swap和home邏輯卷 lvcreate -L 30G linux -n root lvcreate -L 4G linux -n swap lvcreate -L 100G linux -n home # lvcreate -l +100%FREE linux -n home #3.2.1 用linux卷組中所有剩余空間建立home邏輯卷 mkfs.ext4 /dev/mapper/Linux-root #格式化root mkfs.ext4 /dev/mapper/Linux-home #格式化home mkswap /dev/mapper/Linux-swap #格式化swap
-
分區掛載
- 一般分區法
mount /dev/sda2 /mnt #掛載root分區
mkdir /mnt/boot /mnt/home #建立boot和home掛載點
mount /dev/sda1 /mnt/boot #掛載esp到/boot
mount /dev/sda3 /mnt/home #掛載home分區到/home
swapon /dev/sda4 #激活swap
- lvm分區法
mount /dev/mapper/linux-root /mnt #掛載root分區
mkdir /mnt/boot /mnt/home #建立boot和home掛載點
mount /dev/sda1 /mnt/boot #掛載esp到/boot
mount /dev/mapper/linux-home /mnt/home #掛載home邏輯卷到/home
swapon /dev/mapper/linux-swap #激活swap
基礎安裝
以下安裝過程中遇到需要選擇的地方,如不清楚如何選擇,可直接回車。
配置鏡像源
在安裝前最好選擇較快的鏡像,以加快下載速度。
編輯 /etc/pacman.d/mirrorlist
,選擇首選源(按所處國家地區關鍵字索搜選擇,如搜索china),將其添加到文件開頭,保存並退出。一些中國地區鏡像源如:
Server = https://mirrors.ustc.edu.cn/archlinux/repo/os/arch
Server = https://mirrors.163.com/archlinux/repo/os/arch
連接網絡
dhcpcd #有線網絡
wifi-menu #無線網絡 執行后會掃描網絡 選擇網絡並連接即可
ping -c 5 z.cn #可先測試連接情況
安裝基礎系統
pacstrap /mnt base base-devel
建立fstab文件
genfstab -U /mnt > /mnt/etc/fstab
cat /mnt/etc/fstab # 檢查生成的 /mnt/etc/fstab 文件是否正確
進入系統
arch-chroot /mnt
激活lvm2鈎子
使用了lvm安裝,需要執行該步驟,否則跳過。
編輯/etc/mkinitcpio.conf文件,找到類似字樣:
HOOKS="base udev autodetect modconf block filesystems keyboard fsck"
在block 和 filesystems之間添加lvm2
(注意lvm2和block及filesystems之間有一個空格),類似:
HOOKS="base udev autodetect modconf block lvm2 filesystems keyboard fsck"
再執行:
mkinitcpio -p linux
用戶管理
- 用戶和密碼
passwd #設置或更改root用戶密碼 接着輸入兩次密碼(密碼不會顯示出來)
useradd -m -g users -s /bin/bash user1 #添加新普通用戶 user1是新建的用戶名
passwd user1 #設置或更改user1用戶密碼 接着輸入兩次密碼
- sudo用戶
chmod u+w /etc/sudoers
echo 'user1 ALL=(ALL) ALL' >> /etc/sudoers #將user1加入sudo
設置時區
windows用戶還需參考后文windows和linux統一使用UTC 。
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 設置時區 示例為中國東八區標准時間--Asia/Shanghai
hwclock --systohc --utc #使用utc時間 推薦
主機名
echo MyPC > /etc/hostname
MyPC是要設置的主機名。
網絡配置
systemctl enable dhcpcd #開機自啟動有線網絡 當然也可以手動執行 dhcpcd 連接
pacman -S iw wpa_supplicant dialog #無線網絡需要安裝這些工具
參看網絡配置了解更多。
注意:linux自帶的linux-frimware
已經支持大多數驅動,如果某些設置不能使用,參看archwiki:網絡驅動
系統引導
#安裝引導程序 grub 和 efi管理工具
pacman -S grub efibootmgr --noconfirm
# 如安裝有多系統 需安裝 os-prober
pacman -S os-prober
# 安裝引導 使用了efi的情況
grub-install --efi-directory=/boot --bootloader-id=grub
# 生成引導配置
grub-mkconfig -o /boot/grub/grub.cfg
注意:os-prober可能需要在系統安裝完畢后,重啟進入系統再次執行生成引導配置命令就能檢測到其他系統。
至此基礎的系統安裝完成,可以連續按兩次ctrl
+d
,輸入reboot
重啟並拔出u盤。
提醒:如果使用多系統,安裝了os-prober,重啟后再后執行一次:
grub-mkconfig -o /boot/grub/grub.cfg
如果雙系統用戶直接進入了Windows系統,可參看選擇grub為第一啟動項 。
系統配置
圖形界面
顯卡驅動
首先需要了解設備的顯卡信息,也可是使用lspci | grep VGA
查看。根據顯卡情況安裝驅動:
pacman -S xf86-video-vesa #通用顯卡
pacman -S xf86-video-intel #intel集成顯卡
pacman -S xf86-video-ati #amd/ati
pacman -S nvidia #nvidia
雙顯卡設備,可參看后文雙顯卡管理。
桌面環境/窗口管理器
pacman -S plasma sddm --noconfirm && systemctl enable sddm
pacman -S gnome gdm --noconfirm && systemctl enable gdm
pacman -S xorg-server xorg-xinit --noconfirm #安裝窗口管理器也必須安裝這兩個包
pacman -S i3
pacman -S awesome
字體
參看archwiki:fonts選擇安裝字體。
- 終端等寬字體,如
ttf-dejavu
- 數學和符號字體,如
ttf-symbola
(包含emoji表情,emoji也可安裝noto-fonts-emoji
) - 中文字體參看下文中文顯示。
中文本地化
- Locale設置
編輯/etc/locale.gen
,根據本地化需求移除對應行前面的注釋符號(#),Locale 決定了可使用的語言、書寫習慣和字符集。以中文用戶常用locale為例,選擇英文(美國)UTF-8、簡體中文GBK、簡體中文UTF-8和繁體中文UTF-8,去掉這些行之前前面#號:
en_US.UTF-8 UTF-8
zh_CN.GBK
zh_CN.UTF-8 UTF-8
zh_TW.UTF-8 UTF-8
保存退出后執行:
locale-gen
中文顯示
安裝中文字體如:
pacman -S wqy-micorhei #文泉驛微米黑
pacman -S adobe-source-han-sans-cn-fonts # 思源黑體
pacman -S ttf-arphic-uming #文鼎明體
更多字體參看中日韓越字體 ,中文顯示異體字形參看該文的修正簡體中文顯示為異體(日文)字形 。
中文輸入
- fcitx本體帶有:拼音(主流雙拼支持)、二筆、五筆(支持五筆拼音混輸)等,
pacman -S fcitx fcitx-im fcitx-configtool #安裝fcitx
pacman -S fcitx-cloudping #雲拼音插件(推薦拼音用戶安裝)
pacman -S fctix-rime #rime中州韻(即小狼毫/鼠須管)引擎
pacman -S fcitx-libpinyin #智能拼音(支持搜狗詞庫)
pacman -S fcitx-sogoupinyin #可使用搜狗拼音(自帶雲拼音)
環境變量設置:在``/etc/environment`添加
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
- ibus
pacman -S ibus ibus-qt #ibus本體 ibus-qt保證在qt環境中使用正常
pacman -S ibus-pinyin #拼音
pacman -S ibus-libpinyin #智能拼音(支持搜狗詞庫)
pacman -S ibus-rim #rime
初次啟用:
ibus-setup
環境變量設置:在/etc/environment
添加:
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
聲音
桌面環境用戶可略過。
窗口管理器用戶可以安裝alsa-utils
管理聲音,安裝該包后筆記本可以使用相應的快捷鍵進行控制。更多信息查看ALSA安裝設置
pacman -S alsa-utils
alsamixer #安裝上一個包后可使用該命令控制聲音設備
軟件包管理器
pacman
更多信息查看[archwiki:pacman]((https://wiki.archlinux.org/index.php/Pacman_(簡體中文))
- 常用命令
pacman -Syu #升級整個系統
pacman -S name #安裝軟件
pacman -Ss words #查詢有某關鍵字的軟件 words即是要查詢的關鍵字
pacman -R name #移除某軟件但不移除其依賴
pacman -Qi name #查看已經安裝的某軟件的信息
-
pacman 設置
配置文件在/etc/pacman.conf
,編輯該文件:-
彩色輸出:取消
#Color
中的#號。 -
升級前對比版本:取消
#VerbosePkgLists
中的#號。 -
社區鏡像源:在末尾添加相應的源,中國地區社區源archlinuxcn
例如添加archlinuxcn.org的源
[archlinuxcn]
SigLevel = Optional TrustedOnly
Server = http://repo.archlinuxcn.org/$arch
添加完后執行:
pacman -Syu archlinuxcn-keyring
。
-
AUR和yaourt
AUR(Arch User Repository)是為用戶而建、由用戶主導的Arch軟件倉庫。aur軟件可以通過yaourt等輔助管理器搜索、下載和安裝,或者從aur.archlinux.org中搜索下載,用戶自己通過makepkg生成包,再由pacman安裝。
- aur工具yaourt
pacman -Syu yaourt
注:yaourt前不能使用sudo,root用戶也不能使用yaourt ,卸載軟件依然使用pacman相關命令。yaourt基本命令:
yaourt words #搜索關鍵字 words是要搜索的關鍵字
yaourt -Syua #更新整個系統
yaourt -S name #安裝軟件
yaourt -Qdt #查找孤兒包
此外可使用 pacman圖形化的前端工具,如tkpacman:
yaourt -S tkpacman vte
設備連接
觸摸板
桌面用戶無需安裝,窗口管理器用戶安裝:
pacman -S xf86-input-synaptics
藍牙
桌面用戶忽略該小節。窗口管理器用戶:
pacman -S bluez
systemctl enable bluetooth
usermod -aG lp user1 #user1是當前用戶名
藍牙控制:命令行控制安裝bluez-utils
,使用參考通過命令行工具配置藍牙;或者安裝藍牙圖形界面工具如blueberry
。
NTFS分區
桌面環境的文件管理器一般都能讀取NTFS分區的內容,但不一定能能夠寫入。可使用ntfs-3g
掛載:
pacman -S ntfs-3g #安裝
mkdir /mnt/ntfs #在/mnt下創建一個名為ntfs掛載點
lsblk #查看要掛載的ntfs分區 假如此ntfs分區為/dev/sda5
ntfs-3g /dev/sda5 /mnt/ntfs #掛載分區
U盤和MTP設備
桌面環境一般能自動掛載。窗口管理器用戶:
- 使用udisk和libmtp
pacman -S udiskie udevil
systemctl enable devmon@username.service #username是用戶名
pacman -S libmtp
在/media目錄下即可看到掛載的移動設備。
- 使用gvfs gvfs-mtp(xfce、lxde等桌面如果不能掛在mtp,也可安裝
gvfs-mtp
)
pacman -S gvfs #可自動掛載u盤
pacman -S gvfs-mtp #可自動掛載mtp設備
其他配置(問題解決)
選擇grub為第一啟動項
安裝系統后重啟,直接進入了windows ,因為windows的引導程序bootloader並不會將linux啟動項加入到啟動選擇中,且windows的引導程序處於硬盤啟動的默認項。
進入BIOS,找到啟動設置,將硬盤啟動的默認啟動項改為grub(一般BIOS中按f5上調選項,f10保存)。
無法啟動圖形界面
參看前文圖形界面 。原因可能是:
- 沒有安裝顯卡驅動(雙顯卡用戶需安裝兩個驅動)
- 沒有正確安裝圖形界面
- 沒有自啟動圖形管理器或xinintrc書寫錯誤
非root用戶(普通用戶)無法啟動startx
重裝一次xorg-server
關閉windows快速啟動
windows快速啟動導致無法進入Linux。windows開啟了快速啟動可能導致linux下無法掛載,提示如
The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
等內容。需要在windows里面的 電源選項管理 > 系統設置 > 當電源鍵按下時做什么, 去掉勾選啟用快速啟動。
或者直接在cmd中運行:powercfg /h off
。
高分辨率(HIDPI)屏幕字體過小
桌面環境設置中可調整。參考archwiki-hidpi
蜂鳴聲(beep/錯誤提示音)
去除按鍵錯誤時、按下tab擴展時、鎖屏/注銷等出現的“嗶~”警告聲。參考archwiki-speaker
rmmod pcspkr #暫時關閉
echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf #直接屏蔽
雙顯卡管理
如果不需要運行大量耗費GPU資源的程序,可以禁用獨立顯卡,只使用核心顯卡。
可執行以下命令關閉獨立顯卡:
su #必須切換到root用戶才能執行下一條命令
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch #注意,如果使用了bbswtich那么應該是沒有這個文件的!
或者屏蔽獨立顯卡相關模塊,如nvidia設備執行:
lsmod | grep nvidia | cut -d ' ' -f 1 > /tmp/nvidia
lsmod | grep nouveau | cut -d ' ' -f 1 > > /tmp/nvidia
sort -n /tmp/nvidia | uniq > /tmp/nvidia.conf#去重
sed -i 's/^\w*$/blacklist &/g' /tmp/nvidia.conf #添加blacklist
sudo cp /tmp/nvidia.conf /etc/modprobe.d/nvidia.conf #移動
重啟后,lspci |grep NVIDIA
檢查NVIDIA開啟情況。如果輸出內容后面的括號中出現了 (rev ff)
字樣則表示該顯卡已關閉。
在Linux中可使用以下方法來切換顯卡。參看相關資料:
- prime(NVIDIA和ATI均支持)
- NVIDIA optimus(NVIDIA的方案,這里主要推薦以下兩個)
- bumblebee
- nvidia-xrun(更推薦,該方案支持Vulkan接口)
科學上網
-
hosts:在
/etc/hosts
文件中加入hosts內容即可,可參考googelhosts 。echo "alias hosts='sudo wget https://raw.githubusercontent.com/googlehosts/hosts/master/hosts-files/hosts'" >> ~/.bashrc && source ~/.bashrc
執行
hosts
即可從指定網址更新。 -
lantern:安裝
lantern
-
-
socks代理 — proxychains
配置:編輯/etc/proxychains.conf文件,設置
socks5 127.0.0.1 1080
。使用:
proxychains [命令或者程序名]
SSD固態硬盤相關
參看:Solid State Drives和ssd固態硬盤優化
windows和linux統一使用UTC
Windows使用本地時間(Localtime),而Linux則使用UTC(Coordinated Universal Time ,世界協調時),更改windows注冊表使windows也使用utc時間。
- 在windwos新建文件
utc.reg
,寫入:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=dword:00000001
保存后,雙擊該文件運行,以寫入注冊表。
- windows調整為正確時間后,重啟系統,在BIOS中根據當地所用的標准時間來設置正確的UTC時間。(例如在中國使用的北京時間是東八區時間,根據當前北京時間,將BIOS時間前調8小時)。
wayland
wayland不會讀取.xprofile和xinitrc等xorg的環境變量配置文件,故而不要將某些軟件的相關設置寫入到上訴文件中,可寫入/etc/profile、 /etc/bash.bashrc 和/etc/environment。參考archwiki-wayland、archwiki-環境變量和wayland主頁