:root{--puock-block-not-tran:100%}

Arch Linux安装 详细解析个人踩坑笔记

1,629次阅读
没有评论

共计 6999 个字符,预计需要花费 18 分钟才能阅读完成。

前言

个人使用过很长一段时间的archlinux,最开始接触linux是从ubuntu开始的那时候还是16.04吧应该还有centos.到现在已经有四五年时间了,期间各大发行版都使用过,对比之下archlinux更偏向于让你可以更加了解linux,GNU…但这往往又伴随着比较长时间的学习路线.archlinux更加适合想要更深入的了解linux,使用linux最新的内核于软件,以及对linux,以及各种发行版有一定了解的人群使用.如果你是刚开始学习linux相关命令. 个人觉得 ubuntu 会是一个更好的选择.archlinux 的优势在于它的软件包是最新的,并且大多都是从开源代码仓库拉取的,这在日常使用中非常必要,你可以第一时间享受到新软件的特性,而不用烦心于升级软件时的过旧依赖的问题。其提供的软件包可以让你轻松安装使用,而不用自行编译.除此之外,用户仓库 AUR 由世界各地的archlinux用户驱动,提供了海量的非官方软件以供选择.

官网

安装以及使用archlinux 官方网站: archlinux.org 是一个非常优秀与完善的的linux文档参考, 在上面你基本可以找到你使用过程中会碰到的基本大多数问题的参考以及详细说明.在大多数情况下当你想了解linux的一个命令你可以在archlinux官方文档中先寻找这通常都能够找到最佳的实践以及每一个参数的详细解析,如果是第三方包或者软件你也可以在这里找到那款软件的源码仓库,以及原始软件文档.要了解安装archlinux可以从它的官网入手.

Home(主页) 在这个页面中 News Archives 有时会需要稍微看一下, 这里会列出发行版团队认为比较有影响的更改, 例如仓库变化, 加密算法更新, 安全校验更新等等在, 当你使用到相关包可能会对你现在运行的软件有影响的地方会在这里列出, 通常它也代表着最新linux软件或者内核最新的更改,这也是我认为archlinux最适合想要了解linux人使用的原因, 你可以在基本上第一时间得到经过了一定的测试linux软件更新.并且包含一定文档说明.

Package(包) 此处在官方文档中 官方仓库 已有说明 个人体会core仓库的包就是系统的基础包通常经过了比较严格的测试属于linux软件体系的基础包,extra就是一些额外的包含图形界面的,并不那么保证其稳定性的软件, 实际在使用中基本不用在意这些区别,multilib 里面的包是32位的程序,一般在使用中基本不开启这个包,甚至尽可能的避免使用这个仓库里面包32位的程序,但如wine,steam这些包可能需要这个仓库里面的包.testing通道里面的包个人体验除非你是想参与测试archlinux,不建议直接使用testing仓库里面的程序…

Forums(论坛) 在论坛中可以搜索到关于系统的一些细节问题的解决以及持续跟踪解决,也可以在上面发表你自己遇到的问题,archlinux是一个开放的社区.在这里大量的archlinux用户在使用着也在同时的帮助其他人解决自己所遇到的问题你也可以成为其中之一. 在这里 bbs.archlinuxcn.org 同时也存在一个中文论坛相对官方论坛不是那么活跃,但在这里往往可以寻找到一些中文用户问题的解决方案.

Wiki (维基,文档) 手动重点!!! ArchWiki 这里是archlinux相对于其他发行版最为完善以及强大的地方.ArchWiki仅对于我而言是我使用过的发行版中文档最全面最强大的,在你在使用linux中遇到的问题,百分之80在这里都可以寻找到解决方案还有最为详细的步骤解读,参数解读,全面的结构化的系统的文档.在languages处可以看到文档涵盖了31种语言,当然也包括了简体中文,只是个人建议在查找文档的时候一般先查看英文文档,使用谷歌网页翻译,自带的中文文档有些时候的内容可能会有一些滞后,但是中文文档中有时也会有中文用户会遇到的专门的问题的解决方案. 在找问题的时候,一般两种语言的文档建议都看看.在上图中大多数时候都常用的就是Installation guide这里介绍了archlinux的安装过程,在本文接下来所介绍的安装过程也是取自这个章节,General recommendations 这里介绍了archlinux的使用详解, 这里详细分类了从用户权限,包管理,硬件启动,图形界面,shell从基本涵盖了linux基础操作的所有分类.

