使用archinstall安装Arch时自定义btrfs子卷的方法

Arch最新的安装镜像附带了一个简单的安装工具archinstall,现在还在开发和完善中,还是有一些bug,不过不是很严重,但是用这个工具安装arch的确要方便不少。我很喜欢这个工具,相比手动敲命令安装arch,这个工具用起来简直太爽了。但是美中不足的是,目前的版本选择分区时不能自定义btrfs子卷。

我研究了代码后,找到了一种自定义btrfs子卷的方法,现在已经成功安装,先来展示一下

a9a0f37b866be3358c59f07cd9a7ec80/20230318165823.png

这是我的实体机,@子卷挂在根目录,@home挂载/home,@root挂载/root …

下面我用虚拟机演示如何实现这一效果

u盘启动安装系统

aabc7f26817ce1759dee3658d443730d/20230318165837.png

修改pacman源

archinstall启动时会自动更新仓库,换成国内源速度会快一些,终端输入vim /etc/pacman.d/mirrorlist,把里面的东西全都删掉,加上阿里的源:Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch,然后pacman -Syy更新一下仓库。

fd0e6e58fd84f14b1b968d9690115dc1/20230318165852.png

新建分区,可以用cfdisk工具

选择gpt然后分一下区,我这里是虚拟机仅供参考,实体机操作时要确定分区是否正确,避免数据丢失,修改完后选择write保存,然后按q退出

c64fbbb118689357b6df96ed5fc3f703/20230318165933.png

完成后lsblk应该是这样

744186e34f6acff674b07b0ce1af8bbc/20230318170025.png

格式化分区

efi格式化为fat32,另一个分区格式化为btrfs,用于安装系统

919ac15cb1c4efea1d33718f0fbe2986/20230318170226.png

lsblk -f查看一下

7c9da858506253386c81e886d64f3408/20230318170302.png

挂载分区,创建子卷

接下来就开始创建和挂载分区了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
mkdir /mnt/btrfs-root	# btrfs分区根目录,用来创建和管理子卷
mkdir /mnt/archinstall # 这个路径名不能改,archinstall工具一会要安装到这个路径下

mount /dev/vda2 /mnt/btrfs-root -o subvol=/ # 把btrfs分区挂载好

cd /mnt/btrfs-root # 进到btrfs根

btrfs su c @ # 创建系统根目录子卷
btrfs su c @home # 创建home子卷
btrfs su c @root # 创建root子卷
btrfs su c @log # 创建日志子卷
# 可以创建更多其他子卷用来挂载,这里仅创建这几个作演示

mount /dev/vda2 /mnt/archinstall -o subvol=/@ # 挂载系统根目录子卷

mkdir /mnt/archinstall/boot # 创建挂载点目录,别忘了boot目录用来挂载efi
mkdir /mnt/archinstall/home
mkdir /mnt/archinstall/root
mkdir -p /mnt/archinstall/var/log

mount /dev/vda1 /mnt/archinstall/boot # 挂载各子卷
mount /dev/vda2 /mnt/archinstall/home -o subvol=/@home
mount /dev/vda2 /mnt/archinstall/root -o subvol=/@root
mount /dev/vda2 /mnt/archinstall/var/log -o subvol=/@log

lsblk # 上面操作完成后检查以下挂载情况,参考下图

f6cfbb4534d7bbb093d334aee7855b71/20230318170323.png

修改archinstall代码

上面确认没问题后,接下来修改archinstall代码,让他支持安装到btrfs子卷,不然的话会报错 (archinstall-2.3.0) !

路径有点长请看截图

635733fe5bd1ed56a8ea916c26464724/20230318170421.png

106e3e7fdfeed6c6367b6e37cbdc9af8/20230318170442.png

把红框框住的代码self.path改为self.mountpoint,如下,修改完之后保存退出;

如果使用self.pathbtrfs分区子卷自带的标识会导致读不到分区信息,就会导致archinstall崩溃,改为mountpoint通过挂载点读取分区信息就不会有问题

5cb34583b1fecda845e4b2b864902f2a/20230318170506.png

安装

准备工作就已经完成了,下面就开始进行安装了,终端输入archinstall运行安装脚本

  • 1、键盘语言:回车使用默认-us

07cfb4869bf7ebdb2bf58376bd532a12/20230318170542.png

  • 2、地区:输入11选择中国,这里用来配置镜像源

100251eb350a94992979b614bbb19628/20230318170606.png

  • 3、选择硬盘:我们之前配置好了,这里直接回车跳过,下一个询问也直接回车跳过

1dbb5aa040d24daa80c86c6cbfff240e/20230318170626.png

c76e0b7b631bb78eb1fbf97c27008a0b/20230318170646.png

  • 4、是否使用grub:y - 是

  • 5、是否启用zram:y - 是

  • 6、主机名:自定义

  • 7、root密码留空,下一步创建sudo账户

  • 8、创建sudo账户,输入密码

416faeacbb789468054f861311604238/20230318170734.png

下面的就简单了,我简单描述一下。

下一步选择0安装桌面环境,选择一个桌面环境,选择显卡声卡驱动,这些都是根据自己电脑的情况进行选择 。

后面选择内核使用默认即可,然后添加自定义包,安装networkmanager,输入时区Asia/Shanghai,启用网络校时。最后就会来到确认界面,检查以下没有问题的话就可以回车安装了,安装时会下载包,请确保网络通畅,然后等待安装完成

79b6af1c1edb7c118df5cfe3ab65bf32/20230318170754.png

安装完成后会提示你是否chroot切换到刚刚安装的系统进行配置,可以根据自己的需求选择

f69180efb994386257a3a4ff6cc0f293/20230318170810.png

确认安装完成后,就可以重启电脑啦,电脑会自动进入到刚刚安装的arch

完成

6a5f4563c8ea02ab879009ff488c11d5/20230318170833.png

进入系统,检查一下各个子卷挂载情况,如下图

d93cd3baf2dd62ff6645cfd224d32aa7/20230318170854.png

The End

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2021-2025 lorzzn
  • 访问人数: | 浏览次数:

      请我喝杯咖啡吧~

      支付宝
      微信