Arch Linux 與 Windows 雙系統安裝方法
Arch 其實我已經用好一陣子了,當時在安裝前就有想過裝好後就要寫個文章還願一下,畢竟在這過程中也受益於不少社群的幫助,但是安裝時忘了一一截圖所以後來就懶了。現在想起來覺得還是該寫一下算是有個交待。首先,如果你的電腦沒有啥特別的需求像是一定得玩遊戲之類的,我是覺得可以直接裝任一 Linux 發行版了,畢竟現在是個什麼都是 Web app 或 Electron 的時代,你常用的各式程式像是 Spotify 或 Discord 等在 Linux 上都絕對都能安裝,你會用到的 IDE 通常在 Linux 上的支援都會更完備,想省麻煩的話就直上 Linux 吧!不過說到底有時還是會有些不得不保留 Windows 的需求在,如果你想體驗看看輕量化且十分彈性的 Arch 並參與它熱絡的社群的話,希望這篇能幫助到大家。
事前準備
在開始之前,我誠心建議還是看一下 Arch 維基 Dual boot with Windows 的說明,下面等會會一一說明叫大家注意的,其實在這篇都有列舉出來。再來是兩個系統安裝的順序,我也是建議先安裝 Windows 在裝 Arch,而且在安裝 Windows 時最好將 boot partition 設為 512 MB 以上(預設好像會是 100 MB)。然後如果你是 Windows 8 以上應該都是用 UEFI,所以請記得關掉 Secure Boot,每家韌體的停用方法都會有點不一樣所以可能得自行搜尋一下。最後是到 Windows 控制台的的電源選項停用 Fast Startup 和 hibernation,這兩個預設應該都是開啟的。
製作 Arch Linux 安裝 USB
在這邊我預設大家是用 Windows 來製作,先到 Arch 官網下載,然後用 Rufus 製作安裝碟。如果你是 Linux 的話可以直接用 dd
。
如果你的電腦是 UEFI 在燒錄時就選擇「GPT Partition」(大多數 Windows 7 以上 應該都是這個),如果還是不是的話就選「MBR partition」。如果你完全不清楚的話可以按下「開始鍵 + R」,然後輸入 msinfo32
,按下去之後應該會看到你的 BIOS 模式,如果顯示 UEFI 就選「UEFI-GPT mode」,如果是 Legacy 就選「BIOS-MBR mode」。
製作完後,就重開機然後開 BIOS 調整開機順序用讓 USB 先執行吧。一樣每個人開 BIOS 的按鍵通常也不一樣,就 del, F12, ESC 都按按看吧。
分割磁區
通常我們會開出三個 partition 給 Linux:/
(root), [swap]
, /home
,/boot
在前面已經提過了而我建議是 512 MB 以上。這邊算是比較頭痛的地方,因為要開多少見仁見智。Arch 維基也有一篇在介紹該如何分割 Partitioning,不太確定該怎麽開的話可以參考看看。基本上來說會建議 root 開至少 20 GB 以上,swap 開跟你的 RAM 一樣的大小,剩下的全給 home。在開始分割之前先用 lsblk
確定你的硬碟:
$ lsblk
sda 8:0 0 465.8G 0 disk
|-sda1 8:1 0 512M 0 part /boot
|-sda2 8:2 0 16M 0 part
`-sda3 8:3 0 464G 0 part
然後用 cfdisk
開始設置,以下是我設好後的樣子:
所以這些是我會用到的磁區,以下請依照你分割對應的磁區來輸入指令
- /dev/sda4 : root
- /dev/sda5 : swap
- /dev/sda6 : home
格式化 Linux 磁區
分割好後再來就是格式化我們的 root 和 home 磁區,我這邊會繼續用 ext4,如果你想要的話也可以試試潮潮的 Btrfs:
$ mkfs.ext4 /dev/sda4
$ mkfs.ext4 /dev/sda6
建立 swap
$ mkswap /dev/sda5
$ swapon /dev/sda5
掛載磁區
所有磁區都設好後就可以掛仔他們了。
$ mount /dev/sda4 /mnt
$ mkdir /mnt/home
$ mount /dev/sda6 /mnt/home
$ mkdir /mnt/boot
$ mount /dev/sda1 /mnt/boot
開始安裝
萬事就緒!開始來安裝 Arch Linux 吧!
網路連線
如果你要用 wifi 的話,先用 wifi-menu
來選擇連線,不然直接 ping
即可測試:
$ wifi-menu
$ ping -c 3 www.google.com
驗證與更新
這邊更新 gpg key 好讓 pacman (Arch 的套件管理工具) 可以驗證安裝套件:
$ pacman-key --refresh-keys
順便更新一下系統時間
$ timedatectl set-ntp true
開始安裝
接著就可以一路按 Enter 或 Y 直到安裝進行。你也可以再多裝 base-devel
不過我打算需要的工具再裝就好:
$ pacstrap /mnt base linux linux-firmware
產生掛載設定檔
Linux 需要除存掛載以便之後自動掛載:
$ genfstab -U /mnt >> /mnt/etc/fstab
Boot Loader 設定
接下來的步驟我們都可以切到我們的系統上進行了:
$ arch-chroot /mnt
我一開始是用 systemd-boot,但為了省掉一些麻煩我們還是用大家耳熟能詳的 GRUB 吧。我們會需要 grub 和 efibootmgr。
$ pacman -S grub efibootmgr
安裝 GRUB:
$ grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
安裝 os-prober 讓 Windows 可以出現在 GRUB 的選單中:
$ pacman -S os-prober
掛載 Windows 的磁區,像我的是 /dev/sda3:
$ mkdir /mnt/windows10
$ mount /dev/sda2 /mnt/windows10
產生 grub 設定檔:
$ grub-mkconfig -o /boot/grub/grub.cfg
網路設定
我們希望開機後能夠自動連上網路:
$ pacman -S netctl wpa_supplicant dialog
如果你是用 wifi 的話,跟之前一樣:
$ wifi-menu
如果是用 LAN 的話:
$ systemctl enable dhcpcd@enp0s31f6.service
dhcpcd@
後面要輸入的是你的 interface name,你可以用 ip link
或 ls /sys/class/net
查到:
$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group def
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAult qlen 1000
link/ether 4c:cc:6a:ba:86:bb brd ff:ff:ff:ff:ff:ff
系統設定
在設定其他東西之前,推薦裝一下自動補完,方便你輸入指令
$ pacman -S bash-completion
root 與使用者密碼
先設定 root 的密碼
$ passwd
到這邊為止你已經可以直接重開機了,不過想將設定一次到位的話,我們可以繼續下去
$ reboot
再來建立一個新的使用者並加入相對應的 group,這個會是你平時用來登入的使用者
$ useradd -m -g users -G wheel,storage,power -s /bin/bash yourusername
$ passwd yourusername
接著我們要讓 wheel group 的使用者可以用 sudo 執行管理員相關的任務,如果你不熟悉 vim 的話也可以用 nano 就好
$ EDITOR=vim visudo
找到這行並解除留言(去掉 # 符號)
%wheel ALL=(ALL) ALL
設定時間與語系
編輯語系檔案(一樣選你熟悉的編輯器)然後解除留言en_US.UTF-8 UTF-8
,你也可以再選擇其他語系,以台灣來說的話就是找到 zh_TW.UTF-8 UTF-8
解除這行的留言:
$ vim /etc/locale.gen
接著用此檔案產生語系
$ locale-gen
$ echo LANG=en_US.UTF-8 > /etc/locale.conf
$ export LANG=en_US.UTF-8
時區
你可以用這個指令搜尋時區
$ ls /usr/share/zoneinfo/
當然你要是就在台北時區這樣設定就好了
$ ln -s /usr/share/zoneinfo/Asia/Taipei /etc/localtime
硬體時鐘
讓硬體時鐘在作業系統之間一致,以防它去複寫改變了顯示的時間
$ hwclock --systohc
Hostname
命名你的主機名稱,這邊我就只叫做 arch 就好:
$ echo arch > /etc/hostname
調整 mirror list
pacman-contrib
這個套件有個腳本 /usr/bin/rankmirrors
可以幫你排出最快的 mirror,不過要是嫌太麻煩的話就用 Pacman Mirrorlist Generator 吧!然後寫進這邊:
$ vim /etc/pacman.d/mirrorlist
Server = http://archlinux.cs.nctu.edu.tw/$repo/os/$arch
桌面環境
桌面環境想用那家一樣見仁見智,如果這些你打算自己摸索的話,那麽到這邊我們就算是告一段落了,已經可以開始你的 arch 探索之旅!不然這邊我們將還是先裝最大宗的 gnome,想找更多可以參考 Desktop environment,裡面也有台灣之光號稱最輕量的 LXDE/LXQT。
$ pacman -S gnome gnome-extra
$ systemctl enable gdm.service
$ systemctl start gdm.service
大功告成!恭喜!
References
- https://wiki.archlinux.org/index.php/Dual_boot_with_Windows
- https://gist.github.com/xtrymind/b895c640231adde21598d5188c75d4b5
- http://lampjs.com/easy-installing-arch-linux-dual-boot-with-windows-uefi-for-beginners/