前言 在開始之前,請在心中默念三遍: Arch Linux 是世界上最好的發行版, 我一定能掌握她. 環境 VM ware + UEFI + 500G 虛擬磁碟 + 2G 記憶體 + 橋接網路 下載鏡像 進入這裡挑個最新的就好, https://mirrors.tuna.tsinghua.edu.cn ...
### 前言 在開始之前,請在心中默念三遍: **Arch Linux 是世界上最好的發行版, 我一定能掌握她.** ### 環境 VM ware + UEFI + 500G 虛擬磁碟 + 2G 記憶體 + 橋接網路 ### 下載鏡像 進入這裡挑個最新的就好, https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/ 我下載的是 https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/2018.01.01/archlinux-2018.01.01-x86_64.iso ### 測試網路 `ping baidu.com` ### 對時 `timedatectl set-ntp true` ### 分區 常用分區工具有 `fdisk / gdisk / parted`. fdisk 不支持 gpt, parted 不太完善, UEFI 啟動最好搭配 GPT 格式的磁碟, 所以這裡我們採用 gdisk **分區規劃** 分區 | 空間 ---- | --- EFI | 500 M Boot | 500 M / | 硬碟剩餘空間 **使用 gdisk 分區** 執行 `fdisk -l` 或者 `lsblk` 查看硬碟設備名 執行 `gdisk /dev/sda` 開始分區, `dev/sda` 是硬碟設備名 輸入 n 新建分區 詢問分表號, 預設 1 , 可直接回車 詢問分區開始位置, 可直接回車 詢問分區結束為止, 輸入 `+500M` 回車 詢問分區表格式, 預設是 `Linux filesystem`, 由於第一個分區我們用來當作 efi 分區 ,需要 `EFI System` 格式,所以我們需要輸入 L 來查詢分區表格式的代號, 輸入 L 後未發現 `EFI System`, 再次按回車查詢更多, 此時, 我們就能發現 `EFI System` 的代號叫 `ef00` 輸入 `ef00` 回車, 第一個分區就已經完成了。 輸入 n 新建分區 詢問分表號, 預設 2 , 可直接回車 詢問分區開始位置, 可直接回車 詢問分區結束為止, 輸入 `+500M` 回車 詢問分區表格式, 預設是 `Linux filesystem`, 由於第二個分區我們用來當做 boot 分區, 所以可直接回車 第二個分區就已經完成了。 輸入 n 新建分區 詢問分表號, 預設 3 , 可直接回車 詢問分區開始位置, 可直接回車 詢問分區結束為止, 這裡我們是使用硬碟剩餘的所有空間, 所以可直接回車 詢問分區表格式, 預設是 `Linux filesystem`, 由於第三個分區我們用來當做 / 根分區, 所以可直接回車 第三個分區就已經完成了。 輸入 p 回車可查看分區表格式, 更多命令可以自行查詢 輸入 wq 回車, 再輸入 Y 保存分區表並退出 `gdisk` 交互模式 至此, 硬碟分區完成 使用 `fdisk -l` 可以查看硬碟分區信息, 記住分區名稱以備後用 ### 格式化 執行命令時會有詢問, 輸入 Y 或者預設值即可 ``` mkfs.vfat -F32 /dev/sda1 mkfs.ext4 /dev/sda2 mkfs.ext4 /dev/sda3 ``` ### 掛載 ``` mount /dev/sda3 /mnt mkdir -p /mnt/boot mount /dev/sda2 /mnt/boot mkdir -p /mnt/boot/efi mount /dev/sda2 /mnt/boot/efi ``` ### 修改鏡像地址 這一步是可選的, 只是為了安裝時從網路下載文件時能更快 ``` cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak vim /etc/pacman.d/mirrorlist ``` 把第一個鏡像地址設置為 `Server = http://mirrors.tuna.tsinghua.efu.cn/archlinux/$repo/os/$arch` ### 安裝基礎包 只要 base 即可, 我習慣把引導工具和必要的軟體一塊裝進去 ``` pacstrap /mnt base base-devel vim grub efibootmgr ``` ### 生成 genfstab ``` genfstab -U /mnt >> /mnt/etc/fstab ``` ### Chroot 進入新系統 ``` arch-chroot /mnt ``` ### 設置時區 設置為國內上海時區 ``` ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ``` 同步硬體時鐘 ``` hwclock --systohc ``` ### 設置地區 編輯 /etc/locale.gen 取消註釋 ``` vim /etc/locale.gen ``` 取消下麵兩行的註釋後保存 ``` en_US.UTF-8 UTF-8 zh_CN.UTF-8 UTF-8 ``` ``` locale-gen ``` 編輯 /etc/locale.conf , 添加一行, 個人喜歡英文, 如果樂意設置為 zh_CN.UTF-8 也可以 ``` LANG=en_US.UTF-8 ``` ### 主機名 ``` vim /etc/hostname ``` 把主機名寫進去, 我這裡寫入的是 arch 還要記得修改 /etc/hosts 文件 ``` 127.0.0.1 arch ``` ### 設置密碼 ``` passwd root ``` 連續輸入兩次 root 密碼 ### 啟動載入器 ``` bash grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck grub-mkconfig -o /boot/grub/grub.cfg ``` ### 退出重啟 退出 chroot 模式, 卸載 /mnt 後重啟 ``` exit umount -R /mnt reboot ``` ### 聯網 如果開機後沒有網路可以啟動 dhcpcd 服務 ``` systemctl start dhcpcd systemctl enable dhcpcd ``` ### 安裝 openssh ``` pacman -Sy openssh systemctl restart sshd systemctl enable sshd ``` 已經啟動 ssh 服務並加入開機自啟, 預設是不允許 root 遠程登錄的, 可以修改配置或者再添加一個普通用戶 ### 添加常規用戶 添加 wheel 組的許可權 ``` visudo ``` 取消這一行的註釋 ``` %wheel ALL=(ALL) ALL ``` 添加一個普通用戶 junbaor 到 junbaor、wheel 組 ``` groupadd junbaor useradd -m -g junbaor -G wheel junbaor passwd junbaor ``` > 現在就可以使用 xshell 之類的工具連接 ArchLinux 使用普通用戶登錄了. `ip addr` 可以查看虛擬機 IP ### 安裝 Oh My Zsh ``` sudo pacman -Sy zsh git sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" ``` > 好了, 你現在已經擁有了世界上最好的 Linux 發行版和世界上最好的 Shell 終端. ### 修複 Home、End 鍵 你會發現使用 zsh 後, 鍵盤的 Home\End 鍵失效了, 在 `~/.zshrc` 文件下添加下麵兩行可以解決 ``` bindkey '\e[1~' beginning-of-line bindkey '\e[4~' end-of-line ``` 使配置立刻生效 ``` source ~/.zshrc ``` ### 添加 ArchlinuxCN 源 > 參考:https://mirrors.tuna.tsinghua.edu.cn/help/archlinuxcn/ 在 `/etc/pacman.conf` 文件末尾添加以下兩行: ``` [archlinuxcn] Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch ``` 再安裝 archlinuxcn-keyring 包導入 GPG key ``` sudo pacman -Syy sudo pacman -S archlinuxcn-keyring ``` ### 安裝桌面字體 我們安裝 kde 桌面, 比垃圾 gnome 好多了 ``` sudo pacman -S plasma-desktop kde-l10n-zh_cn konsole sddm kscreen dolphin wqy-microhei ``` plasma-desktop 是 kde 的桌面程式, kde-l10n-zh_cn 是中文語言包, konsole 是一個終端, 不然進入桌面後可能沒有輸入命令的地方, sddm 是登陸管理器, 先這麼理解就對了, 你也可以安裝多個桌面使用 sddm 登陸時進行切換, 第一次進入系統是英文, 切到中文後會出現方塊字, 所以最好安裝一下 wqy-microhei, 它是一款文泉微米黑中文字體, 顯示效果還可以, kscreen 是一個可選的安裝, 不裝的話系統設置裡面不能調整解析度. dolphin 是 kde 套件中的文件管理器 別的教程可能和這裡不一樣, 不用擔心, Arch 本來就十分靈活, 千人千面, 等自己能熟練掌握後就能隨意 DIY . 新人裝桌面可能會遇到一個叫 xorg 的玩意兒, 先不用管, 咱們不用安裝, plasma-desktop 裡面已經自動依賴。 有的教程裡面會讓安裝一個叫做 `kde-applications` 的東西, 這玩意兒包含了一大堆軟體(比如計算器)並不一定能用到, 不怕臃腫的話也可以裝, 進入桌面後想裝的話也來得及. 上面我只安裝了一個 konsole 終端和 kscreen 設置. 這兩個也都包含在 kde-applications 內. 安裝完成後, 啟動 sddm 服務就可以看到登錄界面, 登陸後就可以看到賊雞兒酷炫的桌面了, 為了下次開機直接進入桌面可以把 sddm 服務設置成開機自啟. ``` sudo systemctl start sddm sudo systemctl enable sddm ``` ### 效果圖 辛苦一番, 看一下階段性成果 ![](https://ws1.sinaimg.cn/large/d6246196ly1fnkox3o7jyj21hc0u0aww.jpg) 終端裡面的 Arch 圖標是 `screenfetch` 命令顯示的, 想玩的話記得安裝一下 ### 安裝 Chrome 由於我們之前配置了 ArchLinuxCN 源, 所以可以很方便的安裝 ``` pacman -S google-chrome ``` 點擊左下角直接鍵入 chrome 即可搜索出應用, 或者使用全局查找, 啟動後記得在任務欄固定一下方便下次使用 ### 安裝中文輸入法 官方 wiki 有問題, 經實踐這樣是可以的. ``` sudo pacman -S fcitx-im fcitx-sunpinyin fcitx-cloudpinyin kcm-fcitx ``` 新建 `~/.xprofile` 文件追加下麵三行: ``` export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS="@im=fcitx" ``` kcm-fcitx 是輸入法的 GUI 配置界面 , 和 kde 桌面配合完美