本文最后更新于 2024-11-19,文章内容可能已经过时。

利用SSH安装Arch Linux系统

为什么要用SSH安装Arch

安装Arch Linux涉及到大量命令输入,如果手工输入不仅耗时,还容易出错。利用SSH可以直接复制命令,高效便捷地完成安装过程,避免手动输入的繁琐和错误。

连接网络

若使用无线连接

使用 iwctl 进行连接:

iwctl # 进入交互式命令行
device list # 列出无线网卡设备名,比如无线网卡看到叫 wlan0
station wlan0 scan # 扫描网络
station wlan0 get-networks # 列出所有 wifi 网络
station wlan0 connect wifi-name # 进行连接,注意这里无法输入中文。回车后输入密码即可
exit # 连接成功后退出

ℹ️ 提示

若无线网卡无法显示,请确保你的无线网卡硬件开关处于打开状态。

你可以使用如下命令查看内核是否加载了你的无线网卡驱动。

lspci -k | grep Network
若使用有线连接

正常来说,只要插上一个已经联网的路由器分出的网线(DHCP),就能联网。

可以等待几秒等网络建立连接后再进行下一步测试网络的操作。

若笔记本没有网线接口请使用带网线接口的扩展坞。

测试网络连通性
ping www.wlli.cn

稍等片刻,若能看到数据返回,即说明已经联网。与 Windows 不同的是,需要按下 Ctrl + C 手动退出 ping 命令。

安装SSH

在安装和升级软件包前,先同步本地的包数据库和远程的软件仓库。

ArchLinux的软件仓库为我们提供了SSH的开源实现openssh,安装命令如下:

[root@wlli~]# pacman –Syu openssh

设置和启动SSH服务

安装完openssh后,设置root的密码并开启服务

[root@wlli~]# passwd               # 设置密码,默认root
[root@wlli~]# systemctl start sshd # 开启服务

查看主机IP

ip a

使用SSH工具连接

ssh root@<目标机器IP>

输入之前设置的root密码,即可通过SSH连接进行远程操作,继续完成Arch Linux的安装。

Arch Linux安装流程

1、1更换国内镜像源

更换国内软件仓库镜像源加快下载速度

使用 vim 编辑器修改 /etc/pacman.d/mirrorlist 文件。将 pacman 软件仓库源更换为国内软件仓库镜像源:

vim /etc/pacman.d/mirrorlist

推荐的镜像源如下:

Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch # 中国科学技术大学开源镜像站
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch # 清华大学开源软件镜像站
Server = https://repo.huaweicloud.com/archlinux/$repo/os/$arch # 华为开源镜像站
Server = http://mirror.lzu.edu.cn/archlinux/$repo/os/$arch # 兰州大学开源镜像站

2、分区和格式化

2、1、推荐分区配置。
  • / 根目录:>= 128GB(和用户主目录在同一个 Btrfs 文件系统上)

  • /home 用户主目录:>= 128GB(和根目录在同一个 Btrfs 文件系统上)

  • /boot EFI 分区:>=128MB(系统引导分区,双系统或多系统适量增加,但不要超过1024MB)

  • Swap 分区:>= 电脑实际运行内存的 50%-100%(设置这个大小是为了配置休眠准备,推荐8GB即可)

ℹ️ 提示

因为采用 Btrfs 文件系统,所以根目录和用户主目录实际在一个分区上,只是在不同的子卷上而已。这里根目录和用户主目录的大小仅为参考,一般来说日常使用的 linux 分配 128GB 已经够用了。

2、2、查看磁盘的分区情况

通过 lsblk 命令,区分要安装 archlinux 的磁盘(通过观察磁盘的大小、已存在的分区情况等判断)并显示当前磁盘的分区情况:

[root@arch arch]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda      8:0    0   30G  0 disk 
├─sda1   8:1    0   128M  0 part /boot
├─sda2   8:2    0    8G  0 part [SWAP]
└─sda3   8:3    0   210G  0 part / 

