安装windows和arch双系统

文章目录
  1. 1. 安装前的准备
    1. 1.1. 获取安装镜像
    2. 1.2. 准备安装介质
    3. 1.3. 启动到live环境
    4. 1.4. 配置控制台键盘布局和字体
    5. 1.5. 连接到互联网
    6. 1.6. 更新系统时间
    7. 1.7. 创建硬盘分区
    8. 1.8. 格式化分区
      1. 1.8.1. 设置子卷
  2. 2. 安装系统
    1. 2.1. 选择镜像站
    2. 2.2. 安装必需的软件包
  3. 3. 配置系统
    1. 3.1. 生成 fstab 文件
    2. 3.2. chroot 到新安装的系统
    3. 3.3. 设置时间和时区
    4. 3.4. 区域和本地化设置
    5. 3.5. 网络配置
    6. 3.6. 设置 root 密码
    7. 3.7. 安装引导程序
    8. 3.8. 配置双系统
    9. 3.9. 配置Zram

最近想尝试一下arch这个知名的linux发行版,于是参考ArchWiki和各方安装教程总结出适合自己的安装方法。

安装前的准备

获取安装镜像

打开下载页面,并根据需要的引导方式,获取 ISO 文件或 netboot 映像

准备安装介质

Arch Linux 的ISO文件可以被制作成多种类型安装介质,如 U 盘光盘和带有 PXE 的网络安装映像。请按照合适的文章与教程,使用ISO文件为自己准备安装介质。

下载archiso文件时请考虑使用镜像站,比如中国境内的镜像站。可以考虑使用 Ventoy 制作安装介质。

我这里选择使用U盘安装Ventoy引导启动

启动到live环境

插上U盘 ,在启动引导界面选择U盘启动,进入Ventoy界面选择Arch Linux镜像进入live环境

配置控制台键盘布局和字体

系统启动后,控制台键盘布局默认为 us(美式键盘)。默认就好

控制台字体位于 /usr/share/kbd/consolefonts/ 目录中,可以使用setfont命令更换,如:

1
# setfont ter-v32n

连接到互联网

设置完成后,首先需要的是连接到网络

有线网络会自动连接

下面介绍无线网络的连接方式

连接无线网络需要使用iwd提供的命令行工具

依次运行以下命令

1
2
3
4
5
6
7
# iwctl
[iwd]# device list
[iwd]# station wlan0 scan
[iwd]# station wlan0 get-networks
[iwd]# station wlan0 connect <WIFI名称>
输入密码
[iwd]# exit

命令解析:

iwctl:进入iwd工具

device list:列出设备

station wlan0 scan:使用wlan0扫描网络

station wlan0 get-networks:获取扫描到的可用网络

station wlan0 connect <WIFI名称>:连接至网络,有密码会弹出输入密码。

exit:退出

使用ping命令测试是否接通网络

1
# ping ping.archlinux.org

更新系统时间

连接网络后,系统会自动激活NTP将系统时间同步至UTC世界时间

可以使用timedatectl确认NTP是否处于激活状态

1
# timedatectl

如果没有自动激活,运行以下命令开启

1
# timedatectl set-ntp true

创建硬盘分区

接下来开始对硬盘进行分区

使用lsblk 工具,列出当前分区情况

1
lsblk -pf

命令详解:

-p:列出完整设备名称

-f:显示更多信息

找到自己想要安装的硬盘 后,使用分区工具修改分区表

我这里使用cfdisk

1
# cfdisk /dev/要被分区的磁盘

如果需要选择分区模式选gpt即可

我这里使用两个分区

分别是EFI分区(ESP)和根分区

分区完成后退出cfdisk

注:这里没有使用swap分区是打算使用zram将内存的一部分作为交换空间

格式化分区

创建分区后,必须使用合适的文件系统对每个新创建的分区进行格式化

ESP使用FAT32

1
# mkfs.fat -F 32 /dev/efi_system_partition(ESP)

根分区使用btrfs

1
# mkfs.btrfs /dev/root_partition(根分区)

设置子卷

设置子卷可以帮我们划定快照的范围,防止在想要恢复系统数据时,系统数据和用户数据一同回档

1
2
3
# mount -t btrfs /dev/root_partition(根分区) /mnt
# btrfs subvolume create /mnt/@
# btrfs subvolume create /mnt/@home