Bugs (问题跟踪列表) 通常不用管这里, 这里是论坛中报告的问题跟踪记录, 通常都是在论坛中找到问题跟踪这里的修复报告. 当然你也可以在这里通过关键字寻找你遇到问题是否已经被报告跟踪, 要是没有可以在论坛中提出并报告错误.

Security (安全漏洞报告) 这里会标记系统漏洞的安全报告,如果你是安全测试人员你可能会需要它.

AUR (用户软件仓库) 关于AUR在 Wiki Arch User Repository中也有介绍. 总的来说来自aur的软件包都是来自使用archlinux的用户自己创建的通过使用PKGBUILD标注的信息下载二进制或者源码使用makepkg生成安装包安装. 你也可以制作. 这通常也意味着, 来自于这里的包, 你需要自己检查它的安全性和使用性. 优点是在这里你可以找到包括github等开源代码仓库开源的大多数软件的打包镜像,编译好的二进制,解决好依赖问题的最新包.

Download (下载) 下载安装镜像的地方… 需要注意的是archlinux是通常情况下是需要联网安装的,这里下载的镜像类似于一种安装环境. 让你可以在这个环境里拉取仓库里面的包安装到要安装的主机里.

安装archlinux

制作u盘或者虚拟机安装等各种启动安装程序的流程这里不再赘述, 以下教程是以启动的安装盘的情况下在安装环境里的shell操作,主要关注安装时候会碰到的一些问题参考ArchWiki Installation guide章节. > 值得注意的是由于内核签名的原因, 使用archlinux 需要关闭主板的安全启动(Secure Boot)如果有. 还需要注意区分系统启动 UEFI 和 BIOS/CSM 启动的区别, 在某些比较老型号的主机或者是那种迷你主机有可能是不存在UEFI的. archlinux支持BIOS/CSM启动,只需要在硬盘格式化时候 msdos 分区表.总之UEFI启动使用gpt分区表,BIOS/CSM使用 msdos 分区表.

制作启动盘这里推荐一款软件 Ventoy 可跳转到官网查看制作教程. archlinux的启动制作用这款软件的话只需要下载上面 archlinux.org-download拷贝到Ventoy制作的u盘数据分区里面就好了.启动后进入到如下界面. Arch Linux安装 详细解析个人踩坑笔记 下面代码为在命令行中输入的命令 # out: 后为执行命令后理论上应该返回的信息,如果没有返回相应信息大概就是出错了.

  1. 检查启动方式
ls /sys/firmware/efi/efivars
# out: ...
# 若输出了一堆东西,即efi变量,则说明已在 UEFI 模式。否则则为 BIOS/CSM启 动方式.如果你的电脑支持UEFI 启动建议尽量使用 UEFI 启动.
  1. 连接网络 如果你的设备是插入网线这里应该已经连上网络了则跳过这个步骤, 如果你的电脑是使用WiFi联网下面的则使用下面的命令连接.
iwctl # 进入交互式命令行
device list # 列出无线网卡设备名,比如无线网卡看到叫 wlan0
station wlan0 scan # 扫描网络
station wlan0 get-networks # 列出所有 wifi 网络
station wlan0 connect wifi-name # 进行连接,注意这里无法输入中文。回车后输入密码即可
exit # 连接成功后退出
  1. 检查网络
ping nenufm.com
# out: PING nenufm.com (8.136.119.251) 56(84) bytes of data.
# 64 bytes from 8.136.119.251 (8.136.119.251): icmp_seq=2 ttl=53 time=29.9 ms...
# ping 如果成功则你已经连上网络了, 如果出现错误则需要尝试上面的联网步骤. archlinux的安装必须在联网状态下.
  1. 更新系统时钟 使用 timedatectl 确保系统时间是准确的。这一步不是可选的,正确的系统时间对于部分程序来说非常重要:
