最近有些厌倦Windows,所以想尝试一下Linux,选择Arch的原因不再赘述,建议以ArchLinux官方安装指南为主,这篇笔记只是方便我自己安装而写的,仅供参考。
1. 安装前的准备
1.1 腾出空间
因为我是第一次使用Linux,所以暂时没打算把Arch当作主力系统,我决定采用双系统的方案,所以需要给Arch腾出一个空间。
我使用的工具是DiskGenius,因为Arch简洁,所以40G应该足矣。
1.2 下载安装镜像
访问Arch Linux下载页面,并根据需要的引导方式,获取ISO文件或netboot映像。
1.3 准备安装介质
因为我经常安装系统,所以使用Ventoy来制作启动U盘,然后把Arch Linux的镜像放里面即可。
1.4 启动到Live环境
注意:Arch Linux安装镜像不支持安全启动。要引导安装媒介,需要禁用安全启动,可以在先关闭安全启动,安装完成后再打开。
关机,插上制作好的安装介质
开机,开机的同时按住F12(不同的电脑进入方式可能不同,具体请在搜索引擎里面查找自己品牌的电脑如何进入U盘启动)
等待引导加载程序菜单出现,选择 Arch Linux install medium,回车进入
提示:安装过程中如果想一边安装一边使用Lynx查看ArchLinux官方安装指南,可以使用
Alt + 方向键
来切换不同的控制台。
等待屏幕上出现Welcome to Arch Linux!
后系统会自动登录,然后进行下一步。
1.5 验证引导模式
# ls /sys/firmware/efi/efivars
如果命令结果显示了目录且没有报告错误,则系统以UEFI模式引导。如果目录不存在,则系统可能以BIOS模式(或CSM模式)引导。一般这步都没什么问题,如果真的没有以UEFI模式引导,请在搜索引擎查找相关解决办法。
1.6 联网
注意:Arch Linux必须联网安装
确保系统已经启用了网络接口
# ip link
对于无线局域网(Wi-Fi)和无线广域网(WWAN),请确保网卡未被rfkill禁用。
连接网络
有线连接:直接插上网线即可,方便快捷,安装完图形界面可以再换成无线连接。
无线局域网:使用iwctl
连接,这里不详细描述,操作方法可以参考6.1 iwctl。
配置网络连接
# dhcpcd
用ping
检查网络连接
# ping cnblogs.com
注意:
ping
不会自动结束,可以使用Ctrl + C
中断命令。
注意:默认情况下,安装映像已预配置好并启用了
systemd-networkd
、systemd-resolved
、iwd
和ModemManager
。但已经安装好了的系统并非如此。
1.7 更新系统时间
在 Live 环境中systemd-timesyncd
默认启用,建立互联网连接后,时间将自动同步。
使用timedatectl
确保系统时间是准确的:
# timedatectl status
1.8 硬盘分区
提示:这个部分可以使用图形化的工具
cfdisk
,具体用法请在搜索引擎中查找,笔记以fdisk
为主。
系统如果识别到磁盘,就会将其分配为一个块设备,如/dev/sda
、/dev/nvme0n1
或/dev/mmcblk0
。可以使用fdisk
查看:
# fdisk -l
找到需要分区的硬盘,硬盘路径一般为/dev/nvme0n1
这样的形式。
使用fdisk
修改分区表:
# fdisk [硬盘路径]
创建新分区:
Command (m for help): n
参数默认,直接回车即可。
保存分区表:
Command (m for help): w
查看分区表:
# fdisk -l
找到新建的分区,Type
值为Linux filesystem的就是刚才创建的分区,记住这个分区Device
的值。找到Type
值为EFI System的分区(一般为第一个),记住这个分区Device
的值。
将新建的分区格式化:
# mkfs.ext4 [分区路径]
挂载分区:
# mount [分区路径] /mnt
# mkdir /mnt/boot
# mount [EFI分区路径] /mnt/boot
2. 安装
2.1 更换镜像源
国内网络访问Arch官方源速度非常慢,所以需要更换镜像源。
# vim /etc/pacman.d/mirrorlist
按I
键进入insert模式,在第一行插入国内的镜像源,镜像源可在搜索引擎获取,这里提供清华大学和阿里云的镜像源:
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch
完成后按Esc
键退出insert模式,输入:wq
,然后回车,保存并退出。
2.2 安装必须的软件包
使用pacstrap
脚本,安装base软件包和Linux内核以及常规硬件的固件:
# pacstrap -K /mnt base base-devel linux linux-firmware dhcpcd
3. 配置系统
3.1 Fstab
用以下命令生成fstab文件(用-U
或-L
选项设置UUID或卷标):
# genfstab -U /mnt >> /mnt/etc/fstab
检查生成的/mnt/etc/fstab
文件是否正确:
# cat /mnt/etc/fstab
3.2 Chroot
chroot 到新安装的系统:
# arch-chroot /mnt
3.3 时区
以上海为例:
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
运行hwclock
以生成/etc/adjtime
:
# hwclock --systohc
3.4 安装软件
这些软件在后续的配置过程需要用到。
# pacman -S vim dialog wpa_supplicant ntfs-3g networkmanager netctl
参数默认,回车即可。
3.5 本地化
# vim /etc/locale.gen
可以用:/内容
来查找。
激活(找到要激活的语言,按X
删除行首的#
)以下语言:
zh_CN.UTF-8
zh_HK.UTF-8
zh_TW.UTF-8
en_US.UTF-8
保存退出。
执行 locale-gen
以生成locale信息:
# locale-gen
设置语言为English(此步不建议设置为中文,可以在进入桌面环境后更换为中文):
# vim /etc/locale.conf
添加:
LANG=en_US.UTF-8
保存退出。
3.6 网络配置
创建hostname文件:
# vim /etc/hostname
输入主机名字,保存退出。
配置网络:
# vim /etc/hosts
在最后一行插入:
127.0.0.1 localhost
::1 localhost
127.0.0.1 [主机名字].localdomain [主机名字]
保存退出。
3.7 Root密码
设置Root密码:
# passwd
提示:Linux命令行下输入密码不会显示。
3.8 安装引导程序
安装所需软件
根据处理器选择处理器微码,amd安装amd-ucode
:
# pacman -S intel-ucode
# pacman -S os-prober ntfs-3g
# pacman -S grub efibootmgr
配置grub
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
# grub-mkconfig -o /boot/grub/grub.cfg
检查生成的文件:
# vim /boot/grub/grub.cfg
若文件里面没有Windows的入口,解决办法参考6.2 grub添加Windows。
# exit
# reboot
5. 后续配置
到此Arch的安装和基本配置就已经结束了,Arch已经可以使用了,但是此时Arch只有命令行界面,各种操作都不是很方便,所以要进行后续的配置。
5.1 网络配置
之前配置的网络是Live环境的,现在配置的是安装好的Arch的。此处我配置的是Wi-Fi,但是方法与Live环境的不通用。
# systemctl enable NetworkManager
# systemctl start NetworkManager
# nmcli dev wifi
# nmcli dev wifi list
# nmcli dev wifi connect "Wi-Fi名(SSID)" password "密码"
5.2 交换空间
swap 分区通常被称为交换分区,这是一块特殊的硬盘空间,即当实际内存不够用的时候,操作系统会从内存中取出一部分暂时不用的数据,放在交换分区中,从而为当前运行的程序腾出足够的内存空间。
使用 swap 交换分区,显著的优点是,通过操作系统的调度,应用程序实际可以使用的内存空间将远远超过系统的物理内存。由于硬盘空间的价格远比 RAM 要低,因此这种方式无疑是经济实惠的。当然,频繁地读写硬盘,会显著降低操作系统的运行速率,这也是使用 swap 交换分区最大的限制。
swap分区可以简单的理解为虚拟内存,在RAM够用的情况下可以不用申请交换空间。没有特别需求(电脑较老等)不建议进行此步操作。
# dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
# chmod 600 /swapfile
# mkswap /swapfile
# swapon /swapfile
# vim /etc/fstab
在系统盘下面一行添加:
/swapfile none swap defaults 0 0
保存退出。
5.3 用户
创建用户
新安装的系统只有一个超级用户,即root
。使用root
进行日常操作是不安全的。应当创建普通用户进行日常操作,仅在管理系统时使用root
。
# useradd -m -G wheel 用户名
# passwd 用户名
权限提升
权限提升推荐使用sudo
。
安装sudo
:
# pacman -S sudo
配置sudo
# ln -s /usr/bin/vim /usr/bin/vi
# visudo
查找并激活:
%wheel ALL=(ALL)ALL
保存退出。
5.4 pacman源
切换用户:
# su 用户名
配置pacman
源:
$ sudo vim /etc/pacman.conf
查找激活:
[multilib]
Include = /etc/pacman.d/mirrorlist
添加:
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
Server = https://repo.archlinuxcn.org/$arch
更多ArchlinuxCN镜像源请在搜索引擎中查找。
保存退出。
$ sudo pacman -Syy
$ sudo pacman -S archlinuxcn-keyring
5.5 显卡驱动
以下操作基于我的实际情况(KDE桌面环境+N卡),其他情况请参照Arch官方文档。
KDE桌面环境查表按需安装:
厂商 | 类型 | 驱动 | OpenGL | OpenGL(multilib) | 文档 |
AMD/ATI | Open source | xf86-video-amdgpu | mesa | lib32-mesa | AMDGPU |
xf86-video-ati | ATI | ||||
Intel | Open source | xf86-video-intel | mesa | lib32-mesa | Intel graphics |
NVIDIA | Open source | xf86-video-nouveau | mesa | lib32-mesa | Nouveau |
Proprietary | nvidia | nvidia-utils | lib32-nvidia-utils | NVIDIA | |
nvidia-390xx-dkms | nvidia-390xx-utils | lib32-nvidia-390xx-utils |
$ sudo pacman -S 驱动名 OpenGL OpenGL(multilib)
注意:NVIDIA闭源驱动安装后很有可能会出现无法进入图形界面的问题,建议直接参考6.5 NVIDIA闭源驱动问题进行安装。
5.6 图形界面
安装KDE:
$ sudo pacman -S xorg plasma kde-applications sddm network-manager-applet
启动服务:
$ sudo systemctl enable sddm
$ sudo systemctl disable netctl
$ sudo systemctl enable NetworkManager
安装中文字体:
$ sudo pacman -S wqy-microhei wqy-microhei-lite wqy-bitmapfont wqy-zenhei ttf-arphic-ukai ttf-arphic-uming adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts noto-fonts-cjk
5.7 yay
安装git:
$ sudo pacman -S git
安装yay:
$ cd
$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si
如果因为网络问题无法克隆,请参考6.3 GO语言软件安装源问题。
$ exit
# reboot
6. 补充
6.1 iwctl
如要使用无线局域网,可以使用iwctl
进行连接。
$ iwctl
首先,如果不知道你的网络设备名称,请列出所有 WiFi 设备:
[iwd]# device list
然后,要开始扫描网络(注意:这个命令不会输出任何内容),执行:
[iwd]# station 设备名 scan
再然后,就可以列出所有可用的网络:
[iwd]# station 设备名 get-networks
最后,要连接到一个网络:
[iwd]# station 设备名 connect Wi-Fi名(SSID)
以上代码可以直接使用下面这一行代码替代:
$ iwctl --passphrase passphrase station 设备名 connect Wi-Fi名(SSID)
6.2 grub添加Windows
$ sudo vim /boot/grub/grub.cfg
添加:
menuentry 'Microsoft Windows 10' {
insmod part_gpt
insmod fat
insmod chain
search --no-floppy --fs-uuid --set=root XXXX-XXXX ## 这里填ESP分区的UUID,一般与Arch Linux的一致
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
6.3 GO语言软件安装源问题
GO语言软件安装源被屏蔽问题可通过换源解决。
临时生效
$ export GO111MODULE=on
$ export GOPROXY=https://goproxy.cn
永久生效
$ echo "export GO111MODULE=on" >> ~/.profile
$ echo "export GOPROXY=https://goproxy.cn" >> ~/.profile
$ source ~/.profile
6.4 声音问题
安装ALSA后参考官方文档解除各声道的静音。
若提示未找到目录或未找到声卡,执行以下命令后参照上步。
$ sudo pacman -S alsa-firmware sof-firmware alsa-ucm-conf
$ sudo reboot
6.5 NVIDIA闭源驱动问题
NVIDIA闭源驱动安装后遇到无法进入图形界面的问题时,请用安装盘卸载驱动,然后按照以下方法安装后重启。
$ sudo pacman -S nvidia-utils lib32-nvidia-utils nvidia-settings
# 配置xorg, 会生成 /etc/X11/xorg.conf
$ sudo nvidia-xconfig
# 安装驱动,此步会让kernel正确加载nvidia驱动
$ sudo pacman -S nvidia-dkms
6.6 搜狗拼音输入法
$ sudo pacman -S fcitx
$ sudo pacman -S fcitx-configtool
$ sudo pacman -S fcitx-gtk2 fcitx-gtk3 fcitx-qt5
$ yay -S fcitx-qt4
$ yay -S fcitx-sogoupinyin
6.7 其他问题
启动时打开数字锁定
Arch启动时默认不打开数字锁定,可以参考启动时打开数字键锁定
蓝牙
可以通过以下命令启动蓝牙:
sudo systemctl enable --now bluetooth
若连接蓝牙时提示br-connection-profile-unavailable
,请安装pulseaudio-bluetooth
包,在/etc/bluetooth/main.conf
中设置ControllerMode = bredr
,重启。
6.8 软件推荐
办公软件
推荐WPS或者Office Online。
中文输入法
推荐fcitx5或者Ibus。
在线音乐
参考在线音乐
网络
参考代理
即时通讯
Telegram
腾讯QQ
微信
校园网
中国大陆众多高校采用各种客户端拨号上网,如城市热点Drcom,锐捷。一些学校提供有网页登录或者linux版客户端,可参照相关说明文档安装使用。对于未提供网页登录以及客户端者:
Drcom用户可参考Drcom,锐捷用户可参照 MentoHUST 指导您通过借助 MentoHUST 进行锐捷拨号。
借助wine尝试安装使用。
使用虚拟机运行,可在虚拟机中登录客户端上网,虚拟机开启桥接,安装SSH服务端,在Linux下SSH登录虚拟机上网。