arch Linux 虚拟机安装

arch Linux 虚拟机安装

1 镜像下载地址

https://mirrors.aliyun.com/archlinux/iso/

下载如下文件

archlinux-20xx.xx.xx-x86_64.iso

为确保下载的文件没有损坏,需要计算文件的 SHA256 值。

在 Windows 系统中,打开镜像所在文件夹。按住 SHIFT 键的同时右键空白处,点击“在此处打开 PowerShell”。在打开的 PowerShell 窗口中,输入

certutil -hashfile .\archlinux-20xx.xx.xx-x86_64.iso SHA256  #请将 2023.xx.xx 替换为镜像名中的日期

请在 Arch Linux 下载页中找到 sha256sums.txt 文件,对照其中的 SHA256 值(或者参考下面列出的文件信息)。如果和上述命令输出的值相同,说明文件没有损坏;如果不同,请重新下载。

截至本文最后一次更新,最新的文件信息是

292269ba9bf8335b6a885921a00d311cdc1dcbe9a1375f297f7f3ecfe31c36a7  archlinux-2023.10.14-x86_64.iso
292269ba9bf8335b6a885921a00d311cdc1dcbe9a1375f297f7f3ecfe31c36a7  archlinux-x86_64.iso
ed7b918e08d543e77757aee43d3cdddf2aa9a0747077b52661ea9cbb02cf8e3a  archlinux-bootstrap-2023.10.14-x86_64.tar.gz
ed7b918e08d543e77757aee43d3cdddf2aa9a0747077b52661ea9cbb02cf8e3a  archlinux-bootstrap-x86_64.tar.gz

2 使用 VirtualBox 安装

新建一个虚拟机

image-20231024153607668

设置虚拟机

image-20231024153753667

image-20231024153831605

最后点击完成后启动虚拟机

3 更新系统时钟

在互联网连接之后,systemd-timesyncd 服务将自动校准系统时间。请输入如下命令确定时间的准确性。

timedatectl

时间可能以 UTC +0000 时区显示,比北京时间慢 8 小时。这是正常现象,无需调整。如果时间不准确,请使用 date 命令手动设置时间。

date MMDDhhmmYY  # 如 date 0531080023 可以将时间设定为 2023 年 5 月 31 日 08:00

4 磁盘分区

磁盘分区表

挂载点分区分区类型建议大小备注
/mnt/boot/dev/sda1 或/dev/nvme0n1p1EFI System512 MiBESP 分区
/mnt/dev/sda2 或/dev/nvme0n1p2Linux x86-64 root100 GiB(至少 30 GiB)Arch Linux 的根分区
/mnt/home/dev/sda3 或/dev/nvme0n1p3Linux home剩余磁盘空间Arch Linux 的 home 分区

官网的安装手册中还有 swap 分区:

swap 交换分区的作用:当系统物理 RAM 内存不够用时,系统会将 RAM 里的低访问频率的内存对象放置到 swap 分区中。故 swap 分区访问速度要远慢于物理内存。

首先使用 lsblkfdisk -l 查看分区信息。

我们使用的分区工具是 fdisk,首先让我们通过查看帮助,学习一下 fdisk 的用法。

root@archiso ~ # fdisk /dev/sda  # 输入 fdisk 设备名,进入 fdisk 操作环境

Welcome to fdisk (util-linux 2.xx).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.  # 输入写入命令之前,硬盘不会被改动

Command (m for help): m  # 输入 m 获取帮助

Help:
  …
  Generic
   d   delete a partition  # 输入 d 删除分区
   n   add a new partition  # 输入 n 创建分区
   p   print the partition table  # 输入 p 打印分区表
   t   change a partition type  # 输入 t 改变分区类型
  …
  Save & Exit
   w   write table to disk and exit  # 输入 w 写入并退出(写入后不可撤销,请谨慎使用)
   q   quit without saving changes  # 输入 q 不保存退出
  …
  Create a new label
   g   create a new empty GPT partition table  # 输入 g 创建 GPT 分区表
  …

现在请输入 Ctrl+C ,退出 fdisk 操作环境。

我们现在正式进行磁盘分区。首先需要创建 GPT 分区表;随后依次创建分区,并修改分区类型;最后保存并退出。请参考以下分区过程,按照您的分区方案进行分区。

root@archiso ~ # fdisk /dev/sda  # 请将 sda 更换为您的设备名,如 nvme0n1

Welcome to fdisk (util-linux 2.xx).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): g  # 输入 g 创建新的 GPT 分区表(请勿遗忘此步,否则您的硬盘将是 MBR 格式)
Created a new GPT disklabel (GUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).

