admin 管理员组

文章数量: 887007

前言

本文不讨论意识形态相关内容,仅记录安装过程中的一些心得,以后查找起来方便。

不讨论意识形态是指,例如 “ Manjaro 与 Arch Linux 有什么区别?哪一个更好?” 这种问题,不在本文讨论范围内哦~

参考文章

  1. 官方 wiki:Installation guide
  2. 2021 Archlinux 双系统安装教程
  3. Dual boot with Windows

效果预览

安装的版本是:

[root@arch gly]# uname -a
Linux arch 5.13.10-arch1-1 #1 SMP PREEMPT Thu, 12 Aug 2021 21:59:14 +0000 x86_64 GNU/Linux

使用 KDE 桌面的效果是这样子的:


启动时 grub 界面是这样子的:


步骤

实际上,因为个人博客可能更新不够及时,所以直接参考 官方文档 是最好的方式。

1、下载 iso 文件

Arch Linux Downloads

2、准备安装介质

本文使用 Rufus 将 iso 文件写入 U 盘。

3、BIOS 的设置

下面是需要修改的:

  • 关闭 secure boot(不同主板厂商的位置不同,这里不在详细说明。如果 secure boot 开关是灰色的话,可以尝试把所有的 secure key 都删掉,然后就可以调节了,在 asus 的台式机上就是通过这种办法关掉的。另外,有的机器必须设置了 bios 密码之后才能改 secure boot,也可以试一下)
  • 修改启动顺序,把U盘的启动顺序放到最上面
  • 关闭快速启动(快速启动这是 windows 上的一个选项,关机进入休眠状态,内存写到文件,下次开机直接恢复。关闭它是为了避免系统之间切换时把快照文件写乱。也有人说是关闭 Hybrid Boot,我没找到。)
BIOS 与 UEFI 引导方式的不同

参考:Arch boot process

为了启动 Arch Linux,必须配置一个与 Linux 兼容的引导加载程序。引导加载程序负责在初始化启动进程之前,加载好内核和 initial ramdisk。具体过程因 BIOS 和 UEFI 系统而异。

官方文档中关于二者的描述:

windows 下查看引导方式的方法是:win+R,输入 msinfo32,找到 BIOS Mode 项,就看到啦。

当然,命令行状态下也可以查看引导方式,有需要的自行查阅文档~

在 windows 上压缩出一个新的分区

参考:Dual boot with Windows

推荐先安装 Windows 再安装 Linux , 安装 Windows 时只使用硬盘的部分空间建立需要的分区.在 Windows 安装完毕后,进入 Linux 安装环境中后你可以对硬盘未分配的空间进行分区而不改动 Windows 分区. 对于 UEFI 系统,可以使用 Windows 安装时建立的 EFI 系统分区.

如果你没装 windows 的话,要装双系统,建议先 windows 后 ArchLinux,因为根据文档中说的,如果后装 windows 的话,它会把 boot 引导改成只有它自己。你要问为什么会这样?因为这就是 windows。

创建新分区的方式,依次选 ThisPC -> Computer -> Manage -> Disk Management,压缩一块空间,然后为了方便在 u 盘安装的时候通过 lsblk 命令直接看到,在这里的图形化界面上可以预先创建一个分区。

本文用 150GB 的 D 盘作为目标分区。


另外,根据官方文档中说,你的 EFI 分区至少需要 260MB。根据我的观察,我的 260G 的 EFI 分区在安装前后,用量从 15% 涨到了 41%,因为够用,所以我没有扩它。

后来看了一下,主要是两个 .img 文件占用空间较大,如下图。

也有人说,空间不够的话,可以把 fallback 那个永久删掉,我试过,删掉是可以正常运行的,感兴的话自行查阅文档。

你也可以根据自己 EFI 的剩余大小,选择性扩一下,貌似扩这个 EFI 的步骤比较复杂,操作需谨慎。

4、U 盘安装 Arch Linux

官方文档:Installation guide
中文参考:2021 Archlinux双系统安装教程(超详细)

