欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

ArchLinux 安装笔记

程序员文章站 2022-06-11 18:09:20
前言 在开始之前,请在心中默念三遍: 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 桌面配合完美