Command (m for help): n  # 输入 n 创建新的分区,这个分区将是 EFI 分区
Partition number (1-128, default 1):  # 分区编号保持默认,直接按 Enter
First sector (2048-125829086, default 2048):  # 第一个扇区,保持默认
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-125829086, default 125827071): +512M  # 创建 512MiB 大小的分区

Created a new partition 1 of type 'Linux filesystem' and of size 512 MiB.
Partition #1 contains a vfat signature.

Do you want to remove the signature? [Y]es/[N]o: Y  # 清除已有的签名,如果是全新的硬盘,则没有此步

The signature will be removed by a write command.

Command (m for help): t  # 输入 t 改变分区类型,请勿遗忘此步
Selected partition 1
Partition type or alias (type L to list all): 1  # 输入 1 代表 EFI 类型
Changed type of partition 'Linux filesystem' to 'EFI System'.

Command (m for help): n  # 创建第二个分区,用作根分区
Partition number (2-128, default 2):   # 保持默认
First sector (1050624-125829086, default 1050624):   # 保持默认
Last sector, +/-sectors or +/-size{K,M,G,T,P} (1050624-125829086, default 125827071): +100G  # 创建 100 GiB 大小的根分区,您可以根据自己的硬盘空间决定根分区的大小

Created a new partition 2 of type 'Linux filesystem' and of size 100 GiB.
Partition #2 contains a ntfs signature.

Do you want to remove the signature? [Y]es/[N]o: Y

The signature will be removed by a write command.

Command (m for help): t  # 输入 t 改变分区类型,请勿遗忘此步
Partition number (1-2, default 2):   # 保持默认
Partition type or alias (type L to list all): 23  # 输入 23 代表 Linux root (x86-64) 类型
Changed type of partition 'Linux filesystem' to 'Linux root (x86-64)'.

Command (m for help): n  # 创建第三个分区,用作 home 分区
Partition number (3-128, default 3):   # 保持默认
First sector (42993664-125829086, default 42993664):   # 保持默认
Last sector, +/-sectors or +/-size{K,M,G,T,P} (42993664-125829086, default 125827071):   #保持默认,将剩余空间全部分给 home 分区

Created a new partition 3 of type 'Linux filesystem' and of size 39.5 GiB.

Command (m for help): t  # 输入 t 改变分区类型
Partition number (1-3, default 3):
Partition type or alias (type L to list all): 42  # 输入 42 代表 Linux home 类型
Changed type of partition 'Linux filesystem' to 'Linux home'.

Command (m for help): p  # 输入 p 打印分区表,请检查分区是否有误,如果有误,请输入 q 直接退出
Disk /dev/sda: 60 GiB, 64424509440 bytes, 125829120 sectors
Disk model: xxx
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Device        Start        End   Sectors   Size  Type
/dev/sda1      2048    1050623   1048576   512M  EFI System
/dev/sda2   1050624   42993663  41943040   100G  Linux root (x86-64)
/dev/sda3  42993664  125827071  82833408  39.5G  Linux home

Filesystem/RAID signature on partition 1 will be wiped.
Filesystem/RAID signature on partition 2 will be wiped.

Command (m for help): w  # 输入 w 写入分区表,该操作不可恢复
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

5 分区格式化

创建好的分区必须格式化为一种文件系统,Linux 上常见的文件系统有 ext4,btrfs,xfs 等。第一次安装的读者,建议使用 ext4 文件系统。btrfs 提供子卷、写时复制、压缩、快照等高级功能,适合更加熟练的用户。

5.1 全新安装 Arch Linux 的分区格式化

使用 mkfs.ext4 将您的根分区格式化为 ext4 文件系统。请将 /dev/sda2 更换为您的 root 分区名。

mkfs.ext4 /dev/sda2

使用 mkfs.ext4 将您的 home 分区格式化为 ext4 文件系统。请将 /dev/sda3 更换为您的 home 分区名。

mkfs.ext4 /dev/sda3

使用 mkfs.fat 将您的 EFI 分区格式化为 FAT32 文件系统。请将 /dev/sda1 更换为您的 EFI 分区名。

mkfs.fat -F 32 /dev/sda1

6 挂载分区

6.1 全新安装 Arch Linux 的挂载分区

使用 mount[17] 将根分区挂载在 /mnt 目录下。挂载需要遵循一定的顺序,要先挂载根分区,请注意。

请将 /dev/sda2 更换为您的 root 分区名,可能是 /dev/nvme0n1p2。

mount /dev/sda2 /mnt

随后,使用 mount --mkdir 创建 /mnt/boot 目录,并将 EFI 分区挂载在 /mnt/boot 目录下。请将 /dev/sda1 更换为您的 EFI 分区名,可能是 /dev/nvme0n1p1。

mount --mkdir /dev/sda1 /mnt/boot