三个分区分别代表:

  1. sda1 —— EFI 分区
  2. sda2 —— SWAP分区
  3. sda3 —— / 根目录&&/home 用户主目录(Linux filesystem)

ℹ️ 提示

sda1、sda2、sda3是虚拟机默认的磁盘分区,如果实体机安装请根据实际情况判断(一般的nvme固态是带有nvme0n1标识的,)

2、3、对磁盘分区

☢️ 警告

可能造成数据丢失!

可能造成数据丢失!

可能造成数据丢失!

cfdisk /dev/xxx # 对安装 archlinux 的磁盘分区 xxx为操作磁盘

默认新建的类型是 Linux filesystem,我们需要将类型更改为 Linux swapEFI System

  • 操作完成后 [Write] 确认分区操作生效
  • 选中操作 [Quit] 以退出 cfdisk 分区工具
2、4、格式化分区

<disk> 为你刚才分区时指定的分区,如果忘记可以使用 fdisk -l 查看

格式化boot分区

mkfs.fat -F 32 /dev/<disk> 

# 例如:
# mkfs.fat -F 32 /dev/sda1

格式化swap分区:

mkswap /dev/<disk>

# 例如:
# mkswap /dev/sda2

根目录和用户目录

mkfs.ext4 /dev/<disk> 

# 例如:
# mkfs.ext4 /dev/sda3

#格式化 Btrfs 分区,timeshift备份减少很多空间
mkfs.btrfs -L myArch /dev/sda3

3、挂载分区

# 假设分区方案为:
# 引导分区   ->   /boot     ->  /dev/sda1
# swap分区   ->   不挂载    ->   /dev/sda2
# 根分区     ->   /         ->  /dev/sda3
# Linux分区由根分区开始,所以必须先挂载根目录 才能挂载其他目录,然后创建文件夹,挂载

# 挂载 / 目录
mount /dev/sda3 /mnt

# 创建 /mnt/boot 目录
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot # 挂载 /mnt/boot 目录

# 挂载交换分区
swapon /dev/sda2 

使用 df 命令复查挂载情况:

df -h

使用 free 命令复查 Swap 分区挂载情况:

free -h # -h 选项会更利于查看

4、安装系统

往/mnt目录里安装系统,其中最基础的四个包是base base-devel linux linux-firmware

[root@arch arch] # pacstrap /mnt base base-devel linux linux-firmware vim git dhcpcd e2fsprogs iwd

#命令参数说明:
base-devel —— base-devel 在 AUR 包的安装过程中是必须用到的
linux —— 内核软件包,这里建议先不要替换为其它内核
如果用了旧版镜像导致无法下载,一般显示GDP密钥出错,出现“User is unknown trust, installation failed“。

先要安装最新密钥`pacman -S archlinux-keyring`。

如果不是这个问题,就更新一下签名:`pacman-key --refresh-keys`
4、1、生成文件系统表

fstab 用来定义磁盘分区。它是 Linux 系统中重要的文件之一。使用 genfstab 自动根据当前挂载情况生成并写入 fstab 文件。文件系统表主要用于系统启动时自动挂载分区,不然系统无法正常启动!执行以下命令生成

# 生成 fstab文件 (用 `-U` 或 `-L` 选项设置 UUID 或卷标)
# efi + gpt
genfstab -U /mnt >> /mnt/etc/fstab
# biso + mbr
genfstab -p /mnt >> /mnt/etc/fstab
# 查看是否生成
cat /mnt/etc/fstab

进入安装的系统

arch-chroot /mnt
#设置主机名

vim /etc/hostname 		#加入你想为主机取的主机名,这里比如叫 arch
vim /etc/hosts
127.0.0.1   localhost
::1         localhost
127.0.1.1   arch.localdomain arch

#设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc		#将系统时间同步到硬件时间

#设置 Locale
vim /etc/locale.gen			
#编辑 /etc/locale.gen,去掉 en_US.UTF-8 UTF-8 以及 zh_CN.UTF-8 UTF-8 行前的注释符号(#)
locale-gen 	#生成 locale
echo 'LANG=en_US.UTF-8'  > /etc/locale.conf	#向 /etc/locale.conf 输入内容


