首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Archlinux 实践(一)

Archlinux 实践(一)

原创
作者头像
麦克马
修改2025-05-10 02:03:08
修改2025-05-10 02:03:08
1.4K0
举报
文章被收录于专栏:操作系统操作系统

一、前言

饭要一口一口吃,人要一点一点胖!

本文详细介绍了作为一个 C/C++ 程序员试图将 Archlinux 作为主力生产、娱乐环境的安装及配置过程,以及过程中遇到的问题及其解决办法。食用之前需注意的是,本文中提到的各种软件包的版本,以及硬件与我的是否一致,否则不保证能顺利搭建成功。

关键硬件配置:

  • CPU:i5-14600KF
  • 显卡:AMD rx580 2048sp

注:本系统实操环境为实体机,磁盘介质为 thinkpad plus 128G U盘,其他环境安装需做相应环境适配。

二、安装盘制作

安装盘和启动盘大家要分清楚,安装盘是用来安装 Arch 的,建议最小容量不小于 4G;启动盘可以理解为系统硬盘,只不过可以为U盘,容量建议不小于30G。

2.1 制作工具

推荐 rufus ,界面简单功能齐全,速度也很快。

2.2 步骤

下载好 fufus 后直接双击启动,选择 iso 文件,我用的是 archlinux-20250312.iso,算是目前最新的版本了,如果你下载的时候有更新,也可以用。

然后选择模式,推荐 GPT,如果你的电脑比较老旧,可能不支持 GPT,选择 MBR 即可,影响不大(可能是MBR不支持大文件)。

注意选择好目标磁盘或U盘,不要选错了,否则后果……你懂的!

最后点击【开始】,中间可能会有数据丢失风险弹窗,选择【确定】即可。

三、安装系统

安装前

安装前确认一下已经准备了目标磁盘(U盘),备份好数据,数据无价!

如果是 U盘则需要将其插到 USB口,开机,过程中如果是台式机则狂按 Del 键,如果是笔记本则视不同品牌型号而定,提前查好。

如果 安装盘制作没有问题,正常情况下会进入到如下安装界面,选择默认项回车即可。

一切正常的话会进到如下界面。对,你没看错,这是 Archlinux 提供的安装程序,而不是你最终要用的 Archlinux 系统,只是恰巧它也是基于 archlinux 制作的,里面配置了一套安装系统的工具和软件包。下面开始真正的安装。

分区

假定我们提供的是 50G 大小的磁盘空间或者U盘,由于启动分区(即用来启动系统专用)最小为 2G,所以留给系统的空间最大只有 48G,当然我们可以再分出一块作为交换分区(当内存不够用时作为内存使用的空间),一般等于内存大小,或者我们直接将剩余空间全部留给系统(即根目录“/”)。这里我们采用后者。

分区工具我们采用 archlinux 安装程序提供的 cfdisk,界面更友好,操作简便。

在分区之前我们需要使用另一个工具 lsblk 查看一下当前有哪些磁盘介质,它也是一个查看磁盘信息的工具,查询结果比较简单,但够用了。

代码语言:shell
复制
# lsblk

输入 lsblk 命令后回车,你的界面可能是这样的,不同机器可以不同,不过大同小异。从磁盘空间(≈50G)可以轻松找到我们的要安装的目标磁盘。比如说是 /dev/sda,那么开始分区则输入以下命令:

代码语言:shell
复制
# cfdisk /dev/sda

进到 cfdisk 工具界面,方向键上下来选择分区,左右键选择操作指令。比如先选中所有未分区的磁盘,再左右选择【New】,然后输入 2G,回车,启动分区就创建好了。

再下方向键选择未分区磁盘空间,然后左右选择【New】,直接回车,即把剩余所有空间一次性分出,系统分区就完成了!

如果操作无误,分区后完整目录如下:

代码语言:shell
复制
/dev/sda:
    sda1:      2G
    sda2:      48G

这里的 sda1 表示 1 号分区,同理 sda2 表示 2 分区。

格式化与挂载

1. 格式化

磁盘只是分区的话还不能使用,无法被系统识别,想要被系统识别还需对其进行格式化。

linux 系统可识别的磁盘格式与 windows 不同,它支持 fat、ext4 等格式,也是我们要采用的格式。作为启动分区非常特殊,仅支持 fat32 格式,所以格式化的操作如下:

代码语言:shell
复制
# mkfs.fat -F32 /dev/sda1
# mkfs.ext4 /dev/sda3

2. 挂载

因为我们是在安装程序(可视为简化版 archlinux 系统)中安装操作系统,所以首先得将目标磁盘的分区挂载到当前的系统下。

Linux 系统中所有设备都由文件来表示,包括键盘、鼠标、显示器,当然磁盘也不例外,否则 linux 无法操作该设备。挂载之后会如同操作系统中的某个文件一样来操作该设备,比如读写。挂载指令如下:

代码语言:shell
复制
# mount /dev/sda2 /mnt
# mkdir /mnt/boot
# mount /dev/sda1 /mnt/boot

记住 sda1 是启动分区,sda2 是主分区(即系统分区)。如果忘了再次使用 lsblk 命令确认一下。

挂载的时候要先挂载主分区,然后在 /mnt 目录再创建一个目录 boot,最后将启动分区挂载到 /mnt/boot 目录下。文件存在于目录下,很好理解!

其中,/mnt 是安装程序帮我们事先创建好的,不用管,只是启动分区挂载目录需要我们自己创建。

注:这里没有说明有交换分区的情况下该如何分区,格式化,挂载,如有需要自行百度。

安装

