# [Newbie Corner] Arch Linux 安裝 2019-12 ## 前言 這是我第一次自己從零開始安裝Arch,很感謝網路資源和朋友的幫忙!寫這篇的本意是做筆記,避免上次安裝什麼都沒有留給自己的缺憾,另外也是感嘆過程中遇到一些問題在開源社群中沒有找到完整做法。作爲一個新手我可以理解,因爲覺得這問題太蠢了不好意思佔用一篇文(而且打起來很累),但實在有點可惜。我基本是照抄參考資料的。 雖然提了太多顯然的事可能有點冗,也希望對第一次接觸的人有幫助,若有問題歡迎大家指正。 ## 環境配置 - 機型:Acer Aspire 3 A315-55G - BIOS setup: InsydeH20 setup utility - 原作業系統:Windows 10 ## 完整細流 ### 準備 要準備一個arch可以開機的隨身碟和先分割好安裝位置的磁碟,這部分可以在windows上先完成。**注意到兩個地方的格式化都會清空所有資料,做好資料備份** 切割磁碟: [控制台] > [系統及安全性] > [系統管理工具] > [電腦管理] > [磁碟管理], 一般來說愈大愈好,但是10GB夠基本操作了。如果空間許可可以切出一個swap空間,約16GB即可。 可能的意外很多,一定要做好原系統的備份 建議備一個windows的安裝檔,操作很容易,真的不行至少還有電腦用 ### 下載/燒錄映像檔 1. 在網路上找一個mirror下載iso檔,例如這個交大的 http://archlinux.cs.nctu.edu.tw/iso/2019.12.01/ 2. 在windows上可以下載Cygwin,並把iso檔放在Cygwin相當於使用者home目錄的位置,如`C:\cygwin\home\Users\` 3. 以管理員身份開啓並執行以下指令`cat /proc/partitions`看USB在哪個代號的分割 4. `dd if=image.iso of=/dev/sdx bs=4M`, 其中`/dev/sdx`是USB所在的分割 ### 設定開機模式 **下面兩節的過程可能會覆蓋原本的系統,或是導致原本的系統無法開機,注意備份** 開機後馬上按F2進入選單 1. 關閉secure boot 2. (optional) 開啓F12(跟機型有關)開機選單 3. 如果開機後無法顯示磁碟分割(下一節),以AHCI模式開機, 注意如果原系統不是AHCI開機模式,可能會導致原系統無法開機 ### 格式化 1. `ls /sys/firmware/efi/efivars`驗證是否爲UEFI開機模式,執行應該顯示很多東西 2. `fdisk -l`查看磁碟分割,如果只有顯示USB的分割回到上一節的3 3. `mkfs.ext4 [root partition]` 格式化安裝linux位置的磁碟分割 4. **如果無意覆蓋原系統略過這行** `mkfs.fat -F 32 [efi boot partition]` ### 裝載磁碟 1. `mount [root partition] /mnt` 2. (optional) `mkswap [swap partiotion]` 3. `mkdir /mnt/boot` 4. `mount [efi boot partition] /mnt/boot` ### 安裝系統 1. `wifi-menu`連接網路 2. `vim /etc/pacman.d/mirrorlist`編輯mirrorlist, 將本地的網站移至第一順位,加快下載 3. `pacstrap /mnt base linux linux-firmware sudo vim base-devel`最後一個是optional 4. `genfstab -U /mnt >> /mnt/etc/fstab`生成fstab檔 5. `arch-chroot /mnt`切換到`/mnt`工作 ### 安裝bootloader 1. `pacman -S grub efibootmgr os-prober` 2. `grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub` 這裏應該要顯示no error 3. `grub-mkconfig -o /boot/grub/grub.cfg` 這裏除了done外,還要顯示找到了linux。檢查是否沒有顯示找到或顯示windows的。 ### 設定 1. `ln -s /usr/share/zoneinfo/Asia/Taipei /etc/localtime`設定時間 2. `vim /etc/locale.gen`取消英文和中文字型的註解 3. `locale-gen` 4. `echo LANG=en_US.UTF-8 > /etc/locale.conf`設定語言,不建議設中文 5. `passwd`設定密碼 6. `sudo systemctl enable NetworkManager.service`網路 7. (optional)`useradd -mg users -G wheel,storage,power -s /bin/bash [user name]` 建立使用者 8. (optional)`passwd [username]`設定使用者密碼 9. `vim /etc/sudoers`取消註解在約第82行位置的%wheel ALL 10. `pacman -S wpa_supplicant dialog xorg gnome`下載gnome和網路 11. `systemctl enable gdm` 12. `exit`退出root ### 完成 `umount -R /mnt` `reboot` ### 開機 應該要能看到gnome圖形界面 1. 登入:如果沒有設定使用者,用root帳號登入 2. 安裝中文字型:例如`sudo pacman -S adobe-source-han-sans-tw-fonts adobe-source-han-sans-cn-fonts`簡體字也裝不然有些字會缺,fcitx-rime 重新開機 3. 安裝中文輸入法:例如`sudo pacman -S fcitx-rime` 重新開機 ## 遇到問題 ### USB 無法開機 可能是iso燒錄錯了,注意雖然`cat`之後顯示E槽的位置可能是在`/dev/sdx1`旁邊,但要寫入的是`/dev/sdx`不是`/dev/sdx1`(`/dev/sdx`的第一分割) ### 安裝bootloader時沒有找到linux 在先前版本的arch,安裝時kernel被含在`base`裏面,如果跟著比較舊版本的教學可能不會提到要安裝`linux linux-firmware` ### pacman下載失敗 看錯誤訊息,如果是write failed最有可能是空間不足,如果一開始有正確分割磁碟最有可能是不小心退出`/mnt`了。 ### 安裝後開機無法使用gnome-terminal 使用xterm呼叫`gnome-terminal`看錯誤訊息。我遇到兩次大致都和locale有關導致開不起來。 ### 如果必須設定AHCI模式又要保有原系統 原系統也必須支援並在AHCI模式下安裝 ## 其他 ### vim的基本操作 - `i`進入編輯模式 - `Esc`退出編輯模式 - `:w`(在非編輯模式下)存檔 - `:q`退出 - `:q!`強制退出 ### 回到USB開機 如果因故沒有terminal和網路可以再次回用USB開機解決問題。USB開機後不用全部重來,只要`mount`後`arch-chroot`就可以繼續操作。 ## 參考資料 - https://gitlab.com/samuel21119/ArchLinux?fbclid=IwAR2ylGFjT5WpDolPwR76Kzt_9Xnn1OgEjRKgiD141FvvkRpsIm3HtIY62_w - https://github.com/kerwenwwer/arch-linux-install?fbclid=IwAR0o7mnfygMwB5_utimnNKCAyusa9ZImwCAJ1VEV1PAU-4rulrMEQGW887o - ArchWiki - USB flash installation media, installation guide, fonts