這是一篇簡要的總結性文章,適用于在UEFI模式下進行的Windows10與Archlinux共存性安裝。
一、制作鏡像
注意:不要使用ultraiso制作鏡像,否則將造成U盤啟動的LOOP,無法進入安裝。
使用rufus寫入鏡像,切記在最后一步選擇DD鏡像寫入模式,這是ultraiso所不具備的模式。
二、系統(tǒng)安裝
在windows中劃分出要使用的空白磁盤,關閉快速啟動,同時在BIOS中禁止SecureBoot,將U盤改為啟動第一順位,即可開始安裝。
安裝前預計分區(qū)如下:
- sda8: / 根目錄 (30G)
- sda9:Swap(內(nèi)存*2)
- sda10: / home(剩下的全部空間)
- sda2: 無需/boot,雙系統(tǒng)狀態(tài)下將共用Windows的EFI分區(qū)作為/boot。
進入安裝界面,使用如下命令:
lsblk列出磁盤信息
cfdisk進行磁盤分區(qū)(注意/dev/sdx不要寫錯)
-
mkfs.ext4 /dev/sda8
-
mkfs.ext4 /dev/sda10
-
mkswap /dev/sda9 && swapon /dev/sda9
掛載新分區(qū)
-
mount /dev/sda8 /mnt
-
mkdir /mnt/home && mkdir -p /mnt/boot/efi
-
mount /dev/sda10 /mnt/home && mount /dev/sda2 /mnt/boot/efi
此時可進入/mnt/boot/efi 查看其內(nèi)容:
作者:蘇好鐵鏈接:https://www.zhihu.com/question/22502670/answer/35305955來源:知乎著作權歸作者所有。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處。
2.efi系統(tǒng)分區(qū)(/boot/efi)的結構是這樣的.(efi分區(qū)掛到arch的/boot/efi目錄下)
$ tree /boot/efi -L 4
/boot/efi
└── EFI
├── arch_grub
│ └── grubx64.efi
├── Boot
│ └── bootx64.efi
└── Microsoft
└── Boot
├── BCD
├── BCD.LOG
├── BCD.LOG1
├── BCD.LOG2
├── bg-BG
├── bootmgfw.efi
├── bootmgr.efi
├── BOOTSTAT.DAT
├── boot.stl
├── cs-CZ
├── da-DK
├── de-DE ..... 略去一堆語言的文件,不重要
其中,/EFI/Boot/bootx64.efi和/EFI/Microsoft/Boot/bootmgfw.efi是同樣文件的不同命名,在這里下載他們。
若要修復win10啟動,用安裝u盤啟動,選擇"修復計算機", "Troubleshoot", "高級", 選擇命令行,
- bootrec /scanos
- bootrec /rebuildbcd
- bootrec /fixmbr
- bootrec /fixboot
重啟
可見在/efi/EFI文件夾下存在各個系統(tǒng)寫入的啟動項,UEFI默認讀取/BOOT文件夾下的bootx64.efi來啟動,最先安裝的windows將/EFI/Microsoft/Boot/bootmgfw.efi下的efi文件重命名為bootx64.efi并放置到/BOOT下,然而在安裝Linux時Linux也會將自己的efi文件重命名并復制到/BOOT下,這樣就造成了windows的啟動被覆蓋。
(解決方案:照常安裝Linux,Reboot后再次執(zhí)行
grub-mkconfig -o /boot/grub/grub.cfg
Grub菜單中即可生成Windows啟動項)
此時可考慮提取備份原有EFI分區(qū):
-
mkdir /mnt/home/usb
-
mount /dev/sdx(U盤盤符)& /mnt/home/usb
-
cp -r /boot/EFI /mnt/home/usb
-
umount /dev/sda2 && umount /dev/sdb&
-
mount /dev/sda2 /mnt/boot/EFI
進入正式安裝:
nano /etc/pacman.d/mirrorlist ,將tuna源和163源Ctrl+K和Ctrl+U前置即可。
pacman -Syy,同步源
pacstrap -i base base-devel
genfstab -U -p /mnt >> /mnt/etc/fstab
nano /mnt/etc/fstab檢查fstab文件是否有問題
arch-chroot /mnt /bin/bash切換root
更改/etc/hostname 和/etc/hosts里的主機名
mkinitcpio -p linux
passwd更換密碼
nano /etc/locale.gen,反注釋en_US-UTF8,zh_CN-UTF8,zh_CN-GBK,
locale-gen
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 注意:這里如果不使用-f,將提示file exists錯誤。
hwclock --localtime設置系統(tǒng)時間為當?shù)貢r間 ,與windows保持一致
為了之后能連上網(wǎng)絡,安裝:
pacman -S dialog
pacman -S wpa_supplicant
pacman -S netctl
pacman -S wireless_tools
pacman -S grub
pacman -S efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot/EFI --bootloader-id=arch_grub --recheck 將Grub裝到EFI分區(qū)
cp /usr/share/locale/en@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo 復制語言文件
pacman -S os-prober
grub-mkconfig -o /boot/grub/grub.cfg此時如果提示沒有找到windows系統(tǒng),就在重啟之后再次執(zhí)行
基本上安裝完成
exit
umount -R /mnt強制解除掛載,否則提示busy
reboot(此時拔掉U盤)
重啟之后,以root和之前設置的密碼登錄,
可以按照之前的步驟連接到wifi,
新建一個日常使用的非root賬戶:
useradd -m -G wheel -s /bin/bash YourName
passwd Yourname
nano /etc/sudoers,去掉%wheel ALL=(ALL) ALL這一行之前的注釋,可以使用sudo來完成臨時提升權限
hwclock --systohc --localtime
開啟Multilib:
去掉/etc/pacman.conf下的注釋:
[multilib]
Include=/etc/pacman.d/mirrorlist
之后# pacman -Syy
安裝Yaourt以使用AUR:
#pacman -S git
git clone https://aur.archlinux.org/package-query.git
cd package-query
makepkg -si
cd ..
git clone https://aur.archlinux.org/yaourt.git
cd yaourt
makepkg -si
cd ..
系統(tǒng)安裝完成。