系统安装过程中需要连接网络下载一些必要的软件包,正常安装程序内可以访问外网,如果不确定可以使用 ping 命令试一试,如:

代码语言:shell
复制
# ping www.baidu.com

输出如下,表示网络正常,按 Ctrl + c 结束,不要一直 ping,咱们还有正事儿要干!

确定网络没有问题后,先不要急,因为安装软件需要从某些网站下载软件包,而默认是从国外网站下载,所以网速……你懂的!为了避免出现安装到一半因为网络问题导致安装失败,这里我们先配置一下国内软件源:

代码语言:shell
复制
# vim /etc/pacman.d/mirrorlist

vim 是个编辑器,可以理解为跟 notepad (记事本)一样,上面的命令是用它来编辑 mirrorlist 文件。

将里面的以 Server 开头全部删掉,换成清华源地址,格式跟它们一样:

代码语言:shell
复制
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch

准备工作做完了,下面开始安装:

代码语言:shell
复制
# pacstrap /mnt base base-devel linux linux-firmware sudo vim git dhcpcd
# genfstab -U /mnt >> /mnt/etc/fstab

第一行命令中,pacstrap 是安装软件的命令,/mnt 是安装到的目录,即主分区,后面是要安装的软件。其中 base 和 base-devel 是基础工具,linux、linux-firemware 是操作系统和操作系统固件,再后面的都是我们平时用的工具,如 dhcpcd 是动态(IP)地址分配,它会帮我们自动获取 IP 地址,我们就可以上网了。

第二行命令是生成文件系统配置表(File System Table),否则即使安装好了操作系统,但是找不到可以操作的文件,也用不了。

引导程序

系统启动需要引导程序,这里我们选择 grub2,这里我们不过多解释了,按如下操作即可:

代码语言:shell
复制
# arch-chroot /mnt
# pacman -S grub 
# pacman -S os-prober efibootmgr
# os-prober
# grub-install --target=x86_64-efi --efi-directory=/boot
# mkinitcpio -P
# grub-mkconfig -o /boot/grub/grub.cfg

安装完引导程序后,还有一些杂项,比如安装微码,修改 root 用户密码,启动 dhcpcd 服务等。

代码语言:shell
复制
# pacman -S intel-ucode
# passwd
# systemctl enable dhcpcd.service

最后退出一下,因为上面我们使用了 archroot /mnt 命令,然后再卸载之前挂载到安装程序下的分区,重启!

代码语言:shell
复制
# exit
# umount -R /mnt
# reboot

你以为这就完了?

四、安装软件及配置

一切顺利的话,重启后我们就来到 Archlinux 的登录界面。没错,黑黑的,啥也没有!

先使用 root 账户登录进去再说!

进去之后首先配置一下软件源。什么?不是已经配置过一次了么?你那是配置的安装程序里的软件源,现在我们是在我们的新系统 Archlinux 里!

代码语言:shell
复制
vim /etc/pacman.conf ## 添加如下语句

[archlinuxcn]
Include = /etc/pacman.d/archlinuxcn-mirrorlist

在 /etc/pacman.d/ 下新建 archlinuxcn-mirrorlist 文件并添加阿里源等,如下

代码语言:shell
复制
# 阿里源
Server = http://mirrors.aliyun.com/archlinuxcn/$arch

配置完成之后务必执行一下如下命令:

代码语言:shell
复制
pacman -Syy
pacman -S archlinuxcn-keyring

接下来就是设置时区,同步时钟,本地化,配置域名等,按如下执行即可:

代码语言:shell
复制
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc

# 编辑本地化文件,将"en_US.UTF-8" 和 "zh_CN.UTF-8"前面的“#”去掉,其它选项根据自己需要来定,这两个为英文和中文
vim /etc/locale.gen
locale-gen

echo "LANG=en_US.UTF-8" > /etc/locale.conf
echo "chappy" > /etc/hostname

vim /etc/hosts
127.0.0.1	localhost
::1	localhost
127.0.1.1	chappy.localdomain chappy

为了安全,添加一个非 root 用户,示例用户名为 tdl,密码自己编:

代码语言:shell
复制
useradd -m -G wheel tdl
passwd tdl

默认没有安装vi,无法执行visudo命令,解决办法为将 vim 软链接到 vi:

代码语言:shell
复制
ln -s /usr/bin/vim /usr/bin/vi
visudo ## 解注掉 %wheel 行,保存退出

要想不再面对黑黑窗口,我们选择安装 Xorg,一个图形解决方案的实现:

代码语言:shell
复制
pacman -S xorg-server xorg-xinit xorg-apps

接下来我们切换到普通用户 tdl并开始表演安装 suckless 三件套:

代码语言:shell
复制
mkdir Desktop
git clone http://git.suckless.org/dwm
git clone http://git.suckless.org/st
git clone http://git.suckless.org/dmenu
cd ~/Desktop/dwm
make
sudo make clean insall
cd ~/Desktop/st
make 
sudo make clean install
cd ~/Desktop/dmenu
make
sudo make clean install
cp /etc/X11/xinit/xinitrc ~/.xinitrc
vim ~/.xinitrc ## 删除最后xterm相关的几行,添加下面语句后保存退出
exec dwm
startx

一篇文章果然讲不完,我的编辑器已经开始卡了,剩下的留给(二)再说吧。最后放一张我的 Arch 完全体。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、安装盘制作
    • 2.1 制作工具
    • 2.2 步骤
  • 三、安装系统
    • 安装前
    • 分区
    • 格式化与挂载
    • 安装
    • 引导程序
  • 四、安装软件及配置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档