Arch Linux 安装记录

笔记本电脑为联想拯救者R9000P,CPU为 AMD Ryzen 7 5800H,GPU为RTX 3060。

pacman 命令用法(yay相同)

更新系统

1
sudo pacman -Syu 

安装包

1
2
sudo pacman -Sy 包名
sudo pacman -U 安装本地包,其扩展名为 pkg.tar.gz

删除包

1
2
3
sudo pacman -R  包名 该命令将只删除包,不包含该包的依赖。
sudo pacman -Rs 包名 在删除包的同时,也将删除其依赖。
sudo pacman -Rd 包名 在删除包时不检查依赖。

搜索包

1
2
3
sudo pacman -Ss 关键字 这将搜索含关键字的包。
sudo pacman -Qi 包名 查看有关包的信息。
sudo pacman -Ql 包名 列出该包的文件。

其他用法

1
2
3
pacman -Sw  包名 只下载包,不安装。
pacman -Sc Pacman 下载的包文件位于 /var/cache/pacman/pkg/ 目录。该命令将清理未安装的包文件。
pacman -Scc 清理所有的缓存文件。

关闭蜂鸣器

1
rmmod pcspkr

设置大字体

1
setfont /usr/share/kbd/consolefonts/solar24x32.psfu.gz

测试网络连接

无线网络连接

1
2
3
4
5
6
iwctl                            #执行iwctl命令,进入交互式命令行
device list                 #列出设备名,比如无线网卡看到叫 wlan0
station wlan0 scan          #用wlan0网卡扫描网络
station wlan0 get-networks  #列出网络
station wlan0 connect 无线网名字 #连接网络名字 输入密码
exit或者quit                #成功后退出

如果使用上面命令无法连接就需要使用命令rfkill unblock wifi,然后再重复上面操作。

网络问题解决方法

1
2
3
4
ip addr # 查看获取的ip地址
ip link # 查看网络连接
ip route add default via 192.168.1.4 dev enp0s3 # 设置默认网关
ip route del default # 删除默认网关

如果在ping网址时提示Name or service not known 说明未设置DNS,按一下步骤操作:
vim /etc/systemd/resolved.conf 中的 [Resolve] 后面添加:

1
DNS=192.168.1.4 # 路由器地址

重启服务 systemctl restart systemd-resolved

添加国内镜像源

sudo vim /etc/pacman.d/mirrorlist 添加一个即可。

1
2
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = http://mirror.lzu.edu.cn/archlinux/$repo/os/$arch

设置时区

必须先设置时区然后再使能ntp。

1
2
3
timedatectl set-timezone Asia/Shanghai
timedatectl set-ntp 1
date

更新密钥环

1
2
pacman -Syy
pacman -S archlinux-keyring

分区的创建与格式化

使用命令 cfdisk /dev/sdx 进行分区,图形化操作,根据需要创建 efi分区交换分区根分区

格式化 efi分区(FAT32)交换分区(SWAP)根分区(Btrfs)

1
2
3
mkfs.fat -F 32 /dev/sdxn
mkswap /dev/sdxn
mkfs.btrfs -L myArch /dev/sdxn

为了创建子卷,我们需要先将 Btrfs 分区挂载到 /mnt 下:

1
mount -t btrfs -o compress=zstd /dev/sdxn /mnt

创建btrfs子卷,此处创建名为 @@home 的两个子卷。

1
2
btrfs subvolume create /mnt/@      # 创建 / 目录子卷
btrfs subvolume create /mnt/@home # 创建 /home 目录子卷

为了使用 timeshift 进行创建和恢复快照,此处一定要使用 @@home 这两个名称。

查看子卷创建情况:

1
2
3
$ btrfs subvolume list -p /mnt
ID 266 gen 2891 parent 5 top level 5 path @
ID 267 gen 2890 parent 5 top level 5 path @home

/mnt 进行卸载,以在下一步中对子卷进行挂载:

1
umount /mnt

挂载分区

1
2
3
4
5
6
mount -t btrfs -o subvol=/@,compress=zstd /dev/sdxn /mnt # 挂载 / 目录
mkdir /mnt/home # 创建 /home 目录
mount -t btrfs -o subvol=/@home,compress=zstd /dev/sdxn /mnt/home # 挂载 /home 目录
mkdir -p /mnt/boot/efi # 创建 /boot/efi 目录
mount /dev/sdxn /mnt/boot/efi # 挂载 /boot/efi 目录
swapon /dev/sdxn # 挂载交换分区
1
2
3
4
5
mount /dev/sda2 /mnt
mkdir /mnt/home
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
mount /dev/sda3 /mnt/home

