![如何在外部 USB 硬盘上使用带压缩的 Btrfs?](https://linux22.com/image/827916/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%A4%96%E9%83%A8%20USB%20%E7%A1%AC%E7%9B%98%E4%B8%8A%E4%BD%BF%E7%94%A8%E5%B8%A6%E5%8E%8B%E7%BC%A9%E7%9A%84%20Btrfs%EF%BC%9F.png)
答案1
格式化并启用 LZO
我会避免使用任何 GUI 来格式化;-)
mkfs.btrfs device
就足够了,这取决于你想如何使用 Btrfs 功能:
- 将外部 USB HDD 用作 1 个分区/块设备
- 创建 2 个分区(2 个块设备)并组成 raid1 或 raid0 用于数据(-d),默认情况下元数据在所有设备上复制,除非您手动指定更改
您可以在挂载时添加选项来使用压缩,例如:
sudo mount -o compress=lzo /dev/sdd /mnt/btrfs
Btrfs 的好处是,还可以根据需要启用 LZO 压缩subvol
,非常灵活;-) 例如
/* Create a subvolume named subvol1 */
# btrfs subvolume create /mnt/btrfs/subvol1
/* Mount the subvolume and enable compression */
# mount -o compress=lzo,subvol=subvol1 /dev/sdd /mnt/subvol1
注意:您可以随时向现有的 Btrfs 文件系统添加压缩,只需在挂载时添加选项并执行将defragment
压缩应用于现有数据即可。
顺便说一句:有 2 个最好的 Btrfs 文档:
http://www.funtoo.org/wiki/BTRFS_Fun
http://docs.oracle.com/cd/E37670_01/E37355/html/ol_btrfs.html
使用 LZO 压缩:
http://www.oracle.com/technetwork/articles/servers-storage-admin/advanced-btrfs-1734952.html
USB 自动安装
我不太确定这一点,会让其他人来回答;-)
我更愿意编写一个简单的 shell 脚本来进行挂载,因为我不会一直将 USB HDD 连接到计算机上。
答案2
由于格式化和启用 LZO 压缩问题已经得到解答,这里是如何在自动挂载上自动设置压缩挂载选项的问题的答案。
如果您在 LUKS 加密磁盘上有 btrfs,此解决方案也有效。
USB 自动挂载
- 连接磁盘并让自动挂载程序挂载文件系统
- 用于
lsblk -o UUID,MOUNTPOINT
查找文件系统所在块设备的 UUID,例如6e642696-3cb4-4d4e-86a6-2fae2b9295cc
在 /etc/fstab 中添加一行引用 UUID 并指定附加挂载选项:
UUID=6e642696-3cb4-4d4e-86a6-2fae2b9295cc /media/user/backupdrive btrfs noauto,subvol=/,compress=zstd
- 卸载并重新安装驱动器,并检查选项是否已使用
mount