timedatectl set-ntp true # 将系统时间与网络时间进行同步
timedatectl status # 检查服务状态
  1. 分区和格式化区分 uefi 启动和 BIOS/CSM 启动
lsblk               #显示分区情况 找到你想安装的磁盘名称
# out:
sda           8:0    0 931.5G  0 disk
└─sda1        8:1    0 931.5G  0 part /mnt/media
zram0       252:0    0     4G  0 disk [SWAP]
nvme0n1     259:0    0   1.8T  0 disk
├─nvme0n1p1 259:1    0     1G  0 part /boot/efi
└─nvme0n1p2 259:2    0   1.8T  0 part /
# 注意下面的操作会清空操作磁盘的所有数据 一定看清楚lsblk 命令所列出来的磁盘大小以及位置如sd开头sda的代表的是 sata连接的硬盘 下面的sda1 是这块硬盘下的一个分区 nvme则是现在流行的nvne固态硬盘的连接通道. 操作同理 即 /dev/nvme0n1 就可以了.
parted /dev/nvme0n1             #执行parted,进入交互式命令行,进行磁盘类型变更
(parted)mktable             #输入mktable
New disk label type? gpt    #输入 gpt 将磁盘类型转换为gpt 如磁盘有数据会警告,输入yes即可, 如果你是 BIOS/CSM 启动 则输入 msdos 转换为msdos 分区表即可
quit                        #最后quit退出parted命令行交互
# 这里如果是 uefi 启动 则需要先分配一个 256M 大小及其以上通常是1GB的一个uefi启动分区 会挂载到/boot目录,BIOS/CSM 则最少只需要分配一个分区就可以了. 同理你可以/home单独作为一个分区.
cfdisk /dev/nvme0n1 #来执行分区操作,分配各个分区大小,类型
fdisk -l #分区结束后, 复查磁盘情况
#out:
Disk /dev/nvme0n1: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: Samsung SSD 980 PRO 2TB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 309C281C-13BA-46BD-AAFC-5A834519B2E1
Device           Start        End    Sectors  Size Type
/dev/nvme0n1p1    2048    2203647    2201600    1G EFI System
/dev/nvme0n1p2 2203648 3907026943 3904823296  1.8T Linux filesystem
# 最后格式化分区
mkfs.ext4  /dev/nvme0n1p2      #格式化根目录
mkfs.vfat  /dev/nvme0n1p1      #格式化efi分区
mount /dev/nvme0n1p2 /mnt      #挂载根目录
mkdir /mnt/boot                #创建启动(EFI)目录(BIOS/CSM)则不需要包括下面挂载步骤
mount /dev/nvme0n1p1 /mnt/boot #挂载启动(efi)分区
  1. 更换国内软件仓库镜像源加快下载速度
# 禁用 reflector 服务(可选) rchlinux 安装镜像中加入了 reflector 服务,它会自己更新 mirrorlist(软件包管理器 pacman 的软件源)。在特定情况下,它会误删某些有用的源信息。这里进入安装环境后的第一件事就是将其禁用。也许它是一个好用的工具,但是很明显,因为地理上造成的特殊网络环境,这项服务并不适合启用。
systemctl stop reflector.service
# 编辑国内软件仓库镜像源
vim /etc/pacman.d/mirrorlist
# 这里我推荐使用 清华大学开源软件镜像站所搭建的镜像 放在这个文件的上面部分
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
# 这里使用vim编辑器你也可以用其他的如nano vim有一个小技巧分享 文件中默认自带了其他镜像地址如果不想全手打那么多字 可以将光标导航到 已存在的镜像地址 在操作模式下 使用yy键复制p键粘贴到最上面x删除多余的地址i插入mirrors.tuna.tsinghua.edu.cn部分
  1. 安装基础包
# 更新添加的镜像源仓库
pacman -Syy
# 安装基础包到挂载的 /mnt 目录
pacstrap -K /mnt base linux linux-firmware
# 生成 fstab 文件 这里非常重要 千万别遗漏这一步 如果遗漏你会再安装完成后启动出现完全混乱的错误而烦恼
genfstab -U /mnt >> /mnt/etc/fstab
  1. 进入安装的系统配置启动
