Table of Contents
1. 记录一次安装Arch-Linux的个人流程
1.2. efi分区扩容
因为在Windows下,默认 EFI分区
大小是100MiB (询问过AI,GPT的大概意思是说因为MS的EFI策略比较精简,做了大量的耦合,所以默认EFI大小容量就可以缩到特别小)
但是当如果EFI大小容量过小的话,就基本是不够的。然后弄过(B)oot(L)ooder比如grub、比如OC之类的,就会有一些 EFI大小容量不够的错误提示
比如如果容量不够,就会在 grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
这一步就会出现 grub error: no left space to create a directory的错误,从而导致引导不了ArchLinux系统,从而导致系统的确是安装在硬盘上了,但就是进不去,因为没有“钥匙”,装了也是白装,下一次进系统还是Windows
如果是 重装Windows系统
即 Windows还没有安装好 那么
# 创建一个1000M的EFI分区,用来保存接下来的grub-install文件 diskpart list disk select disk X # X是你的目标磁盘编号 create partition efi size=1000 format fs=fat32 quick
如果是 已安装好Windows系统
即 Windows已经安装好,ArchLinux发行版还没有安装好 那么
# 创建一个1000M的EFI分区,用来保存接下来的grub-install文件 # administrator打开cmd diskpart list disk select disk <分出1024MiB的那个disk的编号> list partition create partition efi format quick fs = fat32 # 创建挂载点别名P assign letter = P exit
1.3. 下载镜像
我们到这里 archlinux.org/download 下载 torrent 每月更新的种子文件
我推荐的是使用 bitComet比特彗星
来下载 (在Windows下,可以通过chocolatey software的 choco install bitComet
) 来安装
同时,记得每个月的月初时,个人建议最好下载完毕后,后台挂一会bitComet,毕竟P2P模式人人为我我为人人。不过难免有坏人bad guy,但那可能应该是做种子那方的维护者需要考虑的事情了
然后刻盘,我推荐用 rufus 3.2
比较早期的版本(反正我个人的经验是不要用 rufus 4.0
之上的版本),可以刻录iso
找个新U盘,我个人使用的是 2018年后生产的笔记本
这时基本上都具备了 UEFI启动方式
所以我个人使用的是 GPT、而非MBR
同时记得要选用 dd模式
来刻录
然后到windows的 磁盘管理
(使用Win+X弹出菜单来选择磁盘管理) 我们一定要保证分出来的区域,在 [windows磁盘管理] 中,看上去的颜色是 [黑色] 的才行
然后分区分个大概100来G吧,基本上就足够了。(您要分得小一点也可以的,但最起码保证有30G的空间就足够了)
然后插U盘,插上就行了,这时在windows上 肯定是识别不出来的里面有什么文件
别管,我们 按住Shift,然后用鼠标点击Windows的重启
然后就会进入到 Windows疑难杂症
那里,然后选择 进入固件设置
然后在固件设置里,您自己寻找 使用U盘
启动的方式,就可以 进入archiso
了
1.4. archiso过程记录
1.4.1. 联网iwctl
# 进入interactive界面 iwctl # 查看笔记本的网卡(wlan0) device list # 让笔记本网卡(wlan0)扫描附近网络 station wlan0 scan # 让笔记本网卡(wlan0)获取附近网络 station wlan0 get-networks # 联网 station wlan0 connect 网络 # 退出iwctl exit
1.4.2. 同步系统时间
# 设置系统时间 timedatectl set-ntp true
1.4.3. fdisk分区
# 查看硬盘分区情况(这是我个人的笔记本唯一的一个固态硬盘: /dev/sda) lsblk # 查看硬盘信息 # 我这里的情况是,我不一定能保证您的 [磁盘名称] 也是不是这样,如果不确定的话,请到一步一步跟着视频教程来 https://www.bilibili.com/video/BV1ag411K725 # + ESP分区: /dev/sda4 # + 135GiB空间主分区: /dev/sda8 fdisk -l # 然后进行初始化 # 这一步就 [相当于是将windows磁盘管理的⚫黑色分区,初始化为windows磁盘管理的🔵蓝色分区,我自己就是大致描述,希望您能理解到那个意思就行] fdisk /dev/sda # Press n # n 就是 n键,用来创建(n)ew partition # Press RET # RET 就是 Enter键,用来执行到下一步 # Press RET # RET 就是 Enter键,用来执行到下一步 # Press RET # RET 就是 Enter键,用来执行到下一步 # Press w # w 就是 w键,用来保存(w)rite # 然后给此分区加上签名,有ext4、zfs、btrfs等等 # 我个人只推荐使用 ext4 而不建议在非商业发行版上使用 btrfs (原因是非商业版的btrfs炸了没得修,个人不会修btrfs就这样) # /dev/sda8 是我的135GiB空间主分区,我不一定能保证您的 [磁盘名称] 也是不是这样,如果不确定的话,请到一步一步跟着视频教程来 https://www.bilibili.com/video/BV1ag411K725 mkfs.ext4 /dev/sda8
1.4.4. 挂载分区
名词 | 名词解释 |
---|---|
挂载mount |
在一颗B+文件树里面,将两个树节点连接起来的意思 我自己就是大致描述,希望您能理解到那个意思就行 |
挂载分区 |
将存放操作系统的磁盘,放在想要放的位置路径空间上 我自己就是大致描述,希望您能理解到那个意思就行 |
# 我不一定能保证您的 [磁盘名称] 也是不是这样,如果不确定的话,请到一步一步跟着视频教程来 https://www.bilibili.com/video/BV1ag411K725 # 我不一定能保证您的 [磁盘名称] 也是不是这样,如果不确定的话,请到一步一步跟着视频教程来 https://www.bilibili.com/video/BV1ag411K725 # 我不一定能保证您的 [磁盘名称] 也是不是这样,如果不确定的话,请到一步一步跟着视频教程来 https://www.bilibili.com/video/BV1ag411K725 # 挂载主分区 (我的笔记本是/dev/sda8)到/mnt mount /dev/sda8 /mnt # 挂载EFI System分区 (我的笔记本是/dev/sda4)到/mnt/boot (UEFI启动) mkdir /mnt/boot mount /dev/sda4 /mnt/boot # 正是由于这里,所以会遇到后面的ESP大小容量不够导致的一个小问题: grub error: no left space to create a directory.
1.4.5. 设置镜像源mirrorlist
# 使用vim打开mirrorlist vim /etc/pacman.d/mirrorlist # 并添加服务器镜像 Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch # 中科大 Server = https://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch # 北京外国语大学(广度优先搜索大学,梗来自清华源4月1日愚人节)
1.4.6. pacstrap安装必要的软件
# 作用: 让 pacstrap装修师傅 对着 /mnt 这个新家,进行装修(安装软件) # 内核: linux-lts(稳定版) pacstrap /mnt base base-devel linux-lts linux-firmware dhcpcd
1.4.7. 生成fstab
# 生成fstab genfstab -L /mnt >> /mnt/etc/fstab # 查看(我的笔记本)情况 # /dev/sda8 => / btrfs # /dev/sda4 => /boot vfat cat /mnt/etc/fstab
1.4.8. 搬家arch-chroot
# 作用: 把自己搬进了毛胚房新家(此时的/mnt新家,还是刚装修完,装修师傅没有打扫卫生,自己的行李还没放置进去) arch-chroot /mnt # 效果 # root@archiso ~# 会改成 [root@archiso /]#
1.4.9. 设置系统时区时间
# 设置时间区域为亚洲/上海(Asia/Shanghai) ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
1.4.10. 同步时间为硬件时间
# hwclock hwclock --systohc
1.4.11. 安装一些软件
# vim在快速编辑一些文件还是很有用武之地的,还是十分推荐安装vim..... pacman -S vim dialog wpa_supplicant ntfs-3g networkmanager netctl
1.4.12. 设置本机环境
# 设置语言 # #en_US.UTF-8 UTF-8 改成 en_US.UTF-8 UTF-8 # #zh_CN.UTF-8 UTF-8 改成 zh_CN.UTF-8 UTF-8 # #zh_TW.UTF-8 UTF-8 改成 zh_TW.UTF-8 UTF-8 # #zh_HK.UTF-8 UTF-8 改成 zh_HK.UTF-8 UTF-8 vim /etc/locale.gen # 生成语言项 locale-gen # 设置系统环境语言 # 添加 LANG=en_US.UTF-8 vim /etc/locale.conf # 设置主机名( 主机名 要记住) # 添加 kle(或者你自己设置一个名称,比如我这里设置kle,后面就要用到kle) vim /etc/hostname # 激活主机名 # 127.0.0.1 localhost # ::1 localhost # 127.0.1.1 kle.localdomain kle (kle是我自己的 [主机名]) vim /etc/hosts # 设置root密码 passwd
1.4.13. 设置(B)oot(L)oader
# 不弄会怎样?那就没有 “钥匙” # 导致导致系统的确是安装在硬盘上了,但就是进不去,因为没有 “钥匙” # 装了也是白装,下一次进系统还是Windows (即使您进入了bios固件设置,仍然只会找到windows的引导文件) # bootloader作用: 通过BL这类程序,来让硬件驱动软件起来,让软件跑起来(这里的软件指的是操作系统) # 安装os-prober,为了安装让archlinux与windows10双系统共存 # 与时俱进: 好像说不用装这个了,但为了以防万一还是装上吧! pacman -S os-prober ntfs-3g pacman -S grub efibootmgr # 使用grub,从而在/boot下,生成名为grub的引导文件 grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub # grub-mkconfig 输出生成grub配置文件(此时环境: U盘里面,所以应该是只有 [archlinux] 该 “软件” (这里的软件指的是操作系统)) cd /boot && mkdir grub cd ../ grub-mkconfig -o /boot/grub/grub.cfg
1.4.14. 准备拔U盘
exit # 效果 # [root@archiso /]# 会改成 root@archiso ~# # 重启,黑屏了就拔u盘,防止二次进入archiso(这得看主板那时的设置) reboot # 备注 # + 如果您出先了 "watchdog did not stop" 的提示,最好等待个10来分钟左右,不要拔U盘,等待了10分钟之后直接硬件关机然后再拔U盘不然装不上的,如果出现了并强行拔下来的话需要重装从这句话之上面的每一步。 # + 反正我自己2024年4月份安装的时候,在我自己这台笔记本上是这样的 # + 但是现在2024年10月1日的镜像不用等了,直接当电脑黑屏就能直接拔U盘了。 # OK # + 如果您拔了U盘之后,一般来说就会进入到 [全新安装好的ArchLinux了] # + 然后我们在tty上登陆 # + 输入 "root" 字符 # + 输入 "您刚刚您自己设置过的密码" (密码不会回显的)
1.5. 已安装好archlinux后的本机设置
1.5.1. 联网
# 网络连接 # 首先,无论有线无线网络连接,都必须先开启服务 systemctl enable NetworkManager systemctl start NetworkManager # 如果机器是有线网线连接: 就已经连上网了 # 如果机器是无线连接: 必须进行下面的步骤 # 无线联网(如果是有线的话,在开启上面的服务后就可以直接联网了) nmcli dev wifi list nmcli dev wifi connect "网络名" password "密码"
1.5.2. 设置SWAP交换分区
# 设置SWAP分区 # 有人评价说,对于SWAP分区大小的最佳选择,是 [SWAP大小 🟰 真实内存大小 ➗ 2],不过个人认为见仁见智,我个人笔记本内存共有8G,仅设置了2G的SWAP分区 # 这里在 "/" 目录下,设置了2G(2048M)大小的SWAP分区 dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress chmod 600 /swapfile mkswap /swapfile swapon /swapfile # 手搓一下fstab,来开启SWAP vim /etc/fstab # 使用vim来添加下面的文本 /swapfile none swap defaults 0 0
1.5.3. 创建日常使用的用户,而不是root用户
# 我的日用用户名是: kle useradd -m -G wheel kle # 然后第1次输入 日用用户名的密码 # 然后第2次输入 日用用户名的密码 passwd 日用用户名 # 安装sudo pacman -S sudo # 编辑器设置,将vi映射成了vim,同时也是为了用visudo # 如果不想映射的话,执行 sudo vim /etc/sudoers 也是可以的 ln -s /usr/bin/vim /usr/bin/vi # 编辑进行下面的修改 visudo #%wheel ALL=(ALL:ALL) ALL 改成 %wheel ALL=(ALL:ALL) ALL # 切换到日用用户名,并且通过su,来给予root权限 (我自己的日用用户名是: kle) su kle
1.5.4. 安装桌面环境DE
# 开启一些可用仓库源 # #[multilib] 改成 [multilib] # #include=/etc/pacman.d/mirrorlist 改成 include=/etc/pacman.d/mirrorlist # 改成 [archlinuxcn] # 改成 Server = https://repo.archlinuxcn.org/$arch sudo vim /etc/pacman.conf # 强制开滚,保持与镜像源的同步 sudo pacman -Syy # archlinuxcn的密钥环 # + 好像是因为人手不够,删除了一个master key # + 导致fc教授的可信程度设置到marginal trust导致的 # + 现在手动要信任sudo pacman -Syy后存在机器本地的fc教授farseerfc的密钥 sudo pacman-key --lsign-key "farseerfc@archlinux.org" # 这一步的钩子函数运行时间,较长,因为它要给所有本地的包加上刚导入的fc教授的签名,静静等待就好。 sudo pacman -S archlinuxcn-keyring # 显卡驱动 # 推荐资料: https://wiki.archlinuxcn.org/wiki/Xorg#%E5%AE%89%E8%A3%85 # + 比如在我个人的笔记本上,不要安装这个xf86-intel-video,否则将会导致sddm登录界面花屏闪烁 # + 导致永远无法通过sddm切换其余的桌面环境(但是盲输密码是可以登录KDE plasma on Wayland的) # + 不安装xf86-video-intel时,会默认使用自带的Xorg的modesetting。 # + mesa是OpenGL此驱动 sudo pacman -S mesa # 安装界面美观、且配置现代的KDE(同时使用SDDM桌面管理器) sudo pacman -S xorg plasma kde-applications sddm network-manager-applet # + 然后一直RET(Enter)下去就行了,按个大概10来次都确定就行了 # + 因为 https://www.bilibili.com/video/BV1ag411K725 视频教程也是全部确定的 # 在约半小时后的下载并安装完毕之后,打开桌面管理器sddm sudo sytemctl enable sddm # 关闭一些服务 sudo systemctl disable netctl # 开启网络服务,从而可以在下一次的每次进系统都能使用联网功能 sudo systemctl enable NetworkManager
1.5.5. 安装中文字体
# 安装中文字体 sudo pacman -S wqy-microhei wqy-microhei-lite wqy-bitmapfont wqy-zenhei ttf-arphic-ukai ttf-arphic-uming adobe-source-han-sans-cn-fonts noto-fonts-cjk
1.5.6. 重新设置本机语言
# 重新设置本机语言 sudo vim /etc/locale.conf # #LANG=en_US.UTF-8 改成 LANG=zh_CN.UTF-8
1.5.7. 太美丽啦KDE
sudo reboot
1.6. 一些也许有用的软件
1.6.1. 中文输入法fcitx5
# 安装fcitx5全家桶 # + fcitx5-im 本体 # + fcitx5-chinese-addons 输入中文附加项 # + fcitx5-material-color Material主题色 sudo pacman -S fcitx5-im fcitx5-chinese-addons fcitx5-material-color # 在相应的图形环境之下的软件的IM软件,均可使用fcitx5全家桶。比如我想在spectacle(KDE的截图工具,属于QT_IM_MODULE)输入中文,于是就设置QT_IM_MODULE=fcitx # 改成 GTK_IM_MODULE=fcitx # 改成 QT_IM_MODULE=fcitx # 改成 XMODIFIERS=@im=fcitx # 改成 SDL_IM_MODULE=fcitx sudo vim /etc/environment # 在KDE下,需要到 [系统设置 > 键盘 > 虚拟键盘 > 选择 "Fcitx5" (而不是 "Fcitx5 Wayland启动器(实.."))] # 从而来让KDE桌面环境,识别出fcitx5。从而自己在send-key时,能发C-SPC到KDE on Wayland上,进行切换输入法
1.6.2. 电池充电阈值(可选)
# 电池充电阈值 # + 此功能的开启,不依赖任何系统,具体需要看厂商的硬件支持 # + 可到笔记本的相应门户网站上查询手册查看是否有这一功能 # + 比如早期一点点的一些TP笔记本,支持充电到60%或充电到80%这2个固定的值 # + 比如一些ASUS笔记本,支持60%到100%的80个固定的值(这我自己真的没想到支持怎么这么好?) # 安装电池充电阈值 sudo pacman -S tlp # 停止现有的电池充电阈值服务 sudo systemctl disable tlp sudo systemctl stop tlp # 我自己这里是当充电少于75%就开始充电,充电到80%就停下。 sudo vim /etc/tlp.conf # #START_CHARGE_THRESH_BAT0=75 改成 START_CHARGE_THRESH_BAT0=75 # #STOP_CHARGE_THRESH_BAT0=80 改成 STOP_CHARGE_THRESH_BAT0=80 # 开启最新的电池充电阈值服务 sudo systemctl enable tlp
1.6.3. X与Wayland(可选)
桌面服务器(桌面协议) | 据我个人所知的DE | 据我个人所知的WM |
---|---|---|
X | 最稳定的桌面服务器,2024年有开发者 Enrico Weigelt 一人之力提交数占到了 83% |
i3wm、dwm, etc. |
Wayland | 流行度很高的桌面服务器,说是Wayland重新实现并抽象了X桌面协议,并实现了X没有的功能比如 “倍数缩放” | Hyprland、NIRI, etc. |
XWayland | X 与 Wayland 之间的桥梁,从而在Wayland下运行只遵循X桌面协议的软件,比如 alacritty | N/A |
所以,要在Wayland下运行只遵循X桌面协议的软件,比如在Wayland下运行alacritty的话,就需要这样
# 要在Wayland下运行只遵循X桌面协议的软件,比如在Wayland下运行alacritty的话,就需要这样 sudo vim /etc/environment # alacritty # 改成 WINIT_UNIX_BACKEND=x11 alacritty # kitty # 改成 WINIT_UNIX_BACKEND=x11 kitty
1.6.4. 字体补丁(可选)
这里的字体补丁,专门指为 Nerd Font
字体打上 fontforge
补丁,fontforge脚本(字体补丁),的实现来自于 nf字体作者: ryanoasis
我自己使用的是,从nf字体作者ryanoasis的仓库翻出来的一个字体,是 SourceCodePro字体 + NF图标
后的字体
# 安装fontforge sudo pacman -S fontforge # 下载字体(原始名称: 'Sauce Code Pro Semibold Nerd Font Complete Mono.ttf') # https://github.com/colfwe/dotfiles/tree/main/res/fonts(仓库地址) # 下载fontforge脚本(字体补丁) # https://github.com/ryanoasis/nerd-fonts?tab=readme-ov-file#font-patcher(仓库地址的archive此处) # 打字体补丁(补丁后的名称: SauceCodeProNerdFontCompleteMonoNerdFont-SemiBold.ttf) # fontforge --script ./font-patcher --complete 'Sauce Code Pro Semibold Nerd Font Complete Mono.ttf' # 安装字体 mkdir -p ~/.local/share/fonts/ mv SauceCodeProNerdFontCompleteMonoNerdFont-SemiBold.ttf ~/.local/share/fonts/ sudo fc-cache -f
1.6.5. 包降级软件(可选)
提供命令行TUI界面,用来进行在某次pacman -Syu后,降级某个特定软件包
# 提供命令行TUI界面,用来进行在某次pacman -Syu后,降级某个特定软件包 sudo pacman -S downgrade