步骤

4K 显示器上字体太小的话,可以先换一个较大的字体。

setfont /usr/share/kbd/consolefonts/LatGrkCyr-12x22.psfu.gz

检查网络

ip a

连接成功之后,检查可以连接到pacman源

pacman -Syyy

重新设置mirrorlist(可选操作,改后会快很多):

使用 reflector 来获取速度最快的 6个 镜像,并将地址保存至 /etc/pacman.d/mirrorlist

reflector -c China -a 6 --sort rate --save /etc/pacman.d/mirrorlist
硬盘挂载

因为我们已经在 windows 上建立好分区了,所以这一步相对官方给的方法来看,会更加简单一些。

提示:以下步骤,请确认无误后再操作!

mkfs.ext4 /dev/nvme0n1p4 		# 分区格式化,将刚刚分好的区格式化为ext4格式,认准分区号再操作!

mount /dev/nvme0n1p4 /mnt 		# 先挂载 / 分区
mkdir /mnt/boot					# 建立boot文件夹
mount /dev/nvme0n1p1 /mnt/boot	# 检查EFI分区号后,挂载EFI分区

挂载完成后:

安装基本系统

安装默认的内核。

如果你不想用默认的内核,也可以使用 linux-lts, linux-zen, linux-hardened,具体介绍请看 Wiki

pacstrap /mnt base linux linux-firmware nano vim
生成 fstab 文件

fstab 文件 中包含了各种各样的 文件系统描述信息

genfstab -U /mnt >> /mnt/etc/fstab

检查生成的 fstab 文件

cat /mnt/etc/fstab
正式配置新系统

1、切换到装好的系统

arch-chroot /mnt

2、设置时区

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 或者:(此方法我试过无效) timedatectl set-timezone Asia/Shanghai

3、同步硬件时钟

hwclock --systohc

4、设置 locale

vim /etc/locale.gen

找 #en_US 对应 UTF-8 那一行 取消注释
找 #zh_CN 对应 UTF-8 那一行 取消注释

5、生成 locale

locale-gen

6、创建并写入/etc/locale.conf文件

vim /etc/locale.conf 

填入内容,注意这里只能填这个

LANG=en_US.UTF-8

7、创建并写入hostname

vim /etc/hostname

这里我写入的是 arch 作为 hostname,你也可以输别的

8、修改hosts

vim /etc/hosts

写入以下内容,注意 arch 的位置和你的 hostname 对应,中间的空白用tab而非空格

127.0.0.1	localhost
::1			localhost
127.0.1.1	arch.localdomain	arch

9、为root用户创建密码

passwd

然后输入并确认密码(linux终端的密码没有回显,输完直接回车就好)

10、创建启动器

安装基本的包,这里使用grub为启动器

pacman -S grub efibootmgr networkmanager network-manager-applet dialog wireless_tools wpa_supplicant os-prober mtools dosfstools ntfs-3g base-devel linux-headers reflector git sudo

如果你不知道这些包的作用,请务必确保输入的指令与上面的一致

检查完毕回车,需要选择直接回车就好,等待安装结束

11、安装 ucode

如果你是intel的cpu,需要安装intel的微码文件

pacman -S intel-ucode

如果是amd

pacman -S amd-ucode

12、更新 grab 文件

Grub 2.06 更新 os-prober 用户需要手动干预
grub 2.06 更新已经进入官方源,本次更新有以下两个需要注意的变化:
1、如果您正在使用 os-prober 生成其他系统的引导项,grub 2.06 不再自动启用 os-prober,您需要添加 GRUB_DISABLE_OS_PROBER=false 至 /etc/default/grub 配置文件中并且重新运行 grub-mkconfig
2、grub 2.06 现在会自动添加 固件设置菜单 引导项目,无需手动创建

鉴于此需要手动启用os-prober来确保Windows能被正确识别:

编辑配置文件

vim /etc/default/grub

在里面找一条空行输入

GRUB_DISABLE_OS_PROBER=false