安装基本系统

必须安装的:

1
pacstrap /mnt base base-devel linux linux-firmware

常用的,根据实际需要添加:

1
pacstrap /mnt dhcpcd iwd vim vi zsh zsh-completions btrfs-progs openssh git wget

生成 fstab 文件

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

如果使用 btrfs 文件系统则必须修改 /mnt/etc/fstab 文件内容,需要删除 //home 条目中的 subvolid=xxx 参数,否则在使用 timeshift 进行恢复后会无法进入系统。

change root

1
arch-chroot /mnt

设置主机名与时区

vim /etc/hostname 设置主机名为myarch

1
myarch

vim /etc/hosts 设置ip与域名解析,需要和主机名一致。

1
2
3
127.0.0.1   localhost
::1 localhost
127.0.1.1 myarch.localdomain myarch

设置时区

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

设置 Locale

编辑 vim /etc/locale.gen,去掉 en_US.UTF-8 UTF-8 以及 zh_CN.UTF-8 UTF-8 行前的注释符号。
然后使用如下命令生成 locale:

1
locale-gen

编辑 vim /etc/locale.conf 添加如下内容:

1
LANG=en_US.UTF-8

为 root 用户设置密码

1
passwd root

安装微码

1
2
pacman -S intel-ucode  # Intel
pacman -S amd-ucode # AMD

安装引导程序

1
pacman -S grub efibootmgr os-prober

安装 GRUB 到 EFI 分区:

1
grub-install --efi-directory=/boot/efi --bootloader-id=ArchLinux

修改 vim /etc/default/grub 文件,打开GRUB_DISABLE_OS_PROBER=false这项,
最后使用如下命令生成 GRUB 所需的配置文件:

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

安装完成

1
2
3
exit            # 退回安装环境
umount -R /mnt # 卸载新分区
reboot # 重启

重启进入系统后,如果需要系统备份,可查看这篇文章 Btrfs 文件系统快照的创建与恢复

创建非root用户

创建名为 myusername 的普通用户:

1
useradd -m -G wheel -s /bin/bash myusername

设置新用户密码:

1
passwd myusername

修改 sudoers 文件,命令如下:

1
EDITOR=vim visudo

将如下所示行前的 # 删除后保存:

1
#%wheel ALL=(ALL) ALL

开启32位库和archlinuxcn库

编辑 vim /etc/pacman.conf 文件,将如下两行前的 # 删除即可开启32位库:

1
2
#[multilib]
#Include = /etc/pacman.d/mirrorlist

然后在文件末尾加入archlinuxcn源:

1
2
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch # 中国科学技术大学开源镜像站

保存后运行如下命令更新并安装 archlinuxcn-keyring

1
2
3
pacman -Syyu
pacman -S archlinuxcn-keyring
pacman -S yay

安装 gnome 桌面

安装桌面环境前必须完成 创建非root用户开启32位库和archlinuxcn库 这两步。

1
2
pacman -Syy
pacman -Sy wqy-zenhei gnome gnome-extra

安装 KDE Plasma 桌面环境

安装桌面环境前必须完成 创建非root用户开启32位库和archlinuxcn库 这两步。

1
pacman -S plasma-meta kde-applications-meta

完成后开启 sddm 的开机启动,然后重启系统就可以进入桌面环境:

1
2
systemctl enable sddm
reboot

安装基础软件

1
2
3
4
5
6
7
8
9
10
sudo pacman -S yay
sudo pacman -S ntfs-3g # 使系统可以识别 NTFS 格式的硬盘
sudo pacman -S adobe-source-han-serif-cn-fonts wqy-zenhei # 安装几个开源中文字体。
sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra # 安装谷歌开源字体及表情
sudo pacman -S flameshot vlc # 截屏 视频播放器
yay -S visual-studio-code-bin
yay -S microsoft-edge-stable-bin
yay -S wps-office-cn ttf-wps-fonts wps-office-mui-zh-cn
yay -S yesplaymusic # 音乐播放器
yay -S tabby-bin

启动蓝牙

1
sudo pacman -S bluez bluez-utils

安装输入法

安装必要软件包

1
2
3
sudo pacman -S fcitx5-im # 输入法基础包组
sudo pacman -S fcitx5-chinese-addons # 官方中文输入引擎
sudo pacman -S fcitx5-material-color # 输入法主题

添加环境变量 sudo vim /etc/environment