# 进入基础包系统
arch-chroot /mnt
# 安装 启动器
pacman -S grub
# 如果为 BIOS/CSM 启动则按照如下配置配置启动
grub-install --target=i386-pc /dev/nvme0n1
# 如果为 uefi 启动  则安装 efibootmgr包后如下配置启动
pacman -S efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
# 最后上面两种启动方法都需要生成grub.cfg 文件
grub-mkconfig -o /boot/grub/grub.cfg
# 安装微码 对应你的设备处理器制造商 微码可以理解为设备制造商 提供的在内核加载之前 为处理器添加的修补代码, 一些性能优化更新, 以及漏洞修复相关功能.
pacman -S intel-ucode # Intel
pacman -S amd-ucode # AMD
# 再执行一次 grub.cfg 生成 将微码加载添加到启动流程中
grub-mkconfig -o /boot/grub/grub.cfg
  1. 配置root密码
# 命令然后输入你自己想设置的密码 输入的时候界面不会变化 输入两次第二次是确认密码
passwd
  1. 安装基础联网软件 由于archlinux安装包必须联网,所以在安装的时候必须在此处安装好联网软件.但这里通常有许多选择,通常我会安装dhcpcd包来确保重启之后能用网线进行基础联网, 如果你是WiFi联网还需要在这里安装iwd包. 同时安装vim 包以在重启之后能够更改配置. 在基础包里这些都是不自带的.
# 安装 dhcpcd iwd vim
pacman -S dhcpcd iwd vim
# 可选 配置 dhcpcd 开机启动后 在路由器下面重启网线连接后即可自动联网
systemctl enable dhcpcd
# 也可在重启后使用下面的命令即时启动dhcpcd服务
systemctl start dhcpcd
# wifi 连接模式同理 在重新进入系统后 使用安装时连接wifi的步骤连接WiFi就可以了
systemctl start iwd
# 如果设置 iwd 自动启动 在重新进入系统后 连接WiFi第一次连接成功 之后将会自动连接WiFi
systemctl enable iwd
  1. 完成安装 通常我的经验是安装时以最少的步骤完成安装, 通常命令行安装由于没有图形界面命令全靠手打, 虽然在archlinux的安装时候可以使用tab自动补全来敲命令.但直接在命令行中敲命令并且不可以复制粘贴的经历往往是烦恼的. 我通常会再安装一个 openssh 包然后在重启后让设备联网采用ssh远程的方式继续配置系统. 以下是我的自己常用准备在重启之后使用ssh远程的配置. 下面的配置我还会添加一个账户, 通常root不用做远程连接, 以下是配置代码.
# 添加用户 dex 这里你可以设定你喜欢的用户名但最好是ASCII字符集内的 启动 -m 参数为在/home创建目录. 此处注意最好要添加这个参数.
useradd -m dex
# 为用户 dex 配置登录密码 和root配置过程相同
passwd dex
# 将用户 dex 添加到 wheel 管理员组
usermod -a -G wheel dex
# 安装openssh
pacman -S openssh sudo
# 配置sudo
visduo
# 配置开机启动
systemctl enable sshd
# 退回安装环境
exit
# 卸载挂载挂载的分区
umount -R /mnt
# 重启
reboot

在重启等待设备关机后, 可拔掉u盘或者是虚拟机挂载的光驱. 等待设备进入新安装的系统.

总结

到此为止,一个基础的,无图形界面的 archlinux 已经安装完成了! 在重启之后没有意外的话将会进入一个登录界面,输入上面配置的用户名和密码即可开始你的archlinux之旅啦. 在登录后一般我的经验做法是 ip add 查看当前设备的ip, 再到有图形界面环境设备上, 使用 ssh 或者是 vscode 的远程工具远程连接再进行个性化配置.

正文完
 5
太阳
版权声明:本站原创文章,由 太阳 于2023-10-18发表,共计6999字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)