同步操作将从 deepinwiki/wiki 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
arch 是一个更新比较频繁的系统,因为对于程序员来说是比较友好的,对于管理人员比较难受。程序员经常要更新最新的组件。而更新容易带来不稳定。对于普通用户来说,新的东西也许有用,也许没用,如果你的硬件没什么问题,大不必去使用这个arch系统,因为有更加容易安装的发行版,但是作为学习是值得你安装一下的。
arch 的另一个好处,就是它的理念是不定制和改变包的(简洁),这样就比较容易跟上不同包的最新版本,减少兼容性和滞后的问题。而基于 arch 的发行版,很多都增加了一些定制,改变,从而缩小了自己的适应性。
本文基于 2021/11/1 日的版本又修正了一次。
简要步骤:
不要去官网下载,因为国外的资源网速很慢,可以在清华大学开源镜像站下载,当然,也可以在类似的网站去下载。
我下载的地址:https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/latest/
ios结尾的是光盘镜像,可以刻录到u盘,也可以直接在虚拟机使用。iso.sig 是 gpg 验证数据完整性的文档,很多下载网站都会提供这个,让用户对下载的数据验证完整性。(不懂就略过吧)
# 下载映像文件
wget https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/2020.02.01/archlinux-2020.02.01-x86_64.iso
# 下载验证数据完整性的文件
wget https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/2020.02.01/archlinux-2020.02.01-x86_64.iso.sig
# 验证数据完整性
# 安装官方的gpg公钥
gpg --keyserver sks-keyservers.net --recv 9741e8ac
# 检测签名完好即可,可以无视未信任警告。
gpg --verifygpg --verify archlinux-2020.02.01-x86_64.iso.sig
将 iso 刻录到 u 盘,推荐一个好用的软件: ventoy : https://www.ventoy.net/cn/index.html ,它的原理是创建一个启动 u 盘,然后读取 u 盘目录下的 iso 文件来引导系统映像,所以它是很方便的启动盘工具。
启动光盘镜像后,会首先进入一个命令行的界面:
如果你觉得字体太小不方便操作
# 修改字体,选择一款字号比较大的字体
# 这一步不关键
setfont /usr/share/kbd/consolefonts/LatGrkCyr-12x22.psfu.gz
# 联wifi,如果你是wifi
iwctl # 进入 wifi 连接配置
station wlan0 connect 6-1_5G # 这里可以用 tab 来得到提示。 wlan0 是设备名, 6-1_5G 是热点。接下来让你输入密码
station wlan0 show # 查看连接状态,有 ip 地址说明连上了。
exit # 退出配置
网络设备一般有:
注意描述信息中的 state DOWN 表示该设备没有启用。 state UP 表示设备启用了(但也可能没有正确配置)。
网络要联通的条件:
引导的映像本身网络一般有线网络是正常的,wifi 需要自己连接一下,但是安装后的系统,它并不是一定会正确配置的,这点要特别注意,因为没有网络你几乎无法进行下一步的配置工作。
ip a # 查看网络设备的状态,设备名字,是否有 ip 地址
ping -c3 baidu.com # 测试网络的联通状态
可以略过,但是如果时间不准,有可能会影响系统从远程服务器下载和安装应用。
系统时间是有两种,一种叫 UTC 时间,即全球统一时间,一种本地时间 CST,对中国来说就是所谓的北京/重庆/上海/香港时间,也就是UTC +8 小时后的时间。
因此,要注意显示的是 utc 时间还是本地时间。
# 和远程时间服务器对时,进行时间同步
timedatectl set-ntp true
# 查看时间是否正确,显示的是utc时间,即要+8小时才是北京时间
date
安装系统的难点之一:
分区的要点是自己要理解分区,要确认分区,要知道怎么分区。如果自己对设备情况不理解,也不知道要分什么区,按照教程照抄,就可能对你原本已经有的内容和分区造成破坏,导致数据丢失。
linux 分区一般分为:
cfdisk 相对 fdisk 是很容易操作的。它的逻辑是你先随便分区,写入才是确认,只要不写入都可以取消。写入之后,退出即可。
lsblk # 查看分区信息,先确认信息,再操作
# 推荐 cfdisk,比较容易操作,简单的英文单词(看不懂就翻译一下)
cfdisk /dev/sda
fdisk 简要帮助:
分区和格式化是两种操作,分区只是定义这个区的类型,格式化是建立文件的存储结构。
# 根据分区创建文件系统
mkfs.vfat -F32 -n EFIBOOT /dev/sda1
LVM 是一种动态调整分区大小的分区类型,有一点难度。不建议初学者使用。
# 我这里用LVM创建动态磁盘格式,将来容易扩充容量
# 创建物理卷
pvcreate /dev/sda2
# 创建卷组
vgcreate arch /dev/sda2
# 显示卷组详情
# 一般pe是4mb,显示有5055个,根据整数倍创建逻辑卷
vgdisplay arch
# 创建10G 系统分区
lvcreate -L 10G -n root arch
# 创建4G 交换分区
lvcreate -L 4G -n swap arch
# 剩余创建home分区
lvcreate -l 1471 -n home arch
# 格式化根分区,设置为xfs文件系统
mkfs.xfs -L root /dev/arch/root
# 格式化swap分区
mkswap -L swap /dev/arch/swap
# 激活swap分区
swapon /dev/arch/swap
# 查看内存空间状态
free -h
# 格式化home分区,设置为ext4文件系统
mkfs.ext4 -L home /dev/arch/home
首先要将根分区和 esp 分区挂载好:
也就是将来的系统,现在挂载在 /mnt 目录下。
pacstrap 这个工具可以将软件安装到指定目录下。建议,想装什么,这时候可以一股脑的先装好。
genfstab 根据当前挂载的情况,自动生成将来的 /etc/fstab 配置,这个配置在系统引导的时候,自动挂载正确的分区到正确的目录下。
以上都是在外部操控目标系统, arch-chroot 直接进入目标系统,形成一个虚拟的系统环境,然后就可以按照一般系统的安装、管理软件了。
# 挂载分区
mount /dev/arch/root /mnt # 挂载根分区
mkdir -pv /mnt/boot/esp
mount /dev/sda1 /mnt/boot/esp # 挂载 esp 分区
# 执行安装脚本
pacstrap /mnt base linux linux-firmware xfsprogs lvm2
# 生成fstab
genfstab -U /mnt >> /mnt/etc/fstab
# 进入目标系统
arch-chroot /mnt
# 设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 显示本地时间
date
# 设置密码
passwd
# 设置主机名
echo arch.vbox > /etc/hostname
# 设置主机ip
echo 127.0.0.1 loalhost > /etc/hosts
# 安装nano编辑器
pacman -S nano
# 本地化设置
# 开启zh_CN UTF-8
# 开启en_US UTF-8
nano /etc/locale.gen
# 生成本地化配置
locale-gen
echo LANG=zh_CN.UTF-8 > /etc/locale.conf
引导失败不用慌,用 u盘 启动继续调整即可。
# 安装引导工具
pacman -S grub efibootmgr os-prober
# 安装引导管理器
grub-install --target=x86_64-efi --efi-directory=/boot --removable
# 生成引导菜单
grub-mkconfig > /boot/grub/grub.cfg
# 修改启动映像,添加lvm2支持
# HOOKS=(...block lvm2 filesystems...)
nano /etc/mkinitcpio.conf
# 查看当前内核,如 5.5.4-arch1-1
ls /lib/modules/
# 根据内核重新生成启动映像
mkinitcpio -g /boot/initramfs-linux.img -k 5.5.4-arch1-1
# 安装常用工具
pacman -S wpa_supplicant dhcpcd
# 重启
exit
reboot
把启动光盘给拿掉,让电脑系统硬盘的系统。
# root管理员帐号登录
# 可能没有网络
# 查看,比如我的是lo 和 enp0s3
ip link
# 开启接口
ip link set enp0s3 up
# 动态获取ip
dhcpcd &
# 测试联通状态
ping baidu.com
2021/11/1 日更新:
在新版本中,有如下建议:
# 安装网络工具
pacman -S iwd dhcpcd
# 网络服务要启用,否则重启进入新系统之后可能没有网络
systemctl enable iwd
systemctl enable systemd-networkd
systemctl enable systemd-resolved
systemctl enable dhcpcd
# 桌面
# xorg xorg-apps xorg-drivers 图形底层和开源设备
# linux-headers nvidia-dkms 英伟达显卡
# plasma kde桌面
# 其他常用工具 https://apps.kde.org/
pacman -S xorg xorg-app plasma linux-headers nvidia-dkms konsole kwrite kolourpaint dolphin firefox-i18n-zh-cn mpv kwrite thunderbird kcalc ark okular vscode ksysguard man-pages man-pages-zh_cn spectacle feh kdiff3 kruler filelight khelpcenter neofetch ibus-rime ntfs-3g wqy-zenhei chromium git
systemctl enable sddm # 启动图形登录
更详细的内容参考:https://arch.icekylin.online/rookie/desktop-env-and-app.html
官方源有国内镜像,使用镜像速度更快。
其二,pacman 配置默认没有开启 32 位库分支,和测试分支,如果需要可以开启。
其三,有个中国人维护的库: archlinuxcn ,可以添加。
其四,有更更大范围的,社区维护的库 aur ,借用 yay 工具可以使用。
# 测试镜像连接速度,最快的3个中国区镜像
# 保存到默认的镜像配置文件中
reflector -n 3 -c cn > /etc/pacman.d/mirrorlist
修改 /etc/pacman.conf, 添加 archlinuxcn 应用仓库:
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
安装 AUR 工具:
sudo pacman -S archlinuxcn-keyring yay
# 用法和 pacman 差不多,但是带 AUR 仓库,该仓库的大多数软件都要编译,且没有镜像,所以速度较慢,一些是私有软件。
# 安装官方 chrome 和 vscode、edge,开源第三方不支持同步。
yay -S fakeroot google-chrome visual-studio-code-bin microsoft-edge-dev-bin
开启 32 位分支,steam 和 wine 依赖这个:
[multilib]
Include = /etc/pacman.d/mirrorlist
如果你不满足只是用命令行,那么可以看下面如何安装系统的其他组件。
包介绍:
帧缓冲控制台fbcon:
xorg 显示服务启动流程:
输入法配置:
pacman 管理软件(参数):
# 开启自动获取ip
systemctl enable dhcpcd
# 开启sshd服务
systemctl enable sshd
# 编辑服务配置,允许root账户远程登录,改成:
# PermitRootLogin yes
nano /etc/ssh/sshd_config
# 重启sshd服务
systemctl restart sshd
# 如果不需要远程服务可以忽略以上
# 查看系统出错日志
journalctl -b -p3
一、微信不可用,提示 wechatwin.dll 缺少。
启用 multilib 源。安装32位 libldap 动态链接库,即 lib32-libldap.
# 编辑源配置
# 将 [multilib]
# Include = /etc/pacman.d/mirrorlist
# 反注释,即删掉前面的 # 号
sudo nano /etc/pacman.conf
# 安装 lib32-libldap
sudo pacman -Syy
sudo pacman -S lib32-libldap
二、nvidia 显卡启动不了steam,错误提示:libGL error: No matching fbConfigs or visuals found steam
这个网上有些信息是说是libgl重复之类的,其实并不全面,经过我测试,缺少 lib32-nvidia-utils 包也会这样。 我们知道 arch 是一个比较追求前卫的发行版,所以他默认很多 32bit lib 就没有得到默认安装。
总之:sudo pacman -S lib32-nvidia-utils
即可。
三、nvidia 和 amd 集成显卡双显卡的设置
网上很多方案都是 nvidia + intel 的,但是其实 amd 集成显卡也是可以支持 nvidia 的 prime 双卡方案,但是性能比较低。
一共有两种方案,一种是通过 nvidia 渲染,然后传输到 amd 集显,然后 amd 集显连接显示器,得到最终画面。性能比较高,因为 amd 集显基本 上就是相当一个接口的作用,不使用他缓慢的低性能的 gpu 工作。
另一种方案是基于更新的技术,让 nvidia 渲染指定的窗口程序, 然后传输到 amd 对应的区域, 其余部分由 amd 渲染,这种方案看上去很牛B,但是实际性能非常有限。在我的 gf 750ti 上性能接近 amd 集成显卡,也许是我的 nvidia 显卡比较老的缘故。
方案一:
# 关键在于配置 xorg.conf
# 这个会生成默认的 xorg.conf ,在这个基础上增加集显驱动,修改一下参数即可
nvidia-xconfig
# 修改完毕后,根据不同的显示管理器(即登录窗口的类型,比如ssdm , lightdm, gdm)等的不同,在相关位置添加 xrandr 设置,如 ssdm:
cat /usr/share/sddm/scripts/Xsetup
# 内容如下:
#!/bin/sh
# Xsetup - run as root before the login dialog appears
xrandr --setprovideroutputsource 0 1
xrandr --auto
/etc/X11/xorg.conf 例子:
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
Option "DPMS"
EndSection
Section "Device"
Identifier "NvidiaCart"
Driver "nvidia"
VendorName "NVIDIA Corporation"
EndSection
Section "Device" # 添加集显驱动
Identifier "AmdCart"
Driver "amdgpu"
EndSection
Section "Screen"
Identifier "Screen0"
Device "NvidiaCart" # 使用 nvidia 显卡渲染
Option "AllowEmptyInitialConfiguration" # 添加关键参数,让 nvidia 显卡后台运行不关机
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
方案二:
# 关键点在于xorg版本是 1.20 以上, nvidia 驱动是 440 以上
# 然后一切会自动完成配置
#
sudo pacman -S nvidia-dkms nvidmesaia-prime nvidia-settings nvidia-utils lib32-nvidia-utils mesa mesa-demos mesa-vdpau
# 使用 nvidia 渲染程序的方法
prime-run xxx
四、pacman 更新出现动态库文件(.so)冲突
# 如 libnss 的某个版本更新提示 lib32-nss: 文件系统中已存在 /usr/lib32/p11-kit-trust.so
# 使用如下选项强制覆盖即可
pacman -Syu --overwrite /usr/lib\*/p11-kit-trust.so
五、开启休眠功能
arch 默认并没有开启休眠功能,如果你安装了 kde 之类的桌面,他上面会有这种休眠按钮,但是实际上没有能够休眠。
开启休眠的方法有两步:
修改 /etc/default/grub:
# grub 内容这行添加 resume=交换分区 即可。
GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/nvme0n1p2 loglevel=3 acpi_backlight=none quiet"
# 重新生成 grub 引导菜单
sudo grub-mkconfig -o /boot/grub/grub.cfg
修改/etc/mkinitcpio.conf:
# mkinitcpio.conf 文件内容这行添加 resume 这个钩子即可
HOOKS=(base udev resume autodetect modconf block filesystems keyboard fsck)
# 重新生成引导映像
sudo mkinitcpio -p linux
如果系统休眠是不能关机,可以修改 /etc/systemd/sleep.conf:
# 内容改成
HibernateMode=shutdown
最新的用户字体配置在:
在<fontconfig></fontconfig>
标签内添加:
<!-- 解决Steam 字体乱码 -->
<match target="pattern">
<test qual="any" name="family">
<string>Arial</string>
</test>
<edit name="family" mode="append" binding="same">
<string>WenQuanYi Zen Hei Sharp</string>
</edit>
</match>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。