此处,也可以使用 /mnt/efi 作为挂载点,这需要引导程序的配合,具体的区别见 ArchWiki[18]

最后,挂载 home 分区。请将 /dev/sda5 更换为您的 home 分区名,可能是 /dev/nvme0n1p3。

mount --mkdir /dev/sda3 /mnt/home

7 安装基础包

终于到了安装环节。我们使用 pacstrap 安装 base,linux,linux-firmware 三个软件包,它们分别是基础包组,linux 内核和驱动程序。此外,如果您使用 2019 年及以后生产的笔记本电脑,可能需要安装 sof-firmware,否则可能没有声音[27]

Arch linux 官方提供了 linux,linux-lts,linux-zen,linux-hardened 内核[28],但是对于初学者,只推荐使用 linux 内核。

pacstrap -K /mnt base linux linux-firmware

此命令需要一段时间执行。执行完毕后请检查输出,不应出现任何 ERROR。如果出现,请重新执行命令。如果反复报错,可以寻求他人的帮助。

如果报告“验证软件包错误”,可以尝试以下方法,然后重新安装。

pacman-key --init  # 初始化密钥环
pacman-key --populate
pacman -Sy archlinux-keyring  # 更新 archlinux-keyring

8 chroot

我们使用 arch-chroot 工具切换到新安装的系统,以后的操作就可以在新安装的系统中完成了。

arch-chroot /mnt

9 时区

我们设置时区的软链接。在中国的读者请使用上海时间,在其他地区的读者可以在输入“/usr/share/zoneinfo/”之后按下Tab键查看可选的时区。

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

然后,设置硬件时间。

hwclock --systohc

10 本地化

我们将设置 locale,locale 决定了系统的语言和格式,包括终端显示哪种语言,数字、时间和货币以哪国的格式显示等等。

首先使用 Arch Linux 强大的包管理器 pacman 安装两个软件包。包管理器 pacman 是 Arch Linux 的核心特征之一,可以自动解决依赖问题,十分方便。它具有强大的功能,不过现在只需要学习安装软件包的方法。使用 pacman 安装软件包需要利用 -S(–sync)选项,这个选项的意思是同步的数据库,请初学者牢记。

pacman -S vim terminus-font

vim 是著名的文本编辑器,而 terminus-font 是终端字体。我们输入以下命令,利用 vim 编辑 /etc/locale.gen。

vim /etc/locale.gen

vim 的功能也十分强大,在这里笔者只解释用到的功能,其他功能在下一篇文章中介绍。如果您想提前学习 vim 的使用方法,请查看菜鸟教程[32]

首先输入“/”,进入搜索功能,输入“en_US.UTF-8”,我们找到了以下一行。

#en_US.UTF-8 UTF-8

按下Enter,此时光标的位置在这一行的“e”的位置。按方向左键,再输入“x”,将这一行开头的“#”删除。

en_US.UTF-8 UTF-8

再一次输入“/”,进入搜索功能,输入“zh_CN.UTF-8”,按下Enter。按方向左键,再输入“x”,将“#”删除。

zh_CN.UTF-8 UTF-8

随后输入“:”,进入命令模式,输入“wq”,按下Enter,保存并退出 vim 软件环境。

接下来,输入如下命令,生成 locale。

locale-gen

我们再使用 vim 创建并编辑 locale.conf,设置 locale。

vim /etc/locale.conf

这是一个空文件。进入 vim 程序环境时,默认进入了命令模式,此时无法插入字符。我们首先按下“i”键,进入插入模式。请输入如下字符。

LANG=en_US.UTF-8

然后按 Esc,退出插入模式。再输入“:”,进入命令模式,输入“wq”,按下Enter,保存并退出 vim 软件环境。

最后,我们创建并编辑 vconsole.conf,设置终端的默认字体。我们已经在安装开始时设置过终端字体,但是重启之后设置将失效,为了让设置永久生效,我们需要把设置写在文件中。请输入如下命令。

vim /etc/vconsole.conf

请用相同的方法输入如下字符,请在“FONT=”后面输入您在第 7 节设置终端字体时选择的字体,保存并退出。

FONT=ter-132b

11 网络配置

请编辑 hostname[33] 文件,设置主机名,这将成为您计算机的名字。这篇文章[34]为设置主机名提供了一些建议。

[root@archiso ~]# vim /etc/hostname
----------------------------------
我的主机名

然后,请安装一个网络管理器,笔者推荐使用 NetworkManager。

pacman -S networkmanager

NetworkManager 附带一个守护程序。在 Arch Linux 中,守护程序由 systemd 管理。systemd 是非常重要的系统程序,我们在下一篇文章中会详细介绍它的用法。现在我们使用 systemd 设置 NetworkManager 开机自动启动。

