-
Notifications
You must be signed in to change notification settings - Fork 0
Description
本流程基于 Linux Mint 22.2 安装程序自动创建 @ 和 @home 子卷的特性进行定制。它通过增加 @swap, @cache, 和 @log 三个子卷,确保了 Btrfs 上的 Timeshift 快照排除优化,以及交换文件的最佳性能配置。
第一部分:安装前的准备和分区
-
准备安装介质: 下载 Linux Mint 22.2 ISO 文件,并使用 Rufus 或 Ventoy 等工具制作一个可启动的 USB 驱动器。
-
启动 Live Session: 从 USB 驱动器启动电脑,选择进入 Linux Mint Live 环境。
-
运行分区工具(GParted): 打开 GParted,对目标硬盘进行分区。
| 分区类型 | 大小(建议) | 文件系统 | 标志 (Flags) | 挂载点(用于安装程序) | 作用 |
|---|---|---|---|---|---|
| EFI 系统分区 (ESP) | 512MB ~ 1GB | FAT32 | boot, esp | /boot/efi | UEFI 启动所需 |
| Btrfs 主分区 | 剩余所有空间 | btrfs | 无 | / | 系统和所有用户数据 |
提示: 这一步不需要创建独立的交换分区(Swap Partition)。
第二部分:运行 Linux Mint 安装程序
-
启动安装程序: 双击桌面上的 Install Linux Mint 图标。
-
选择语言、键盘布局、是否安装多媒体解码器,然后继续。
-
选择安装类型: 在分区步骤,选择 Something else(其他选项)进行手动配置。
-
配置分区挂载点:
-
找到您创建的 FAT32 分区:双击它,选择 Use as:
EFI System Partition,挂载点为/boot/efi。 -
找到您创建的 Btrfs 分区:双击它,选择 Use as:
Btrfs journaling file system,勾选 Format,挂载点为/(根目录)。
-
-
开始安装: 检查引导加载程序安装位置是否正确,然后点击 Install Now。
-
完成用户、密码、时区等设置,等待安装完成。安装完成后,选择 Continue Testing(继续测试),不要重启。
第三部分:高级 Btrfs 子卷和交换文件配置(关键步骤)
安装完成后,保持在 Live Session 环境中,打开终端,开始配置新子卷和交换文件。
1. 检查和准备工作(定义变量,挂载顶层)
首先,定义您的 Btrfs 分区(例如 /dev/nvme0n1p2),然后挂载 Btrfs 顶层。
# 1. 定义 Btrfs 分区变量(请根据您的实际分区调整!)
BTRFS_DEV=/dev/nvme0n1p2
# 2. 确保所有挂载点已卸载并创建 /mnt 目录
cd ~
sudo umount -R /mnt 2>/dev/null
sudo mkdir -p /mnt
# 3. 挂载 Btrfs 顶层到 /mnt
sudo mount $BTRFS_DEV /mnt
# 4. 获取 Btrfs UUID (后面 fstab 必需)
BTRFS_UUID=$(lsblk -no UUID $BTRFS_DEV)
echo "请记住您的 Btrfs UUID: $BTRFS_UUID"
# 5. 创建所有新的子卷
sudo btrfs subvolume create /mnt/@swap
sudo btrfs subvolume create /mnt/@cache
sudo btrfs subvolume create /mnt/@log
# 6. 卸载顶层挂载点 (为下一步操作做准备)
sudo umount /mnt2. 数据迁移与挂载点修正
将已安装系统(位于 @ 子卷)中的日志和缓存数据迁移到新创建的专用子卷中。
# 1. 挂载 @ 子卷作为根 (已安装系统所在)
sudo mount -o subvol=@ $BTRFS_DEV /mnt
# 2. 创建所有子卷的临时挂载点
sudo mkdir -p /mnt_log /mnt_cache
# 3. 挂载 @log, @cache 子卷,准备迁移数据
sudo mount -o subvol=@log $BTRFS_DEV /mnt_log
sudo mount -o subvol=@cache $BTRFS_DEV /mnt_cache
# 4. 迁移日志和缓存数据
# 日志和缓存的原始位置在 /mnt/var/log 和 /mnt/var/cache
# ⚠️ 此处确保目录存在且有内容再移动,防止出错
if [ -d /mnt/var/log ] && [ "$(ls -A /mnt/var/log)" ]; then
sudo mv /mnt/var/log/* /mnt_log/
sudo rmdir /mnt/var/log
fi
if [ -d /mnt/var/cache ] && [ "$(ls -A /mnt/var/cache)" ]; then
sudo mv /mnt/var/cache/* /mnt_cache/
sudo rmdir /mnt/var/cache
fi
# 5. 卸载临时迁移目录
sudo umount /mnt_log
sudo umount /mnt_cache
sudo rm -rf /mnt_log /mnt_cache3. 配置交换文件与永久挂载点
创建所有永久挂载点目录,并设置交换文件。
# 1. 确保所有永久挂载点目录在 @ 子卷内创建
# Linux Mint 安装程序已创建 @home,此处仅需创建缺失的目录
sudo mkdir -p /mnt/{var/log,var/cache,swap}
# 2. 挂载所有缺失的子卷到 @ 子卷的对应目录中
# 注意:@home 子卷的挂载点是 /mnt/home (Live Session 挂载的 @ 子卷下的 /home 目录)
# Linux Mint 安装程序通常已经挂载了 @home,此处需确认或重新挂载
sudo mount -o subvol=@home $BTRFS_DEV /mnt/home 2>/dev/null
sudo mount -o subvol=@log $BTRFS_DEV /mnt/var/log
sudo mount -o subvol=@cache $BTRFS_DEV /mnt/var/cache
sudo mount -o subvol=@swap $BTRFS_DEV /mnt/swap
# 3. 创建并初始化 8GB 交换文件
# ⚠️ 路径是 /mnt/swap/swapfile
# 您可以根据内存大小调整 8G 的值
sudo btrfs filesystem mkswapfile --size 8G /mnt/swap/swapfile
# 4. 启用交换文件
sudo swapon /mnt/swap/swapfile
# 5. 验证交换文件是否成功启用
swapon --show
# 预期结果:应显示 /mnt/swap/swapfile 且大小为 8G。4. 更新 /etc/fstab 文件
编辑新的系统根目录下的 fstab 文件,确保所有子卷和交换文件在重启后自动挂载和启用。
# 1. 编辑 fstab 文件
sudo nano /mnt/etc/fstab-
替换和新增
fstab内容:-
重要: 将文件中原有的 Btrfs 挂载行(
/和/home)使用您获取的$BTRFS_UUID替换并修改为以下格式,确保使用relatime,compress=no选项。 -
在文件末尾添加新子卷的挂载点和交换文件配置。
请将下面所有
a94861b2-e36a-405f-9175-982750cea431替换为您在第 1 步中获取的实际 UUID。# / (Root Subvolume) UUID=$BTRFS_UUID / btrfs subvol=@,defaults,relatime,compress=no 0 0 # /boot/efi (保持不变) UUID=78C6-1B05 /boot/efi vfat umask=0077 0 1 # /home (Home Subvolume) UUID=$BTRFS_UUID /home btrfs subvol=@home,defaults,relatime,compress=no 0 0 # --- Timeshift 排除子卷 --- # /var/log Subvolume UUID=$BTRFS_UUID /var/log btrfs subvol=@log,defaults,relatime,compress=no 0 0 # /var/cache Subvolume UUID=$BTRFS_UUID /var/cache btrfs subvol=@cache,defaults,relatime,compress=no 0 0 # /swap Subvolume UUID=$BTRFS_UUID /swap btrfs subvol=@swap,defaults,noatime,compress=no 0 0 # Swap File /swap/swapfile none swap defaults 0 0注意:
@swap子卷通常建议使用noatime和compress=no来保证交换文件性能。 -
-
保存并关闭文件(在
nano中按Ctrl+O保存,Ctrl+X退出)。
第四部分:完成和首次启动
-
卸载所有挂载点:
cd ~ sudo umount -R /mnt
-
重启系统:
reboot
-
首次启动后验证: 进入新安装的 Linux Mint 系统,打开终端,运行
free -h。确认 Swap 行显示为您设置的交换文件大小(8G),即表示配置成功。 -
Timeshift 验证: 运行 Timeshift,确认
/home,/var/log, 和/var/cache子卷已被正确识别并排除在快照范围之外。
安装脚本
以下是一个整合了改进建议的 shell 脚本,用于在 Linux Mint 22.2 上配置 Btrfs 子卷(@、@home、@swap、@cache、@log)和交换文件。脚本假设在 Live Session 环境中运行,且已完成 Linux Mint 安装和分区步骤(EFI 分区和 Btrfs 主分区)。