Loading... <div class="tip inlineBlock error"> 这不是一个教程!!! </div> ## 原因 最近发现bun.js挺火的,但是不支持windows,只支持*uix。我就想起来尘封已久的ArchLinux。但是好久没更新上系统的时候已经滚挂了,所以就重新安装一下 ## 安装前准备 <div class="tip inlineBlock warning"> 再次提醒这不是教程,有问题请访问[ArchWiki](https://wiki.archlinux.org/) </div> ### 下载镜像 这里建议通过镜像站来下载,如果你魔法上网非常好的话可以去[Arch下载站](https://archlinux.org/download/) 这里列举几个镜像站 * [中国科学技术大学开源镜像站](http://mirrors.ustc.edu.cn/) * [清华大学开源软件镜像站](https://mirrors.tuna.tsinghua.edu.cn/) * [华为开源镜像站](https://repo.huaweicloud.com/archlinux/) * [阿里云开源镜像站](https://developer.aliyun.com/mirror/archlinux/) ### 刻录镜像 准备一个大于2G的U盘(建议上8g),刻录镜像当启动盘。 刻录软件推荐[Ventoy](https://www.ventoy.net/cn/doc_start.html),把镜像文件丢进去就行了,可以在弄一个WindowsPE镜像进去这样出了什么问题就可以随时还原 ## 基本系统安装 插上U盘选择U盘启动,然后选择第一个就可以进入Arch的安装环境了 ### 禁用 reflector 服务 这玩意一定要块,进入安装环境第一件事就是把它ban了,我之前安装遇到pacman半天没网的情况,结果是它给我调度到了非洲的镜像源。它或许是个好东西(特定情况)但是时好时坏的东西还是ban掉 **使用下面的代码来关闭和检测有没有关闭** ```zsh systemctl stop reflector.service systemctl status reflector.service ``` ### 连接网络 我是电脑直接插了网线不需要通过命令来连接无线网络,所以这里是放了一下,等安装桌面在连接无线网络。 ### 更新系统时间 在很多日志等操作需要正确的系统时间来保证没有问题 ```zsh timedatectl set-ntp true # 将系统时间与网络时间进行同步 timedatectl status # 检查服务状态 ``` ### 换镜像源 由于刚才我们手动禁用了reflector使用我们的镜像源是没有改变的,如果改变了也不要紧,手动改掉就行了 使用 `vim` 编辑器修改 `/etc/pacman.d/mirrorlist` 文件 ```zsh vim /etc/pacman.d/mirrorlist ``` 这里推荐中科大源,将下面的镜像源放在最上面即可 ```mirrorlist Server=http://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch Server=https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch ``` ### 安装ssh和net-tools 我很懒啊,在维基上找了教程,然后输到这里我就不想输了,然后我就拿上我的mac准备连接ssh了 ```zsh pacman -Syu # 换了源先更新系统软件包 pacman -S openssh # 安装ssh pacman -S net-tools # 我们需要找到IP才能连接ssh ``` ### 启动和连接ssh net-tools只是一个随时运行的工具,所以不需要启动,我们需要启动openssh来保持我们的连接 ```zsh systemctl start sshd ``` sshd就是openssh了,我们只需要启动它就行了,不需要让它开机自启。然后我们连接ssh,ssh什么软件都可以连接,我用的是termius,在连接ssh之前我们需要查看IP和设置root密码 ```zsh ifconfig # 和window的不一样不是ipconfig passwd root # 设置root密码 ``` 然后使用ssh软件连接就行了,这样一对代码就能复制粘贴了 <div class="tip inlineBlock warning"> 需要注意这里设置的root密码等下回到原系统还需要设置一遍,不然登录不上 </div> ### 分区和格式化 <div class="tip inlineBlock error"> 如果你是和Windows安装在一个盘下,请带好眼镜,别格错了盘,生命诚可贵 数据价更高 </div> 1. 使用`lsblk`来查看查看分区情况 2. 使用 `cfdisk` 命令对磁盘分区 3. (可选)创建efi分区,如果你是和window安装到一个盘这里就不需要创建efi分区,但是我是拿古老的机械来安装,所以我需要创建一个efi分区 4. 创建swap分区 这里建议为内存的60%~100% 5. 剩下的容量就全部给Btrfs分区就行 6. 修改分区类别 efi分区需要选择`Efi System` swap需要选择`Linux Swap` 其他分区不用动 7. 格式化Efi分区 ```zsh mkfs.fat -F32 /dev/sdx # 刚刚创建的Efi分区 ``` <div class="tip inlineBlock warning"> 如果你是和window一个盘别格式化 </div> 8. 格式化swap ```zsh mkswap /dev/sdxn # 刚刚创建的swap分区 ``` 9. 格式化 Btrfs 分区 ```zsh mkfs.btrfs -L myArch /dev/sdxn ``` `myArch`是分区的名字类似于windows的本地磁盘、新建卷这种分区名字 10. 将 `Btrfs` 分区挂载到 `/mnt` 下 ```zsh mount -t btrfs -o compress=zstd /dev/sdxn /mnt ``` 11. 创建 Btrfs 子卷 ```zsh btrfs subvolume create /mnt/@ # 创建 / 目录子卷 btrfs subvolume create /mnt/@home # 创建 /home 目录子卷 ``` ### 挂载 使用以下命令挂载目录 ```zsh mount -t btrfs -o subvol=/@,compress=zstd /dev/sdxn /mnt # 挂载 / 目录 mkdir /mnt/home # 创建 /home 目录 mount -t btrfs -o subvol=/@home,compress=zstd /dev/sdxn /mnt/home # 挂载 /home 目录 mkdir -p /mnt/boot # 创建 /boot 目录 mount /dev/sdxn /mnt/boot # 挂载 /boot 目录 swapon /dev/sdxn # 挂载交换分区 ``` ### 安装系统 通过如下命令使用 `pacstrap` 脚本安装基础包,也可以用pacman ```zsh pacstrap /mnt base base-devel linux linux-firmware btrfs-progs # 如果使用btrfs文件系统,额外安装一个btrfs-progs包 ``` 安装必要软件 ```zsh pacstrap /mnt networkmanager vim sudo zsh zsh-completions ``` ### 生成分区 使用 `genfstab` 自动根据当前挂载情况生成并写入 `fstab` 文件 ```zsh genfstab -U /mnt > /mnt/etc/fstab ``` ### 切换新系统 使用以下命令把系统环境切换到新系统下 ```zsh arch-chroot /mnt ``` ### 设置主机名与时区 1. 首先在 `/etc/hostname` 设置主机名 ```zsh vim /etc/hostname ``` 2. 接下来在 `/etc/hosts` 设置与其匹配的条目 ```zsh 127.0.0.1 localhost ::1 localhost 127.0.1.1 Arch.localdomain Arch ``` 3. 设置时区 ```zsh ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ``` 4. 同步硬件时间 ```zsh hwclock --systohc ``` ### 设置Locale 1. 编辑 `/etc/locale.gen`,去掉 `en_US.UTF-8 UTF-8` 以及 `zh_CN.UTF-8 UTF-8` 行前的注释符 ```号(`#`) ```zsh vim /etc/locale.gen ``` 2. 然后使用如下命令生成 `locale` ```zsh locale-gen ``` 3. 向 `/etc/locale.conf` 输入内容 ```zsh echo 'LANG=en\_US.UTF-8' > /etc/locale.conf ``` ### 设置root密码 刚刚我们在安装环境里设置了root密码,但是切换回系统我们就需要重新设置密码。 ```zsh passwd root ``` ### 创建非root账号 这里可以现在创建也可以等下重启完了再创建 1. 通过以下命令添加用户,比如新增加的用户叫`myusername` ```zsh useradd -m -G wheel -s /bin/bash myusername ``` 2. 通过以下命令根据提示设置新用户 `myusername` 的密码 ```zsh passwd myusername ``` 3. 使用 `vim` 编辑器通过 `visudo` 命令编辑 `sudoers` 文件 ```zsh EDITOR=vim visudo ``` 4. 找到如下这样的一行,把前面的注释符号 `#` 去掉 ```visudo `#%wheel ALL=(ALL:ALL) ALL` ``` ### 安装微码 通过以下命令安装对应芯片制造商的微码 ```zsh pacman -S intel-ucode # Intel pacman -S amd-ucode # AMD ``` ### 安装引导 1. 安装相应的包 ```zsh pacman -S grub efibootmgr os-prober ``` 2. 安装 GRUB 到 EFI 分区 ```zsh grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH ``` 3. 接下来使用 `vim` 编辑 `/etc/default/grub` 文件 ```zsh vim /etc/default/grub ``` 进行如下修改: * 去掉 `GRUB_CMDLINE_LINUX_DEFAULT` 一行中最后的 `quiet` 参数 * 把 `loglevel` 的数值从 `3` 改成 `5`。这样是为了后续如果出现系统错误,方便排错 * 加入 `nowatchdog` 参数,这可以显著提高开关机速度 * 加入 `GRUB_DISABLE_OS_PROBER=false` 4. 最后生成 `GRUB` 所需的配置文件 ```zsh grub-mkconfig -o /boot/grub/grub.cfg ``` ### 基础安装完成 退回安装环境并卸载mnt分区,拔掉U盘再重启 ```zsh exit # 退回安装环境 umount -R /mnt # 卸载新分区 reboot # 重启 ``` 连接网络 ```zsh systemctl enable --now NetworkManager # 设置开机自启并立即启动 NetworkManager 服务 ``` ## 安装桌面环境 ~~干前端需要浏览器怎么能不装桌面呢 懒。。。等我有空再写吧~~ 又到了心心念念的桌面环境了,不过在此之前我们需要先更新系统,<span style='color:#FF4500'>注意了,一段时间再开机以后需要更新不然就会和我一样挂滚</span> ```zsh pacman -Syu ``` ### 开启32位库和中文社区支持 1. 编辑 `/etc/pacman.conf` 文件 ```zsh vim /etc/pacman.conf ``` 2. 去掉 `[multilib]` 一节中两行的注释,来开启 32 位库支持 ![2023-11-30T17:33:43.png][1] 3. 在文档结尾处加入下面的文字,来添加 archlinuxcn 源 ```zsh [archlinuxcn] Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch # 中国科学技术大学开源镜像站 ``` 4. 保存并退出 vim 编辑器 5. 通过以下命令刷新 pacman 数据库并更新 ```zsh pacman -Syyu ``` ### 安装KDE桌面环境 这里我使用的KDE你也可以使用其他桌面比如GNOME等等 1. 使用以下命令安装相关包 ```zsh pacman -S plasma-meta konsole dolphin pacman -S plasma-wayland-session xdg-desktop-portal egl-wayland # 这里我习惯用Wayland你可以不装用x11 egl-wayland是n卡要装的 ``` 2. 启动桌面环境 ```zsh systemctl enable sddm # 这里直接用enable就能开机自启,不用每次都手动启动桌面环境 systemctl start ssdm # 手动开启桌面就不用重启了 ``` ### 完成安装 这样桌面环境就安装成功了,默认启动的是你配置的用户,输入密码就可以登录进去了,可以在登录页面选择是x11还是Wayland [1]: https://imaeg-1253448073.cos.ap-nanjing.myqcloud.com//usr/uploads/2023/12/3740114994.png?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKIDCHAnBIiDguteCYgZFhurZ2GF4ez5wgEZ%26q-sign-time%3D1732174383%3B1732175043%26q-key-time%3D1732174383%3B1732175043%26q-header-list%3Dhost%26q-url-param-list%3D%26q-signature%3Df7987721feb35bf75eb713a3237d01ba88f5dd73& 最后修改:2023 年 12 月 01 日 © 允许规范转载 赞 1 如果觉得我的文章对你有用,请随意赞赏