ArchLinux与windows10共存安装

这是一篇简要的总结性文章,适用于在UEFI模式下进行的Windows10与Archlinux共存性安装。

一、制作镜像

注意:不要使用ultraiso制作镜像,否则将造成U盘启动的LOOP,无法进入安装。

使用rufus写入镜像,切记在最后一步选择DD镜像写入模式,这是ultraiso所不具备的模式。

二、系统安装

在windows中划分出要使用的空白磁盘,关闭快速启动,同时在BIOS中禁止SecureBoot,将U盘改为启动第一顺位,即可开始安装。

安装前预计分区如下:

  • sda8: / 根目录 (30G)
  • sda9:Swap(内存*2)
  • sda10: / home(剩下的全部空间)
  • sda2: 无需/boot,双系统状态下将共用Windows的EFI分区作为/boot。
    进入安装界面,使用如下命令:

lsblk列出磁盘信息

cfdisk进行磁盘分区(注意/dev/sdx不要写错)

  1. mkfs.ext4 /dev/sda8

  2. mkfs.ext4 /dev/sda10

  3. mkswap /dev/sda9 && swapon /dev/sda9

挂载新分区

  1. mount /dev/sda8 /mnt

  2. mkdir /mnt/home && mkdir -p /mnt/boot/efi

  3. mount /dev/sda10 /mnt/home && mount /dev/sda2 /mnt/boot/efi

此时可进入/mnt/boot/efi 查看其内容:

作者:苏好铁链接:https://www.zhihu.com/question/22502670/answer/35305955来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2.efi系统分区(/boot/efi)的结构是这样的.(efi分区挂到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", "高级", 选择命令行,

  1. bootrec /scanos
  2. bootrec /rebuildbcd
  3. bootrec /fixmbr
  4. bootrec /fixboot
    重启

可见在/efi/EFI文件夹下存在各个系统写入的启动项,UEFI默认读取/BOOT文件夹下的bootx64.efi来启动,最先安装的windows将/EFI/Microsoft/Boot/bootmgfw.efi下的efi文件重命名为bootx64.efi并放置到/BOOT下,然而在安装Linux时Linux也会将自己的efi文件重命名并复制到/BOOT下,这样就造成了windows的启动被覆盖。

(解决方案:照常安装Linux,Reboot后再次执行

grub-mkconfig -o /boot/grub/grub.cfg

Grub菜单中即可生成Windows启动项)

此时可考虑提取备份原有EFI分区:

  1. mkdir /mnt/home/usb

  2. mount /dev/sdx(U盘盘符)& /mnt/home/usb

  3. cp -r /boot/EFI /mnt/home/usb

  4. umount /dev/sda2 && umount /dev/sdb&

  5. 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设置系统时间为当地时间 ,与windows保持一致

为了之后能连上网络,安装:

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分区

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系统,就在重启之后再次执行

基本上安装完成

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 ..

系统安装完成。

你可能感兴趣的:(ArchLinux与windows10共存安装)