1
2
3
4
5
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus

打开 系统设置 > 区域设置 > 输入法 然后点击 运行 Fcitx

方案一

使用 fcitx5-chinese-addons 软件包中的双拼输入法, 添加输入法 > Shuangpin > 添加 即可。

方案二

首先必须先按照 输入法教程 安装好 🍀️四叶草拼音输入方案

然后从这个 rime-cloverpinyin 项目中下载 clover-flypy.schema.yaml 文件,放到目录 ~/.local/share/fcitx5/rime 下面,或者直接使用下面命令下载到指定目录:

1
wget -P ~/.local/share/fcitx5/rime https://raw.githubusercontent.com/so1ar/rime-cloverpinyin/main/src/clover-flypy.schema.yaml

然后修改 default.custom.yaml 文件中的 cloverclover-flypy 后重新部署即可。

安装 powerlevel10k

安装 zim 框架

1
curl -fsSL https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh

编辑配置文件vim ~/.zimrc,在最后添加:

1
zmodule romkatv/powerlevel10k --use degit

然后运行zimfw install进行安装。
运行 p10k configure 进行配置。需要下面这4个字体:

MesloLGS NF Regular.ttf
MesloLGS NF Bold.ttf
MesloLGS NF Italic.ttf
MesloLGS NF Bold Italic.ttf

显卡驱动

安装显卡驱动前建议先按照这篇文章对系统进行备份 Btrfs 文件系统快照的创建与恢复

AMD 核心显卡

1
sudo pacman -S mesa lib32-mesa xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeon

NVIDIA 独立显卡

1
sudo pacman -S nvidia nvidia-settings lib32-nvidia-utils

安装完成后一定要 重启系统,然后运行 nvidia-smi 查看是否报错。

nvidia-smi 输出报错的解决办法是运行如下命令然后重启系统

1
sudo mkinitcpio -p linux

如果 nvidia-smi 有正常输出说明 NVIDIA 独立显卡驱动安装成功可进行下一步。

核显 与 独显 切换

安装如下软件:

1
yay -S optimus-manager optimus-manager-qt # 主程序 和 图形界面

设置自动启动

1
sudo systemctl enable optimus-manager.service

重启后在菜单栏启动 optimus-manager 图形界面,在其中可设置图形界面开机自启。

再生龙恢复后无法启动

  1. 使用命令ls查看分区,会出现如下字样:

    1
    (hd0) (hd0,msdos9) (hd0,msdos8) (hd0,msdos7) (hd0,msdos6) (hd0,msdos5) (hd0,msdos2) (hd0,msdos1)

    注:上面是我的分区设备,每个人可能不一样,但原理都是一样的。

  2. 寻找ubuntu所在分区:(就是寻找你的Linux系统是装在以上哪个分区里)

    1
    grub rescue> ls (hd0,msdos1)/

    若出现的是你的ubuntu主文件夹下的文件夹和文件的名字,那就是的要找的分区了。

  3. 修改启动分区:
    (假如你找到的启动分区是hd0,msdos8)

    1
    2
    3
    4
    grub rescue > set root=(hd0,msdos8)
    grub rescue > set prefix=(hd0,msdos8)/boot/grub
    grub rescue > insmod normal //启动normal启动
    grub rescue > normal

    之后你就会看到熟悉的启动菜单栏了

  4. 进入系统后运行以下命令

    1
    2
    sudo update-grub
    sudo grub-install

    如果出现这个错误/usr/bin/grub-probe:警告: 未知的设备类型 nvme1n1.,可以将/etc/grub.d/60_memtest86+文件删除

    1
    sudo rm -rf /etc/grub.d/60_memtest86+

Eclipse 安装记录

Eclipse下载地址 下载对应平台软件。

汉化

打开 eclipse 软件找到 ‘Help’ > ‘Install new software…’

然后添加 https://download.eclipse.org/technology/babel/update-site/latest/

到底中文简体安装。

如果启动还是英文,需要在启动时添加 -nl zh

重启到 BISO

1
sudo systemctl reboot --firmware-setup

自动挂载ntfs

sudo vim /etc/fstab

1
2
3
/dev/nvme1n1p1  /run/media/lituo/Data2          ntfs    noatime,auto,rw,noexec,async,user,suid 0 2
/dev/nvme0n1p3 /run/media/lituo/Data ntfs noatime,auto,rw,noexec,async,user,suid 0 2
/dev/nvme0n1p2 /run/media/lituo/windows ntfs noatime,auto,rw,noexec,async,user,suid 0 2