之后Ctrl-X 加Y回车保存退出

完成之后输入

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch

确保输入指令完全正确回车

生成grub.cfg

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

一开始我担心这波操作会把原有的引导文件写乱,后来发现是多虑了。
机智的 grub-mkconfig 会检测你之前已经有的系统引导,并且把新的引导 append 进去。

附:/etc/default/grub 文件

这里踩过一些小坑,详见注释。

# GRUB boot loader configuration
GRUB_DISABLE_OS_PROBER=false

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch"
# 下面这行可以加内核启动参数 nomodeset 解决花屏问题,相当于grub页面按e编辑linux后面带的选项,用空格分割
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet" 
GRUB_CMDLINE_LINUX=""

# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"


#...此处省略n行

# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
# 这里是grab图形界面的分辨率,与上面的nomodeset结合使用时,可以让tty保持你设置的分辨率且不花屏
# 如果上面的内核参数不加nomodeset的话,这里的分辨率仅在grab图形界面有效,而在tty是无效的
GRUB_GFXMODE=800x600x32 

#...此处省略n行

13、退出新系统并取消挂载

exit
umount -a
reboot

14、进入装好的Arch系统并激活网络

重启后,输入密码,进入

启动网络服务

systemctl enable --now NetworkManager

15、新建用户并授权

useradd -m -G wheel mir

wheel后面是你的用户名,这里输入的是mir

为用户创建密码

passwd mir

输入并确认密码

授权

EDITOR=nano visudo

Ctrl+W 输入 # %wheel 回车 找到这行 删除前面的 #(取消注释)

16、安装显卡驱动

安装AMD集显驱动

pacman -S xf86-video-amdgpu

安装NVIDIA独显驱动

pacman -S nvidia nvidia-utils

17、安装Display Server

这里用的是开源世界最为流行的xorg

pacman -S xorg

18、安装Display Manager
这里需要按你要安装的桌面环境而定,这里没有列出的可以自己去ArchWiki查

Gnome:

pacman -S gdm

KDE:

pacman -S sddm

Xfce || DDE:

pacman -S lightdm lightdm-gtk-greeter

设置开机自动启动,以gdm为例:

systemctl enable gdm

如果是别的请将这里的gdm替换为你安装的那个dm

19、安装Desktop Environment

Gnome:

pacman -S gnome

也可以另外再安装gnome-extra

KDE:

pacman -S plasma kde-applications packagekit-qt5

Xfce:

pacman -S xfce4 xfce4-goodies

DDE:

pacman -S deepin deepin-extra

同样 需要选择时直接回车

20、安装中文字体

这一步不装进去图形界面之后还是要装:更纱黑体

pacman -S ttf-sarasa-gothic

等待安装完毕

21、重启

reboot

在grub界面选择archlinux回车

当你看到登录界面时,恭喜你,一个相对完整的Arch安装完毕,Enjoy it!


常用软件安装

安装中文输入法 googlepinyin

参考:Manjaro安装googlepinyin

在用户根目录创建一个新文件:

nano ~/.xprofile

内容写:

export LC_ALL=zh_CN.UTF-8
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=“@im=fcitx”

安装 fcitx 以及 googlepinyin

pacman -S fcitx-im fcitx-configtool fcitx-googlepinyin

保存,注销再登录,应用程序找到 fcitx configuration ,输入法里面选择 Configure Current Input Method 即可配置快捷键了。

安装 chrome 浏览器

参考:archlinux 安装谷歌浏览器

  1. 在/etc/pacman.conf中添加archlinuxcn的源. (google-chrome并不在archlinux软件库中,所以需要添加archlinuxcn的软件源)
[archlinuxcn]
SigLevel = Optional TrustAll
Server = https://mirrors.tuna.tsinghua.edu/archlinuxcn/$arch

添加清华源, 或者可以添加华为, 中科大或者163源都可以.

  1. 安装密钥包.
pacman -S archlinuxcn-keyring
  1. 更新软件库.
