准备操作
进入命令行模式安装系统

由于下面的操作比较多,为了方便复制,可以考虑使用 ssh 远程连接
设置 root 密码
|
|
修改 ssh 配置以启用 ssh 远程登陆
|
|
将PremitRootLogin 前的注释删掉并改成 yes
重启 ssh 服务
|
|
格式化硬盘与分区
假设硬盘是 /dev/sda
清除硬盘内容
-
擦掉所有文件系统签名
1wipefs -a /dev/sda* -
删除 GPT/MBR 分区表
1sgdisk --zap-all /dev/sda
分区与格式化
-
用
fdisk重建 GPT1fdisk /dev/sda -
在 fdisk 里依次输入,每行一个命令(期间如果提示分区包含一个 xx 签名,选择 y 移除签名):
g(新建 GPT)n(新建分区 1:EFI)回车(默认分区号 1)
回车(默认起始)
输入:
+600Mt(改类型)输入:
1选择 EFI System(通常会让你选类型,直接选 EFI/1)n(新建分区 2:boot 分区)回车(默认分区号 2)
回车(默认起始)
输入:
+1.4G(如果需要多内核可以调大)n(新建分区 3:btrfs 系统分区)- 回车(默认分区号 3)
- 回车(默认起始)
- 回车(用剩余全部空间)
w(写入并退出) -
写完后检查
1lsblk /dev/sda你应该看到
sda1和sda2出现。 -
格式化
EFI 分区(FAT32)
1mkfs.fat -F32 /dev/sda1boot 分区(ext4)
1mkfs.ext4 -L BOOT /dev/sda2btrfs 分区
1mkfs.btrfs -f -L LINUX_SYSTEM /dev/sda3
创建 btrfs 子卷并挂载(@ 和 @home)
-
先临时挂载顶层
1 2mkdir -p /mnt/btrfs-top mount /dev/sda3 /mnt/btrfs-top -
创建子卷
1 2btrfs subvolume create /mnt/btrfs-top/@ btrfs subvolume create /mnt/btrfs-top/@home -
卸载顶层
1umount /mnt/btrfs-top -
挂载安装用的根目录和系统分区
1 2 3 4 5 6 7 8 9 10 11 12 13 14# 挂载带透明压缩的 btrfs 根目录到 /mnt mount -o subvol=@,compress=zstd:3 /dev/sda3 /mnt # 挂载独立的 ext4 boot 分区 mkdir -p /mnt/boot mount /dev/sda2 /mnt/boot # 挂载 EFI 分区 mkdir -p /mnt/boot/efi mount /dev/sda1 /mnt/boot/efi # 挂载带透明压缩的 btrfs home 目录 mkdir -p /mnt/home mount -o subvol=@home,compress=zstd:3 /dev/sda3 /mnt/home
安装系统
复制系统文件
-
确认一下你要用的源目录是存在的:
1ls /run/livekit/sysroots/desktop | head如果能列出
/etc/lib之类,确认你的 livekit 确实是有离线包,我们就开始使用 rsync 复制 -
执行 rsync 命令复制
1 2 3 4rsync -aAXHv \ --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} \ /run/livekit/sysroots/desktop/ \ /mnt/
生成 fstab
-
先获取 UUID
1blkid记住:
- sda3 的 UUID(btrfs 系统分区)
- sda2 的 UUID(ext4 boot 分区)
- sda1 的 UUID(FAT32 EFI 分区)
-
编辑 fstab:
1nano /mnt/etc/fstab写入(用你实际 UUID 替换):
1 2 3 4UUID=<sda3的UUID> / btrfs subvol=@,compress=zstd:3 0 0 UUID=<sda2的UUID> /boot ext4 defaults 0 2 UUID=<sda3的UUID> /home btrfs subvol=@home,compress=zstd:3 0 0 UUID=<sda1的UUID> /boot/efi vfat defaults 0 1保存退出
准备 chroot
-
挂载系统目录
1 2 3 4 5mount --bind /dev /mnt/dev mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys mount --bind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars mount --bind /run /mnt/run -
然后进入系统:
1chroot /mnt /bin/bash如果成功,你的提示符会变化,会被重新定位到
/。期间如果提示 “tty: ttyname error: No such device” 错误是正常的。
杂项
-
生成 machine-id
1systemd-machine-id-setup -
重建 initramfs
1dracut -f
安装 GRUB(UEFI)
-
确认 EFI 挂载:
1ls /boot/efi没返回是正常的,有这个文件夹就行
-
安装
1grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=AOSC -
然后生成配置:
1grub-mkconfig -o /boot/grub/grub.cfg
后处理
设置 root 密码
|
|
退出并重启
|
|
安装完成

由于是从 livekit 复制出来的系统,所以默认 hostname 还是 livekit,可以改一下:
|
|
Photo by Frode Myklebust on Unsplash