310 words
2 minutes
Arch_btrfs
  • 买了两块optane m10 16G 当做普通硬盘使用

分区#

  1. 在第一块硬盘分区一个/boot分区和一个/swap分区,剩余的全部做btrfs分区。
Terminal window
fdisk /dev/nvme0n1 # 分三个分区
mkfs.fat -F 32 /dev/nvme0n1p1
mkswapon /dev/nvme0n1p2
swapon /dev/nvme0n1p2

2.将第一块硬盘剩余的空间与第二块硬盘合成一个btrfs卷(第二块硬盘可以分区也可以不分)。

Terminal window
mkfs.btrfs -L archbtrfs -d raid0 -m raid1 /dev/nvme0n1p3 /dev/nvm1n1
# 使用systemd-boot引导时,用archbtfs的UUID
  1. 创建子卷
Terminal window
mount /dev/nvme1n1 # 无论哪部分挂载,整个archbtrfs都会挂载上去,或者直接用标签挂载
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
btrfs subvolume create /mnt/@var
btrfs subvolume create /mnt/@snapshots
btrfs subvolume create /mnt/@log
btrfs subvolume create /mnt/@cache
btrfs subvolume create /mnt/@tmp
btrfs subvolume create /mnt/@docker
umount /mnt
  1. 挂载子卷
Terminal window
mount -t btrfs -o subvol=@,compress=zstd,noatime /dev/nvme1n1 /mnt
mkdir -p /mnt/{home,var,.snapshots,var/log,var/cache,var/tmp,var/lib/docker} # 使用命令后查看一下目录是否创建成功
mount -t btrfs -o subvol=@home,compress=zstd,noatime /dev/nvme1n1 /mnt/home
mount -t btrfs -o subvol=@var,compress=zstd,noatime /dev/nvme1n1 /mnt/var
mount -t btrfs -o subvol=@snapshots,compress=zstd,noatime /dev/nvme1n1 /mnt/.snapshots
mount -t btrfs -o subvol=@log,compress=zstd,noatime,compress=zstd /dev/nvm1n1 /mnt/var/log
mount -t btrfs -o subvol=@cache,compress=zstd,noatime,compress=zstd /dev/nvm1n1 /mnt/var/cache
mount -t btrfs -o subvol=@tmp,compress=zstd,noatime,compress=zstd /dev/nvm1n1 /mnt/var/tmp
mount -t btrfs -o subvol=@docker,nodatacow,noatime /dev/nvme1n1 /mnt/var/lib/docker
mount /dev/nmve0n1p1 /mnt/boot
chattr +C /mnt/var/log
chattr +C /mnt/var/cache
chattr +C /mnt/var/tmp
# 禁用这三个目录的cow

Finally#

  • 装完系统后发现,主机散热很垃圾。M10的温度在60度上下。
Arch_btrfs
https://infini.cv/posts/arch_btrfs/
Author
infini
Published at
2025-10-20
License
CC BY-SA 4.0

Some information may be outdated