准备工作
任意选择一个 live ISO 镜像,启动到 live 环境进行后续的安装操作,切换到 root 用户权限:
1 | su root |
修改一下 apt 镜像源地址,改为速度更佳的镜像源,并更新软件源:
1 | apt update |
磁盘分区
按自己喜好分区,以 /dev/sda
为例:
- /dev/sda1 ESP 分区,标签
ESP
(建议 1GB 以上,systemd-boot 在这里保存内核和 initrd) - /dev/sda2 系统安装分区,标签
Debian
(包括 /boot 和 swap 等) - 其他分区按需配置
1 | parted /dev/sda |
格式化 EFI 分区并设置 flags:
1 | mkfs.fat -F 32 -n EFI /dev/sda1 |
准备加密分区:
1 | cryptsetup -y -v --type luks2 luksFormat --label Debian /dev/sda2 |
解锁加密分区:
1 | cryptsetup open /dev/sda2 cryptroot |
将系统根分区格式化为 btrfs:
1 | mkfs.btrfs /dev/mapper/cryptroot |
准备 btrfs 子卷
挂载分区到 /mnt
:
1 | mount /dev/mapper/cryptroot /mnt |
按需创建子卷:
1 | btrfs subvolume create /mnt/@ |
卸载 /mnt
并重新挂载子卷:
1 | umount /mnt |
设置 swapfile(可选):
1 | mkdir -p /mnt/swap |
基本系统安装
1 | apt install debootstrap arch-install-scripts |
执行 debootstrap
命令进行基本系统安装,镜像源地址可自行指定:
1 | debootstrap --arch amd64 sid /mnt http://deb.debian.org/debian |
准备 chroot 环境:
1 | cp /etc/mtab /mnt/etc/mtab |
安装相关软件
修改软件源 /etc/apt/sources.list
,在 main
后面添加 contrib non-free non-free-firmware
1 | apt update |
配置时区、主机名等:
1 | dpkg-reconfigure tzdata |
设置用户:
1 | useradd your_username -m -c "Your Name" -s /bin/bash |
安装 dracut 与内核并添加 tpm 模块到 dracut 配置:
1 | apt install dracut |
写入内核启动参数:
1 | echo "rd.luks.options=tpm2-device=auto rd.luks.name=$(blkid -s UUID -o value /dev/sda2)=cryptroot root=UUID=$(blkid -s UUID -o value /dev/mapper/cryptroot) rootflags=subvol=@" > /etc/kernel/cmdline |
在 fstab
中修改 efi 分区相关参数以避免 systemd-boot 权限警告:
1 | fmask=0137,dmask=0027 |
安装 bootloader 并配置 secure boot 支持:
1 | apt install systemd-boot |
重启后配置
重启进入系统,添加 tpm 自动解锁:
1 | systemd-cryptenroll --tpm2-device=auto --tpm2-pcrs=0+7 /dev/nvme0n1p3 |
完成。 :)