systemctl enable NetworkManager.service

12 root 密码

root 用户是 Linux 系统中权限最高的用户,有些敏感的操作必须通过 root 用户进行,比如使用 pacman。我们之前进行所有的操作也都是以 root 用户进行的。也正是因为 root 的权限过高,如果使用不当会造成安全问题,所以我们在下一篇文章中会新建一个普通用户来进行日常的操作。在这里我们需要为 root 用户设置一个密码。[35]

请输入如下命令设置 root 密码。

[root@archiso ~]# passwd
New password:  # 请输入密码,这里不会显示“*”,这是正常现象
Retype new password:
passwd: password updated successfully

13 Arch Linux 单系统的引导加载程序安装

首先,安装必要的软件包。

pacman -S grub efibootmgr

安装 GRUB 到计算机。

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB

如果您在挂载分区时,将 esp 分区挂载到了 /efi 或者 /boot/efi,请在 --efi-directory 选项中作相应变动。如果您完全按照本教程操作,就不用作改变。

如果报告

Installation finished. No error reported.

说明安装成功,可以执行以下步骤。否则请检查错误。

最后生成 GRUB 配置,即可。

grub-mkconfig -o /boot/grub/grub.cfg

14 安装后配置

root 用户的权限过高,造成对系统灾难性的损坏的风险因此较高,我们因此新建一个用户:

useradd -m -G wheel username

将其中的 username 改为你要的名字,比如

useradd -m -G wheel jiewei

执行

passwd username

来设置密码,与先前设置 root 密码一样。

不使用 root 时如何获得 root 权限呢?需要在命令前加上 sudo,而 sudo 也需要先安装:

pacman -S sudo

之后来配置 sudo 使所有用户都能使用;执行

ln -s /usr/bin/vim /usr/bin/vi

visudo

进入 Vim 编辑器,找到

# %wheel ALL=(ALL) ALL

一行,把「#」去掉,保存退出。

配置好之后执行

reboot

来重启。重启之后我们就可以使用新创建的用户;输入用户名和密码,进入系统。

15 额外安装

15.1 安装常用软件包

基础开发包
sudo pacman -S base base-devel make git
安装yay

对于本指南,我使用了稳定版。现在,进入 /opt 目录并克隆 git 仓库。

cd /opt
sudo git clone https://aur.archlinux.org/yay.git

更改源目录的所有者。将 debugpoint 替换为你的用户名。

sudo chown -R debugpoint:users ./yay

如果你不知道用户或组,可以使用以下示例查找用户和组。

id debugpoint

进入目录并编译。

cd yay
makepkg -si

这样就完成了 Arch Linux 中 Yay 的安装。

go换源

Yay 是 “Yet Another Yogurt” 的缩写(LCTT 校注:Yogurt 是另外一个已经停止维护的 AUR 助手)。从技术上讲,它是用 Go 编程语言 编写的 pacman 封装器和 AUR 助手。它是当今最流行的 Arch 用户仓库(AUR) 助手。使用 Yay,你可以利用庞大的 Arch 用户软件包库并轻松编译和安装任何软件。

但是由于 go 语言的仓库在国外,我们在安装 Yay 时可能会面临网络问题而导致安装缓慢或无法安装,这时我们就需要将 go 的默认源换至国内源

echo "export GO111MODULE=on" >> ~/.profile
echo "export GOPROXY=https://goproxy.cn" >> ~/.profile
source ~/.profile
安装zsh
yay -S zsh

更改默认终端

chsh -s /bin/zsh

或者编辑/etc/passwd文件,修改用户名后面的默认Shell即可。

安装oh-my-zsh-git

archlinuxcn源有打好的包,或者使用AUR安装。

yay -S oh-my-zsh-git

默认配置

cp /usr/share/oh-my-zsh/zshrc ~/.zshrc

这时候打开终端软件,应该就会默认进入zsh了。

15.2 dwm、st

安装准备
# 安装xorg依赖
sudo pacman -S xorg xorg-xinit
# xorg-xinit和配置文件有关
# 下载一个壁纸包(可选)
sudo pacman -S archlinux-wallpaper
# 下载的壁纸在
/usr/share/backgrounds/archlinux/
# 用壁纸要安装feh看图工具,用来设置壁纸
sudo pacman -S feh
# 安装sudo
sudo pacman -S sudo
# 安装git
sudo pacman -S git
拉取 dwm 和 st 源码
# 搞个src文件夹方便管理
cd && mkdir src && cd src
# 拉取dwm源码
git clone https://git.suckless.org/dwm
# 我还拉取了st(终端),dmenu
git clone https://git.suckless.org/st
git clone https://git.suckless.org/dmenu
安装
  • cd 到对应目录
  • 使用 make clean install 安装
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值