现在,需要装系统的根在live环境的/mnt目录下,我们需要将root子卷挂载到live环境的/mnt目录下

首先输入以下命令取消挂载

1
# umount /mnt

然后使用以下命令将root子卷挂载到/mnt

1
# mount -t btrfs -o_subvol=/@,compress=zstd /dev/root_partition(根分区) /mnt

把home子卷挂载到/mnt/home

1
# mount --mkdir -t btrfs -o_subvol=/@home,compress=zstd /dev/root_partition(根分区) /mnt/home

挂载ESP

1
# mount --mkdir /dev/efi_system_partition(ESP) /mnt/efi

到这里所有的前置准备完毕,可以正式开始安装系统了

安装系统

选择镜像站

使用reflector 工具设置镜像源

1
# reflector -a 12 -c cn -f 10 --sort score --v --save /etc/pacman.d/mirrorlist

然后更新数据库安装密钥

1
# pacman -Sy archlinux-keyring

安装必需的软件包

安装base以及内核等

1
# pacstrap -K /mnt base base-devel linux-zen linux-firmware btrfs-progs

安装其他工具

1
# pacstrap /mnt networkmanager vim sudo intel-ucode

amd的cpu使用amd-ucode

配置系统

生成 fstab 文件

生成 fstab 文件以使需要的文件系统(如启动目录 /boot)在启动时被自动挂载,用 -U 或 -L 选项分别设置 UUID 或卷标:

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

chroot 到新安装的系统

接下来的步骤需要像启动到新安装的系统一样直接与其环境、工具和配置进行交互,请 chroot 到新安装的系统:

1
# arch-chroot /mnt

设置时间和时区

1
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

还可以使用timedatectl

1
# timedatectl set-timezone Asia/Shanghai

然后运行 hwclock 以生成 /etc/adjtime

这是系统用以调整时间误差的文件

1
# hwclock --systohc

区域和本地化设置

程序和库如果需要本地化文本,都依赖区域设置,后者明确规定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。

需要设置这两个文件:locale.gen 与 locale.conf。

编辑 /etc/locale.gen,然后取消掉 en_US.UTF-8 UTF-8 和其他需要的 UTF-8 区域设置前的注释(#)。

我们这里是en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8

接着执行 locale-gen 以生成 locale 信息

1
# locale-gen

然后创建 locale.conf文件,并编辑设定 LANG 变量

1
# vim /etc/locale.conf

在里面写入

1
LANG=en_US.UTF-8

网络配置

为您的系统设置一个固定且易于辨识的名称(在联网环境中尤其有用),请创建 hostname 文件,在里面输入一个自己喜欢的主机名(其必须包含 1-63 个字符,仅使用小写的 a-z0-9 以及 -,但不得以 - 开头。)

1
# vim /etc/hostname

设置 root 密码

使用以下命令为 root 用户设置一个安全的密码以便进行管理操作

1
# passwd

安装引导程序

需要安装 Linux 引导加载程序,才能在安装后启动系统,可以使用的的引导程序已在引导加载程序中列出,请选择一个安装并参阅其 wiki 页面以配置它,GRUB 是一个比较常见且通用的选择。

1
# pacman -S grub efibootmgr

使用GRUB安装命令安装引导

1
# grub-install --target=x86_64-efi --efi-directory=/efi --boot-directory=/efi --bootloader-id=arch

创建连接指向/efi/grub

1
# ln -s /efi/grub /boot/grub

生成grub配置文件

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

配置双系统

安装软件包

你也可以不使用os-prober而是通过挂载Windows的EFI分区来找到Windows

1
# pacman -S os-prober exfat-utils

编辑grub配置文件

1
# vim /etc/default/grub

更改以下位置

1
2
3
4
GRUB_DEFAULT=saved
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5"
GRUB_SAVEDEFAULT=true
GRUB_DISABLE_OS_PROBER=false

更改完设置后记得重新生成配置文件

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

配置Zram

安装软件包

1
# pacman -S zram-generator

编辑配置文件

1
# vim /etc/systemd/zram-generator.conf

写入以下内容

1
2
3
[zram0]
zram-size = ram
compression-algorithm = zstd

然后编辑grub文件

1
# vim /etc/default/grub

更改以下内容

1
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5 zswap.enabled=0"

重新生成配置文件

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

完成所有操作后,即可重启进入系统了

后续可能会更新安装配置KDE的教程