[3] 操作系统 · 2021年6月7日

Archlinux

验证启动模式

# ls /sys/firmware/efi/efivars

如果命令没有错误地显示了目录,则系统以 UEFI 模式启动。 如果目录不存在,系统可能以 BIOS 模式 (或 CSM 模式) 启动。如果系统未以您想要的模式引导启动,请参考您的主板手册。

连接到因特网

确保系统已经启用了 网络接口,用 ip-link(8) 检查:

有线网络

# 有线网
# ip link
# dhcpcd

无线网WIFI

# iwctl
[iwctl#]中输入 device list 参考网卡设备
[iwctl#] station <devicename> scan
# 显示扫描的结果
[iwctl#] station <devicename> get-networks 
# 在提示符中输入
station <devicename> connect <wifi-ssid>
连接wifi网络,如果wifi加密,会提示你输入密码
CTRL+C
# dhcpcd

用 ping 检查网络连接:

# ping archlinux.org

更新系统时间

使用 timedatectl(1) 确保系统时间是准确的:

# timedatectl set-ntp true

可以使用 

timedatectl status

 检查服务状态。

建立硬盘分区

查看分区情况

磁盘若被系统识别到,就会被分配为一个块设备,如 /dev/sda/dev/nvme0n1 或 /dev/mmcblk0。可以使用 lsblk 或者 fdisk 查看:

# fdisk -l

结果中以 romloop 或者 airoot 结束的可以被忽略。

建立分区及格式化

对于一个选定的设备,以下的分区是必须要有的:

如果需要创建多级存储例如 LVMdisk encryption 或 RAID,请在此时完成。

请使用 fdisk 或 parted 修改分区表。例如:

# fdisk /dev/the_disk_to_be_partitioned(要被分区的磁盘)

格式化分区

当分区建立好了,每个新建立的分区都需要使用适当的 文件系统 进行格式化。举个例子,要在根分区 /dev/root_partition 上创建一个 Ext4 文件系统,运行:

 # mkfs.ext4 /dev/root_partition(根分区)

如果创建了 交换分区 (例如 /dev/sda3),请使用 mkswap(8) 将其初始化:

 # mkswap /dev/swap_partition(交换空间分区)

挂载分区

将根磁盘卷 挂载 到 /mnt,例如:

# mount /dev/root_partition /mnt

然后使用 mkdir(1) 创建其他剩余的挂载点(比如 /mnt/efi)并挂载其相应的磁盘卷。

如果你创建了一个 swap 交换空间卷,请使用 swapon(8) 启用它:

# swapon /dev/swap_partition(交换空间分区)

稍后 genfstab(8) 将自动检测挂载的文件系统和交换空间。

注意事项

挂载分区的时候,如果boot单独分区,要首先挂载root 即 / 分区,然后挂载boot 分区,最后再挂载其它分区,不然后续安装会出现问题

系统安装

更改软件源(可选)

文件 /etc/pacman.d/mirrorlist 定义了软件包会从哪个镜像源下载。在 LiveCD 启动的系统上,在连接到因特网后,reflector 会通过选择 20 个最新同步的 HTTPS 镜像并按下载速率对其进行排序来更新镜像列表。[2] 。 在列表中越前的镜像在下载软件包时有越高的优先权。您或许想检查一下文件,看看是否满意。如果不满意,可以相应的修改 /etc/pacman.d/mirrorlist 文件,并将地理位置最近的镜像源挪到文件的头部。

24 dd, gg, p

或者手动添加软件源:

vim /etc/pacman.d/mirrorlist

输入 插入以下内容:

## China
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch

保存,退出后

更新缓存

pacman -Syy

安装必须的软件包

安装内核

使用 pacstrap 脚本,安装 base 软件包和 Linux 内核以及常规硬件的固件:

# pacstrap /mnt base linux linux-firmware

提示:

  • 可以将 linux 替换为 kernel 页面中介绍的内核软件包。
  • 在虚拟机或容器中安装时,可以不安装固件软件包。

配置系统

Fstab将挂载信息写到本地

用以下命令生成 fstab 文件 (用 -U 或 -L 选项设置UUID 或卷标):

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

强烈建议在执行完以上命令后,后检查一下生成的 /mnt/etc/fstab 文件是否正确。

Chroot进入本地系统

Change root 到新安装的系统:

# arch-chroot /mnt

时区

设置时区:

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

运行 hwclock(8) 以生成 /etc/adjtime

# hwclock --systohc

这个命令假定硬件时间已经被设置为 UTC 时间。详细信息请查看 System time#Time standard

语言本地化

安装文本编辑工具 vim

pacman -S vim

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

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

编辑/etc/locale.gen 然后移除需要的 地区 前的注释符号 #

设置为 en_GB.UTF-8

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

# locale-gen

然后创建 locale.conf(5) 文件,并 编辑设定 LANG 变量,比如

/etc/locale.conf
LANG=en_US.UTF-8  ? en_GB.UTF-8

另外对于中文用户:

  1. 进入桌面环境后以 24 小时制显示时间;
  2. LibreOffice 等办公软件的纸张尺寸会默认为 A4 而非 Letter(US)
  3. 可尽量避免不必要且可能造成处理麻烦的英制单位。

编辑完两个文件之后:

locale-gen

看到 Generation complete 即说明本地化生成完成。

网络配置

创建 hostname 文件:

touch /etc/hostname
pacman -S networkmanager

安装 dhcpcd:否则重启后无法连接到网络。

安装 iwd: 无线网

pacman -S dhcpcd

pacman -S iwd

Root 密码

# passwd

安装引导程序

pacman -S grub

grub-install /dev/sda

若出现error:will not proceed with blocklists

添加–force参数就好了
grub-install –force /dev/sda

Installation finished. No error reported.
安装完成 ,没有错误

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

这样我们的系统就配置好了,此时重启。执行

exit

poweroff

第一次启动 Arch Linux

正常启动 ——- 如果是虚拟机,先 [设置] -> [存储]-> 移除光盘

进入系统,输入 root(用户名)和密码(先前设置的)

联网

有线
systemctl enable dhcpcd
dhcpcd
ip link
ping baidu.com -c 2
无线
systemctl enable iwd
iwctl
ping qq.com -c 2

启用网络连接,一个基本的 Arch Linux 的安装至此结束。

安装后配置

root 用户的权限过高,造成对系统灾难性的损坏的风险因此较高,我们因此

新建一个用户:

useradd -m -G wheel username/liupei

passwd username/liupei

不使用 root 时如何获得 root 权限呢?需要在命令前加上 sudo,而 sudo 也需要先安装:

安装 sudo

pacman -S sudo

执行

ln -s /usr/bin/vim /usr/bin/vi

visudo

进入 Vim 编辑器,找到

# %wheel ALL=(ALL) ALL

把「#」去掉,保存退出。reboot 重启。用新用户登陆,进入系统

修改 Linux 启动界面停留时间

切换至root用户:

su - 

编辑 /boot/grub/grub.cfg 配置文件

vim /boot/gub/grub.cfg
    set_timeout=5   -->  set_timeout=1
reboot

第一个选项是正常启动,也是默认启动项。第二个急救模式启动(系统出现问题不能正常启动时使用并修复系统)

使用Archlinuxcn源(清华源)的方法

sudo vim /etc/pacman.conf
  然后在pacman.conf文件的最后增加以下两段代码:
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

sudo pacman -Syy
sudo pacman -S archlinuxcn-keyring
sudo pacman -Syy

图形界面

KDE界面

安装xorg服务

pacman -S xf86-video-intel  # 英特尔集显(独显安装nvidia)
pacman -S xf86-video-ati    # AMD集成显卡
pacman -S xorg
pacman -S plasma
pacman -S kde-applications
pacman -S sddm

安装必备软件

pacman -S networkmanager  # 网络管理器
systemctl enable NetworkManager  # 将networkmanager写入开机启动
systemctl start NetworkManager
systemctl disable dhcpcd #

pacman -S konsole    


pacman -S wqy-zenhei ttf-fireflysung  # 字体
pacman -S intel-ucode alsa-utils  # CPU,声卡
pacman -S pulseaudio-bluetooth  # 蓝牙
systemctl enable bluetooth
pacman -S base-devel     # 打包基本工具
pacman -S git
systemctl start sddm

美化

sudo pacman -S plank

美化1美化2美化3

XFCE4界面

sudo pacman -S xorg xfce4

参考文献

知乎,Arch Installation凌云

中文显示和输入法

显示中文

vim /etc/locale.gen
# 取消如下注释
    zh_CN.UTF-8
    zh_CN.GB18030 
locale-gen

按照中文字体(文泉驿字体)

pacman -S wqy-zenhei

中文输入法

sudo pacman -S ibus-rime ibus-libpinyin ibus-pinyin
vim .xprofile
    export GTK_IM_MODULE=ibus
    export XMODIFIERS=@im=ibus
    export QT_IM_MODULE=ibus
    ibus-daemon -d -x

参考文献:极致linux

zsh

克隆 oh-my-zsh

 git clone http://github.com/robbyrussell/oh-my-zsh ~/.oh-my-zsh

切换配置文件:备份你已有的 .zshrc 文件,然后将 oh-my-zsh 自带的配置文件移动到这个地方。这两步操作可以一步完成,只需要你的 mv 命令支持 -b 这个选项。

mv -b ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

编辑配置文件:例如,你可以更改 .oh-my-zsh 目录的位置。在安装的时候,它默认是位于你的家目录。但是,根据 Free Desktop 所定义的现代 Linux 规范。这个目录应当放置于 ~/.local/share 。你可以在配置文件 .zshrc 中进行修改。如下所示:

# Path to your oh-my-zsh installation.
export ZSH=$HOME/.local/share/oh-my-zsh

然后将 .oh-my-zsh 目录移动到你新配置的目录下:

% mv ~/.oh-my-zsh $HOME/.local/share/oh-my-zsh

重新启动 Zsh:

source ~/.zshrc

更换你的主题

可以通过列出 .oh-my-zsh 目录下的所有文件来查看所有安装的主题:

11:27:55 liupei@c510 ~ ls .local/share/oh-my-zsh/themes/
3den.zsh-theme             kennethreitz.zsh-theme
adben.zsh-theme            kiwi.zsh-theme
af-magic.zsh-theme         kolo.zsh-theme
......

想在切换主题之前查看一下它的样子,你可以查看 Oh My Zsh 的 wiki 页面。要查看更多主题,可以查看 外部主题 wiki 页面。大部分的主题是非常易于安装和使用的,仅仅需要改变 .zshrc 文件中的配置选项然后重新载入配置文件

#ZSH_THEME="agnoster"
ZSH_THEME="dieter"

参考文献:给 Zsh 添加主题和插件

更改tty字体和大小

临时设置的方法: setfont /usr/share/kbd/consolefonts/latarcyrheb-sun32.psfu.gz

永久设置的方法:echo setfont /usr/share/kbd/consolefonts/latarcyrheb-sun32.psfu.gz >>.zshrc

aur

sudo pacman -S yay

安装后,你可以使用 yay 命令来安装软件包:

yay -S package_name

参考文献:linuxcn

仓库更新签名报

sudo pacman-key --init && sudo pacman-key --populate && sudo pacman -Syu

参考文献:csdn

pacman常用命令

更新系统

pacman 可以用一个命令就可以升级整个系统。花费的时间取决于系统有多老。这个命令会同步非本地(local)软件仓库并升级系统的软件包

pacman -Syu  # 升级系统
pacman -Sy   # 从服务器下载新的软件包数据库(实际上就是下载远程仓库最新软件列表到本地)
pacman -Su   # 升级所有已安装的软件包

如果升级时,网络比较慢,觉得既浪费时间又浪费硬盘,实在不想升级那么多东西,可以逐个软件包升级。用下面命令可以升级核心包:

pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl

安装软件

pacman -S name1 name2 # 安装软件。也可以同时安装多个包,只需以空格分隔包名即可。
pacman -S --needed name1 name2  # 安装软件,但不重新安装已经是最新的软件
pacman -Sy name    # 安装软件前,先从远程仓库下载软件包数据库(数据库即所有软件列表)
pacman -Sv name    # 在显示一些操作信息后执行安装
pacman -Sw name    # 只下载软件包,不安装
pacman -U name.pkg.tar.gz   # 安装本地软件包
pacman -U http://www.example.com/repo/example.pkg.tar.xz  # 安装一个远程包(不在 pacman 配置的源里面)

卸载软件

pacman -R 软件名   # 只删除包,保留其全部已经安装的依赖关系
pacman -Rv 软件名  # 删除软件,并显示详细的信息

pacman -Rs 软件名  # 删除软件,同时删除本机上只有该软件依赖的软件
pacman -Ru 软件名  # 删除软件,同时删除不再被任何软件所需要的依赖
pacman -Rsc 软件名 # 删除软件,并删除所有依赖这个软件的程序,慎用

搜索软件

# 在仓库中搜索含关键字的软件包(本地已安装的会标记)
    pacman -Ss 关键字
    pacman -Sl <repo>:
        显示软件仓库中所有软件的列表
        可以省略,通常这样用:`pacman -Sl | 关键字`

pacman -Qqs 关键字  # 搜索已安装的软件包
pacman -Qu          # 列出所有可升级的软件包
pacman -Qt         # 列出不被任何软件要求的软件包

参数加q可以简洁方式显示结果,比如pacman -Ssq gcc会比pacman -Ss gcc显示的好看一些。

pacman -Sl | gccpacman -Ssq gcc 很接近,但是会少一些和gcc有关但软件名不包含gcc的包

查询软件信息

pacman -Q  pname # 查看软件包是否已安装,已安装则显示软件包名称和版本
pacman -Qi pname  # 查看某个软件包信息,显示较为详细的信息,包括描述、构架、依赖、大小等等
pacman -Ql pname # 列出软件包内所有文件,包括软件安装的每个文件、文件夹的名称和路径

软件包组

pacman -Sg   # 列出软件仓库上所有的软件包组
pacman -Qg   # 列出本地已经安装的软件包组和子包
pacman -Sg   # 软件包组: 查看某软件包组所包含的所有软件包
pacman -Qg 软件包组 和 pacman -Sg 软件包组完全一样

很多人建议通过安装软件组来安装工具链,这样比较浪费空间。实际上如果把gcc, qt, clang等安装上,msys2就要占掉超过10G的硬盘空间,所以个人很少直接安装软件组。例如:

pacman -S mingw-w64-x86_64-toolchain
pacman -S mingw-w64-i686-toolchain
pacman -S mingw-w64-x86_64-qt5
pacman -S base-devel

清理缓存

pacman -Sc  # 清理未安装的包文件,包文件位于 /var/cache/pacman/pkg/ 目录   
pacman -Scc # 清理所有的缓存文件

最常用的pacman命令小结

pacman -Syu  # 升级系统及所有已经安装的软件 
pacman -S pname   # 安装软件。也可以同时安装多个包,只需以空格分隔包名即可
pacman -Rs pname  # 删除软件,同时删除本机上只有该软件依赖的软件。
pacman -Ru pname  # 删除软件,同时删除不再被任何软件所需要的依赖。
pacman -Ssq 关键字 # 在仓库中搜索含关键字的软件包,并用简洁方式显示
pacman -Qs 关键字  # 搜索已安装的软件包。
pacman -Qi 软件名  # 查看某个软件包信息,显示软件简介,构架,依赖,大小等详细信息
pacman -Sg        # 列出软件仓库上所有的软件包组
pacman -Sg        # 软件包组: 查看某软件包组所包含的所有软件包
pacman -Sc     # 清理未安装的包文件,包文件位于 /var/cache/pacman/pkg/ 目录
pacman -Scc    # 清理所有的缓存文件。
yay -Yc        # 删除系统不需要的软件包
yay -Ps        # Shows statistics for installed packages and system health.
yay -Sc        # 清除缓存

参考文献:lileilei

显卡驱动

所有 AMD 显卡建议使用开源驱动,英伟达显卡建议使用闭源驱动。

核芯显卡

Intel 核芯显卡

sudo pacman -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel

不建议安装 xf86-video-intel,而应使用 Xorg 的 modesetting 驱动(也就是什么都不用装的意思)

注意,只有 Intel HD 4000 及以上的核显才支持 vulkan。

AMD 核芯显卡

对于具有核芯显卡的 AMD 处理器,需要先确定核显架构(Architecture)是什么,再决定安装什么驱动。

推荐在 TECHPOWERUP 进行查询,信息非常全面。在确定了显卡架构后,再根据架构对照下表决定安装什么驱动。

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

独立显卡

NVIDIA 独立显卡

较新型号的独立显卡使用以下命令直接安装如下几个包即可

sudo pacman -S nvidia nvidia-settings lib32-nvidia-utils # 必须安装

如果是 GeForce 630 以下到 GeForce 400 系列的老卡,使用以下命令安装 nvidia-390xx-dkmsaur 及其 32 位支持包:

yay -S nvidia-390xx-dkms nvidia-settings lib32-nvidia-390xx-utils

再老的显卡直接使用以下命令安装 开源驱动 即可:

sudo pacman -S mesa lib32-mesa xf86-video-nouveau

AMD 独立显卡

AMD 独立显卡的驱动安装步骤实际上和 AMD 核芯显卡是相同的,都需要先确定架构,然后选定正确的驱动安装即可。参考步骤 AMD 核芯显卡

双显卡(核显 + 独显)

参考文献:iceklyn