ArchLinux 安装笔记
程序员文章站
2023-11-03 18:58:40
前言 在开始之前,请在心中默念三遍: Arch Linux 是世界上最好的发行版, 我一定能掌握她. 环境 VM ware + UEFI + 500G 虚拟磁盘 + 2G 内存 + 桥接网络 下载镜像 进入这里挑个最新的就好, https://mirrors.tuna.tsinghua.edu.cn ......
### 前言
在开始之前,请在心中默念三遍:
**arch linux 是世界上最好的发行版, 我一定能掌握她.**
### 环境
vm ware + uefi + 500g 虚拟磁盘 + 2g 内存 + 桥接网络
### 下载镜像
进入这里挑个最新的就好, https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/
我下载的是 https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/2018.01.01/archlinux-2018.01.01-x86_64.iso
### 测试网络
`ping baidu.com`
### 对时
`timedatectl set-ntp true`
### 分区
常用分区工具有 `fdisk / gdisk / parted`. fdisk 不支持 gpt, parted 不太完善, uefi 启动最好搭配 gpt
格式的磁盘, 所以这里我们采用 gdisk
**分区规划**
分区 | 空间
---- | ---
efi | 500 m
boot | 500 m
/ | 硬盘剩余空间
**使用 gdisk 分区**
执行 `fdisk -l` 或者 `lsblk` 查看硬盘设备名
执行 `gdisk /dev/sda` 开始分区, `dev/sda` 是硬盘设备名
输入 n 新建分区
询问分表号, 默认 1 , 可直接回车
询问分区开始位置, 可直接回车
询问分区结束为止, 输入 `+500m` 回车
询问分区表格式, 默认是 `linux filesystem`, 由于第一个分区我们用来当作 efi 分区 ,需要 `efi system` 格式,所以我们需要输入 l 来查询分区表格式的代号, 输入 l 后未发现 `efi system`, 再次按回车查询更多, 此时, 我们就能发现 `efi system` 的代号叫 `ef00`
输入 `ef00` 回车, 第一个分区就已经完成了。
输入 n 新建分区
询问分表号, 默认 2 , 可直接回车
询问分区开始位置, 可直接回车
询问分区结束为止, 输入 `+500m` 回车
询问分区表格式, 默认是 `linux filesystem`, 由于第二个分区我们用来当做 boot 分区, 所以可直接回车
第二个分区就已经完成了。
输入 n 新建分区
询问分表号, 默认 3 , 可直接回车
询问分区开始位置, 可直接回车
询问分区结束为止, 这里我们是使用硬盘剩余的所有空间, 所以可直接回车
询问分区表格式, 默认是 `linux filesystem`, 由于第三个分区我们用来当做 / 根分区, 所以可直接回车
第三个分区就已经完成了。
输入 p 回车可查看分区表格式, 更多命令可以自行查询
输入 wq 回车, 再输入 y 保存分区表并退出 `gdisk` 交互模式
至此, 硬盘分区完成
使用 `fdisk -l` 可以查看硬盘分区信息, 记住分区名称以备后用
### 格式化
执行命令时会有询问, 输入 y 或者默认值即可
```
mkfs.vfat -f32 /dev/sda1
mkfs.ext4 /dev/sda2
mkfs.ext4 /dev/sda3
```
### 挂载
```
mount /dev/sda3 /mnt
mkdir -p /mnt/boot
mount /dev/sda2 /mnt/boot
mkdir -p /mnt/boot/efi
mount /dev/sda2 /mnt/boot/efi
```
### 修改镜像地址
这一步是可选的, 只是为了安装时从网络下载文件时能更快
```
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
vim /etc/pacman.d/mirrorlist
```
把第一个镜像地址设置为 `server = http://mirrors.tuna.tsinghua.efu.cn/archlinux/$repo/os/$arch`
### 安装基础包
只要 base 即可, 我习惯把引导工具和必要的软件一块装进去
```
pacstrap /mnt base base-devel vim grub efibootmgr
```
### 生成 genfstab
```
genfstab -u /mnt >> /mnt/etc/fstab
```
### chroot 进入新系统
```
arch-chroot /mnt
```
### 设置时区
设置为国内上海时区
```
ln -sf /usr/share/zoneinfo/asia/shanghai /etc/localtime
```
同步硬件时钟
```
hwclock --systohc
```
### 设置地区
编辑 /etc/locale.gen 取消注释
```
vim /etc/locale.gen
```
取消下面两行的注释后保存
```
en_us.utf-8 utf-8
zh_cn.utf-8 utf-8
```
```
locale-gen
```
编辑 /etc/locale.conf , 添加一行, 个人喜欢英文, 如果乐意设置为 zh_cn.utf-8 也可以
```
lang=en_us.utf-8
```
### 主机名
```
vim /etc/hostname
```
把主机名写进去, 我这里写入的是 arch
还要记得修改 /etc/hosts 文件
```
127.0.0.1 arch
```
### 设置密码
```
passwd root
```
连续输入两次 root 密码
### 启动加载器
``` bash
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck
grub-mkconfig -o /boot/grub/grub.cfg
```
### 退出重启
退出 chroot 模式, 卸载 /mnt 后重启
```
exit
umount -r /mnt
reboot
```
### 联网
如果开机后没有网络可以启动 dhcpcd 服务
```
systemctl start dhcpcd
systemctl enable dhcpcd
```
### 安装 openssh
```
pacman -sy openssh
systemctl restart sshd
systemctl enable sshd
```
已经启动 ssh 服务并加入开机自启, 默认是不允许 root 远程登录的, 可以修改配置或者再添加一个普通用户
### 添加常规用户
添加 wheel 组的权限
```
visudo
```
取消这一行的注释
```
%wheel all=(all) all
```
添加一个普通用户 junbaor 到 junbaor、wheel 组
```
groupadd junbaor
useradd -m -g junbaor -g wheel junbaor
passwd junbaor
```
> 现在就可以使用 xshell 之类的工具连接 archlinux 使用普通用户登录了. `ip addr` 可以查看虚拟机 ip
### 安装 oh my zsh
```
sudo pacman -sy zsh git
sh -c "$(curl -fssl https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
```
> 好了, 你现在已经拥有了世界上最好的 linux 发行版和世界上最好的 shell 终端.
### 修复 home、end 键
你会发现使用 zsh 后, 键盘的 home\end 键失效了, 在 `~/.zshrc` 文件下添加下面两行可以解决
```
bindkey '\e[1~' beginning-of-line
bindkey '\e[4~' end-of-line
```
使配置立刻生效
```
source ~/.zshrc
```
### 添加 archlinuxcn 源
> 参考:https://mirrors.tuna.tsinghua.edu.cn/help/archlinuxcn/
在 `/etc/pacman.conf` 文件末尾添加以下两行:
```
[archlinuxcn]
server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
```
再安装 archlinuxcn-keyring 包导入 gpg key
```
sudo pacman -syy
sudo pacman -s archlinuxcn-keyring
```
### 安装桌面字体
我们安装 kde 桌面, 比垃圾 gnome 好多了
```
sudo pacman -s plasma-desktop kde-l10n-zh_cn konsole sddm kscreen dolphin wqy-microhei
```
plasma-desktop 是 kde 的桌面程序, kde-l10n-zh_cn 是中文语言包, konsole 是一个终端, 不然进入桌面后可能没有输入命令的地方, sddm 是登陆管理器, 先这么理解就对了, 你也可以安装多个桌面使用 sddm 登陆时进行切换, 第一次进入系统是英文, 切到中文后会出现方块字, 所以最好安装一下 wqy-microhei, 它是一款文泉微米黑中文字体, 显示效果还可以, kscreen 是一个可选的安装, 不装的话系统设置里面不能调整分辨率. dolphin 是 kde 套件中的文件管理器
别的教程可能和这里不一样, 不用担心, arch 本来就十分灵活, 千人千面, 等自己能熟练掌握后就能随意 diy . 新人装桌面可能会遇到一个叫 xorg 的玩意儿, 先不用管, 咱们不用安装, plasma-desktop 里面已经自动依赖。
有的教程里面会让安装一个叫做 `kde-applications` 的东西, 这玩意儿包含了一大堆软件(比如计算器)并不一定能用到, 不怕臃肿的话也可以装, 进入桌面后想装的话也来得及. 上面我只安装了一个 konsole 终端和 kscreen 设置. 这两个也都包含在 kde-applications 内.
安装完成后, 启动 sddm 服务就可以看到登录界面, 登陆后就可以看到贼鸡儿酷炫的桌面了, 为了下次开机直接进入桌面可以把 sddm 服务设置成开机自启.
```
sudo systemctl start sddm
sudo systemctl enable sddm
```
### 效果图
辛苦一番, 看一下阶段性成果
![](https://ws1.sinaimg.cn/large/d6246196ly1fnkox3o7jyj21hc0u0aww.jpg)
终端里面的 arch 图标是 `screenfetch` 命令显示的, 想玩的话记得安装一下
### 安装 chrome
由于我们之前配置了 archlinuxcn 源, 所以可以很方便的安装
```
pacman -s google-chrome
```
点击左下角直接键入 chrome 即可搜索出应用, 或者使用全局查找, 启动后记得在任务栏固定一下方便下次使用
### 安装中文输入法
官方 wiki 有问题, 经实践这样是可以的.
```
sudo pacman -s fcitx-im fcitx-sunpinyin fcitx-cloudpinyin kcm-fcitx
```
新建 `~/.xprofile` 文件追加下面三行:
```
export gtk_im_module=fcitx
export qt_im_module=fcitx
export xmodifiers="@im=fcitx"
```
kcm-fcitx 是输入法的 gui 配置界面 , 和 kde 桌面配合完美
上一篇: 柠檬姜茶功效和做法
下一篇: vue项目中实现的微信分享功能示例
推荐阅读