pacman -Sy
  1. 可以安装谷歌浏览器或者其他的archlinuxcn软件库里的软件了.
pacman -S google-chrome

安装完成后需要注意的是google-chrome的程序名为google-chrome-stable, 而不是chrome或者google-chrome


一些 Tricks

花屏问题、字体模糊问题

启动 u 盘安装程序时,如果外接了显示器,主显示器会以 4k 分辨率显示,文字很小。安装完成后,Resolution 有下拉菜单,可以选择分辨率(不外接显示器的话,安装完成后 Resolution 无法下拉,且浏览器窗口内所有字体模糊,目前原因未知,推断可能是中间那次安装的时候没有删除之前 boot 目录下的 intel-ucode.img 导致微码文件安装失败,然而我因为字号比较小没有仔细阅读安装结果,跳过了这个报错。)

如果不外接显示器,在安装程序的选项界面需要按 e 添加启动参数 nomodeset video=800x450 但分辨率没有生效。nomodeset 会生效,解决的是安装界面的花屏问题。

wiki:关于 Mode setting,nomodeset

另外,如果想让 tty 的字体变大的话,可以根据上面说的修改 grub 配置文件同时添加 nomodeset 内核参数,但这样会导致图形界面无法启动。删除 nomodeset 参数后,图形界面正常。

关于自动设置的 font dpi:
缩放 225% -> dpi=216
缩放 250% -> dpi=240
记录一下,自己配的时候不知道应该填多少,可以参考这个默认值。

找到一些线索:可能是 xorg 的问题

history:

[root@arch gly]# history
    1  ls
    2  ls -la
    3  rm /boot/intel-ucode.img 
    4  df
    5  ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    6  hwclock --systohc
    7  vim /etc/locale.gen
    8  locale-gen
    9  vim /etc/locale.conf
   10  vim /etc/hostname
   11  vim /etc/hosts
   12  passwd
   13  pacman -S grub efibootmgr networkmanager network-manager-applet dialog wireless_tools wpa_supplicant os-pober mtools dosfstools ntfs-3g base-devel linux-headers reflector git sudo
   14  pacman -S grub efibootmgr networkmanager network-manager-applet dialog wireless_tools wpa_supplicant os-prober mtools dosfstools ntfs-3g base-devel linux-headers reflector git sudo
   15  pacman -S intel-ucode
   16  vim /etc/default/grub 
   17  grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch
   18  grub-mkconfig -o /boot/grub/grub.cfg 
   19  exit
   20  systemctl enable --now NetworkManager
   21  useadd -m -G wheel gly
   22  useradd -m -G wheel gly
   23  passwd gly
   24  EDITOR=nano visudo
   25  pacman -S nvidia nvidia-utils
   26  pacman -S xorg
   27  pacman -S sddm
   28  systemctl enable sddm
   29  pacman -S plasma kde-applications packagekit-qt5
   30  pacman -S ttf-sarasa-gothic
   31  reboot
   32  pacman -S firefox
   33  pacman -S fcitx-im fcitx-configtool fcitx-googlepinyin
   34  vim ~/.xprofile
   35  shutdown
   36  shutdown now
   37  vim /etc/pacman.conf 
   38  pacman -Sy
   39  pacman -S archlinuxcn-keyring
   40  pacman -S google-chrome
   41  import -window root screenshot.jpg
   42  ls
   43  pwd
   44  import -window root screenshot.jpg
   45  import -window root screenshot.jpg
   46  uname
   47  uname -a
   48  import -window root screenshot.jpg
   49  pacman -Syu
   50  df
   51  lsblk
   52  vim /etc/pacman.conf  /etc
   53  vim /etc/default/grub 
   54  grub-mkconfig -omk
   55  grub-mkconfig -o /boot/grub/grub.cfg 
   56  reboot
   57  import -window root screenshot.jpg
   58  vim /etc/default/grub 
   59  cat /etc/default/grub 
   60  history

本文标签: 双系统 指南 ArchLinux