#为 root 用户设置密码
passwd root

#安装微码
pacman -S intel-ucode # Intel
pacman -S amd-ucode # AMD


安装引导程序
#安装引导程序
pacman -S grub efibootmgr os-prober	#安装相应的包
#安装 GRUB 到 EFI 分区
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
#接下来使用 vim 编辑 /etc/default/grub 文件
vim /etc/default/grub

进行如下修改:

去掉 GRUB_CMDLINE_LINUX_DEFAULT 一行中最后的 quiet 参数
把 loglevel 的数值从 3 改成 5。这样是为了后续如果出现系统错误,方便排错
加入 nowatchdog 参数,这可以显著提高开关机速度

#最后生成 GRUB 所需的配置文件
grub-mkconfig -o /boot/grub/grub.cfg
# 下载wifi 管理
pacman -S dhcpcd iwd networkmanager
pacman -S vim sudo bash-completion  iproute2  neofetch yay zsh fish
# 设置开机自启动
systemctl enable dhcpcd
systemctl enable iwd
systemctl enable NetworkManager

#新建用户
useradd -m -G wheel -s /bin/bash <username>	#为你自己的用户名,登录用,注意用户名必须全小写
passwd <username>		# 设置用户密码

#使用 vim 编辑器通过 visudo 命令编辑 sudoers 文件:
EDITOR=vim visudo # 这里需要显式的指定编辑器,因为上面的环境变量还未生效
#找到如下这样的一行,把前面的注释符号 # 去掉:
#%wheel ALL=(ALL) ALL

这里稍微解释一下:

%wheel —— 用户名或用户组,此处则代表是 wheel 组,% 是用户组的前缀
ALL= —— 主机名,此处则代表在所有主机上都生效(如果把同样的 sudoers 文件下发到了多个主机上)
(ALL) —— 用户名,此处则代表可以成为任意目标用户
最后的 ALL —— 代表可以执行任意命令
完成安装
exit # 退回安装环境
umount -R /mnt # 卸载新分区
reboot # 重启

后安装时期

安装图形界面 KDE

systemctl enable --now dhcpcd # 设置开机自启并立即启动 dhcp 服务
ping www.baidu.com # 测试网络连接
1.窗口图形系统 Xorg

执行下面命令安装 Xorg 的一些组件(提示全部回车确认):

sudo pacman -S xorg-server xorg-apps xorg-xinit xorg-xclock xterm

安装完成后,可执行 startx 命令测试 Xorg 是否正常工作。(执行 exit 退出 Xorg 测试界面)

# 执行下面命令安装 KDE Plasma(提示全部回车确认):
sudo pacman -S plasma

# 如果你想一次性安装全部 KDE 应用,可执行下面命令(可选)
sudo pacman -S kde-applications

# 下面是安装个人喜欢的一些 KDE 应用
sudo pacman -S dolphin konsole kate kdeconnect ark gwenview filelight kcalc kdenlive krita kdiskmark

# (KDE 全部应用详见 https://apps.kde.org/zh-cn/)

启用登录管理器 SDDM
# sddm 开机自启
sudo systemctl enable sddm
# 启用 SDDM,进入桌面环境
sudo systemctl start sddm

进入桌面后、可通过Alt + Enter快捷键弹出全局搜索框,可以快速搜索打开想要打开的应用,非常快速便捷!!!

蓝牙
# 安装蓝牙并启动蓝牙服务
sudo pacman -S bluez bluez-utils
sudo systemctl enable bluetooth.service
sudo systemctl start bluetooth.service

# 安装蓝牙音频
sudo pacman -S pulseaudio-bluetooth
# 蓝牙图形化管理工具安装
sudo pacman -S bluedevil
设置 Timeshift 快照
sudo pacman -S timeshift

安装之后,如果 Timeshift 没有自动备份,需要手动开启cronie服务

sudo systemctl enable --now cronie.service