本文章主要是针对 UEFI 启动的,MBR 的话有稍许不同,可参考这篇文章。
前期准备
- 话说 Arch 的 Wiki 真是丰富,查 Wiki 能解决挺多问题了,建议看。
- 官方的安装 Wiki:Installation guide
- 制作一个启动 U 盘,用USBWritter即可。
- 在 Windows 的磁盘管理中划分出一块磁盘空间出来,无需格式化。
- 假设你懂得了如何设置启动顺序/快速启动选择,这里忽略。
- vim 的基本使用方法
- 每条命令前都有提示符,
#
表示 root 用户下执行,$
表示普通用户下执行。
启动进入 U 盘的安装引导后,开始进行下面的安装步骤。
联网
有线网
# dhcpcd
无线网
# wifi-menu
网络连接好了之后可以进行一次网络通畅测试
# ping baidu.com
确认可以后进行下一步。
更新系统时间
# timedatectl set-ntp true
分区
分区用
首先
fdisk
首先
# fdisk -l
查看一下当前磁盘情况(关注磁盘路径和 EFI 分区路径(非全新磁盘))。因为这里是建立在 Windows 已经安装好了的情况下进行的,所以肯定会有一个 EFI 分区,记住它的路径,或者想建立一个独立的 EFI 分区也是可以的。如果你的磁盘是新的,那么就还要建立一个 GPT 分区表。
# fdisk /dev/xxx
(这里的 xxx 是指你的磁盘路径,不是分区路径)进入操作界面,然后进行下面的操作。
建立 EFI 分区
输入
g
建立 GPT 分区表(仅对于新磁盘)。然后输入n
建立分区,然后会要求我们输入起止扇区,开始扇区默认就好,结束扇区可以输入一个大小,一般大于 100M 就好,所以我们输入+200M
,这里就划分出来了一个 200M 大小的分区用作引导。输入t
选择新建分区类型,输入1
表示要建立 EFI 分区,输入w
使刚才的分区操作生效。在这之前可以输入p
来查看分区情况。最后格式化一下新建分区# mkfs.fat -F 32 /dev/xxxY
(这里的 xxxY 是指你的引导分区)。
建立根分区
这里没有建立其他分区而是直接一个根分区,要是想把 Linux 其他路径挂在到独立的分区(因为我的是双系统,磁盘空间本来就不够了,懒得再分,如果是要绝心装单系统,那么可以划出更多的分区),那么可以活用搜索引擎了解一下 Linux 的分区。分区操作是一样,只是在
fstab
记录分区表的时候会多一点记录。# fdisk /dev/xxx
选中磁盘,然后输入
n
新建分区,因为我想把剩下的空间全部利用上,所以输入起止扇区的时候都直接回车就好了。同样输入w
生效,然后格式化分区# mkfs.ext4 -b 4096 /dev/xxxY
(这里的 xxxY 是刚新建的根分区,4096 是确保 4K 对齐)。
挂载根分区
# mount /dev/xxxY /mnt(xxxY是根分区) # mkdir /mnt/boot # mount /dev/xxxY /mnt/boot(这里的xxxY是EFI分区)
更换软件源
# vim /etc/pacman.d/mirrorlist
在顶部添加速度会较快一点的源,这里添加了清华大学的源
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
保存退出。
安装基本系统
# pacstrap /mnt base base-devel
base-devel 包含了基本的工具,如 sudo,pacman 等,具体包含了什么可以在这里查看。
配置系统
生成 fstab
这个是用来让系统挂载分区时候用的
# genfstab -U /mnt >> /mnt/etc/fstab
这一步很重要,用
# vim /mnt/etc/fstab
查看生成的文件,有误可以编辑它。
root 切换到系统
# arch-chroot /mnt
设置时区
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # hwclock --systohc
第二条命令是同步硬件时钟为 UTC。
安装会用到的软件
比如 vim 等
# pacman -S vim dialog wpa_supplicant ntfs-3g networkmanager
设置 Locale
# vim /etc/locale.gen
然后找到
zh_CN.UTF-8 UTF-8 zh_HK.UTF-8 UTF-8 zh_TW.UTF-8 UTF-8 en_US.UTF-8 UTF-8
这四行,去掉注释。接下来运行这条命令
# locale-gen
然后
# vim /etc/locale.conf
在第一行写入
LANG=en_US.UTF-8
设置主机名
# vim /etc/hostname
输入你喜欢的主机名(比如我的 mcarch)。然后编辑一下 hosts 文件
# vim /etc/hosts
然后在里边输入
127.0.0.1 localhost ::1 localhost 127.0.1.1 mcarch.localdomain mcarch
设置 root 密码
# passwd
安装 Intel-ucode(农企用户请忽视)
# pacman -S intel-ucode
安装 Bootloader
# pacman -S os-prober //多系统需要 # pacman -S grub efibootmgr
部署 grub
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
生成配置文件
# grub-mkconfig -o /boot/grub/grub.cfg
如果爆出
warning failed to connect to lvmetad,falling back to device scanning.
这个药(错)丸(误),简单解决方法是编辑
/etc/lvm/lvm.conf
这个文件,找到
use_lvmetad = 1
这一行,把1
改成0
即可。配置 Windows 的启动入口
if [ "${grub_platform}" == "efi" ]; then menuentry "Windows 10" { fs_uuid=CEC0-7D1B hints_string=--hint-bios,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=achi0,gpt1 insmod part_gpt insmod fat insmod search_fs_uuid insmod chain search --fs-uuid --set=root $hints_string $fs_uuid chainloader /EFI/Microsoft/Boot/bootmgfw.efi } fi
fs_uuid 这个值是通过这条命令得到的
# grub-probe --target=fs_uuid $esp/EFI/Microsoft/Boot/bootmgfw.efi
hints_string 的值是通过这条命令得到的
# grub-probe --target=hints_string $esp/EFI/Microsoft/Boot/bootmgfw.efi
如果上边两条命令爆路径错误,直接切换到 bootmgfw.efi 的路径下
# cd /boot/EFI/Microsoft/Boot
然后去掉 bootmgfw.efi 前边的路径执行。比如第一条命令
# grub-probe --target=fs_uuid bootmgfw.efi
还有可能爆的错是获取 hints_string 的时候,因为我的 SSD 是 NVMe 的,然后爆出了这个错误
grub-probe: warning: unknown device type nvme0n1.
我 Google 了一下并没有找到解决方案[绝望脸.jpg],于是自己臆测 Wiki 给出的大概那是单块磁盘的输出,所以我直接就 copy 了 Wiki 给出的值。
--hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1
我大概猜测一下
hd0
是指第 1 块磁盘,在fdisk -l
的输出结果中,我的磁盘是nvme0n1
,如果有第二块 NVMe 磁盘应该就是nvme1n1
。如果你只有单块 NVMe 磁盘,那么这么写是没错的,亲测能正常启动 Windows。而我测试了 gpt 后边的数字写什么都可以启动,如果你有多块磁盘,你也是可以测试一下。欢迎在评论区写下你的结果。;)根据网友 tpob 的说法是:BIOS 里是第几块硬盘就是 hd 几。(看来和我猜想的一致)
添加新用户
# adduser -m -G wheel [username]
设置密码
# passwd [username]
添加 sudo
# vim /etc/sudoers
找到
\# %wheel ALL=(ALL)ALL
这行,把
#
去掉,保存退出。安装 yaourt
# vim /etc/pacman.conf
在末尾加上
[archlinuxcn] SigLevel = Optional TrustAll Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
然后运行
# pacman -Sy yaourt fakeroot
重启
# exit # reboot
ALL DONE!重启后可以用新建的用户登陆,然后联网进行后序的桌面安装。
安装桌面
安装显卡驱动
在这里可以找到你的显卡对应的包。我的是 Intel 的集显,所以我执行这条命令
$ sudo pacman -S xf86-video-intel
安装 X
$ sudo pacman -S xorg xorg-xinit xterm xorg-xeyes xorg-xclock
安装 gnome 桌面
其他桌面请活用搜索引擎。
$ sudo pacman -S gnome
因为桌面是用 NetworkManager,因此要让它启动并开启自启
$ sudo systemctl enable NetworkManager $ sudo systemctl start NetworkManager
安装工具栏网络图标
$ sudo pacman -S network-manager-applet
之后让 gdm 开启自动然后启动它,这时候就可以看到桌面了
$ sudo systemctl enable gdm $ sudo systemctl start gdm
桌面安装完了之后可以进行一些软件安装(不写了就这样发布吧=。=)