2020/07/19
這邊提供一些結論等級的東西讓我自己安裝起來更加迅速不用一直翻文件
dd
: https://wiki.archlinux.org/index.php/USB_flash_installation_medium#Using_basic_CLI_utilitiescreate_arch_media.sh
: https://gist.github.com/pastleo/b95cfa7160d5ecc5380fbebbde5d5d13.iso
檔放進去有需要可以參考 Arch wiki: https://wiki.archlinux.org/index.php/USB_flash_installation_medium
有線網路理論上會自動使用 DHCP;如果用 WIFI 可以用這些指令連上網:
iw dev # 列出並確認 wifi 網路卡的名稱,例如 "wlp108s0"ip link set wlp108s0 up # 啟動網路卡iw dev wlp108s0 scan | less # 掃描周圍的 WIFI 基地台,搜尋 `SSID` 的字眼wpa_supplicant -B -i wlp108s0 -c <(wpa_passphrase SSID PASSWORD) # 連到 WIFI,記得把 `SSID`, `PASSWORD` 替換dhcpcd wlp108s0 # 啟動 dhcp 服務取得 IPping archlinux.org # 檢查網路是否可用
WIFI 部份有需要可以參考 https://wiki.archlinux.org/index.php/Wireless_network_configuration 以及 https://wiki.archlinux.org/index.php/WPA_supplicant
Arch wiki 有提供 離線安裝的方法,基本上就是從 archiso 開機完的系統複製所有東西到硬碟上 但是我還是需要
grub
作為 bootloader ,這個得透過網路來安裝,而且這樣的系統什麼功能都沒有...基本上網路是必須的
ls /sys/firmware/efi/efivars
如果資料夾不存在,則表示開機模式是 BIOS (legacy)
如果可以,建議使用 UEFI 開機,這是一個相較 BIOS 新的開機規格,比較明顯的優勢就是 UEFI 有提供類似開機選項功能,安裝完 ArchLinux 後安裝 Windows 時不會把 ArchLinux 的 bootloader 覆寫掉,只需要去主機板設定(一直以來我們叫它 BIOS 設定)修改預設開機選項即可
fdisk /dev/sdX
(or nvme0nN
/ vdX
), 建立 gpt
partition table, 接著建立這些 partition:
BIOS Boot
, 必須是第一個 partitiongpt
partition table 上開機fdisk
中,按下 t
設定磁碟類別grub-install ...
時會自動寫入這個磁區EFI System
mkfs.fat -F32 /dev/XXX2
, 格式化 EFI system
成 FAT32 filesystem/boot/efi
/
, /home
...等 partition想要使用
dos
partition table 是可以的,就會變成不需要BIOS Boot
partition,但是根據 UEFI 標準建議使用gpt
partition table
fdisk /dev/XXX
, 建立 dos
partition table, 接著直接建立 swap, /
, /home
...等 partition
如果想要使用
gpt
partition table,就得建立上面提到的BIOS Boot
partition,要不然會遇到這個問題
pacstrap
installationpacstrap /mnt ...
這個指令透過安裝最基本的套件把 ArchLinux 安裝到 /mnt
下,但是我通常會直接在 pacstrap
的時候就把需要的套件都安裝好
base linux linux-firmware
intel-ucode
amd-ucode
networkmanager
iw
, wpa_supplicant
grub
efibootmgr
os-prober
and ntfs-3g
bluez pulseaudio-alsa pulseaudio-bluetooth
mesa
xf86-video-intel intel-media-driver libva-intel-driver
xf86-video-amdgpu libva-mesa-driver mesa-vdpau
gdm
/ sddm
/ lxdm
gnome
/ plasma
/ lxde
gnome-terminal
/ konsole
/ lxterminal
chromium
, firefox
dolphin
, spectacle
, smplayer
, libreoffice-still
...ttf-freefont ttf-roboto noto-fonts noto-fonts-emoji noto-fonts-cjk
adobe-source-code-pro-fonts
sudo vim tmux git base-devel
例如安裝到 intel CPU 的 PC,桌面環境使用 KDE plasma
:
pacstrap /mnt base linux linux-firmware intel-ucode networkmanager iw wpa_supplicant grub efibootmgr os-prober ntfs-3g bluez pulseaudio-alsa pulseaudio-bluetooth mesa xf86-video-intel intel-media-driver libva-intel-driver sddm plasma konsole chromium firefox ttf-freefont ttf-roboto noto-fonts noto-fonts-emoji noto-fonts-cjk adobe-source-code-pro-fonts sudo vim tmux git base-devel
基本上照著這邊做: https://wiki.archlinux.org/index.php/Offline_installation
graphical.target
需要重設: systemctl set-default graphical.target
,否則 GUI 不會在開機的時候自動啟動genfstab
and arch-chroot
genfstab -U /mnt >> /mnt/etc/fstab
接下來的設定必須在新安裝的系統內進行,我們使用 arch-chroot
切換進去:
arch-chroot /mnt
systemctl enable NetworkManagersystemctl enable bluetoothsystemctl enable sddm # or gdm, lxdm
passwd # 設定 root 密碼useradd pastleo # 請換成自己的慣用使用者名稱passwd pastleomkdir -p /home/pastleochown pastleo:pastleo /home/pastleovisudo # 給 sudo 權限
通常在 pacstrap
時就會順便把這件事完成,但是如果是使用上面提到的離線安裝方式,則需要下這個產生 linux 映像檔
mkinitcpio -P
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=archgrub-mkconfig -o /boot/grub/grub.cfg
--bootloader-id=...
是在開機選單上這個作業系統的顯示名字
grub-install --target=i386-pc /dev/XXXgrub-mkconfig -o /boot/grub/grub.cfg
exit
chrootumount -R /mnt
reboot
到新作業系統,看是否一切運作正常如果不能開機,或是有什麼東西不正常,隨時可以再回去用 archiso 開機,把磁碟區掛載起來然後 arch-chroot
進去進行修正
結論:先安裝 Windows,記得保留所有 Windows 建立的 partition,並且等 Windows 把全部的安裝程式以及更新都完成再來安裝 ArchLinux,然後用 grub 複寫 Windows 的 bootloader 並提供開機選單
Windows 會摧毀 grub bootloader,不過也不用整個重新安裝,就像上面說的一樣再回去用 archiso 開機,把磁碟區掛載起來並 arch-chroot
進去再跑一次 grub-install ...
即可
Windows 在硬體時鐘使用當地時間,而 Linux 使用 UTC,建議修改 Windows 設定去使用 UTC 時間,下載這邊寫好的 use_utc_time_x86_64.reg
並點兩下設定即可