I would like to make use of Btrfs' transparent compression on an external drive.
- Which tool is best for formatting the drive? Disk Utility or GParted?
- How do I activate the compression? During formatting or when I mount the drive? I guess at mount time. I'm using usbmount to automatically mount newly attached devices, because nobody is logged in on the desktop. Would I have to set general default options somewhere in a system configuration file to get Btrfs mounted with compression, or would I specify this via FS_MOUNTOPTIONS in /etc/usbmount/usbmount.conf and how?
Thanks!
2 Answers
Format and enable LZO
I would avoid using any GUI to format;-)
mkfs.btrfs device is good enough, depending on how you would like to make use of Btrfs features:
- use the external USB HDD as 1 single partition/block device
- create 2 partitions (2 block devices) and form a raid1 or raid0 for data (-d), metadata is replicated on all devices by default, unless you manually specify to change
You can make use of the compression by adding the option when mounting, for example:
sudo mount -o compress=lzo /dev/sdd /mnt/btrfsThe good thing about Btrfs is that LZO compression can also be enabled on a subvol basis, very flexible;-) For example
/* 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/subvol1NOTE: You can add compression to existing Btrfs file systems at any time, just add the option when mounting and do a defragment to apply compression to existing data.
BTW: 2 best Btrfs docs out there:
Make use of LZO compression:
USB Auto Mount
I am not too sure about this, will let other blokes answer it;-)
I'd prefer to write a simple shell script to do the mount because I won't attach the USB HDD to the computer all the time.
4As the formatting and enabling LZO compression question is answered already, here is the answer to the Question how to automatically set the compression mount option on automount.
This solution also works if you have btrfs on a LUKS-encrypted disk.
USB Automount
- Connect the disk and let your automounter mount the filesystem
- Use
lsblk -o UUID,MOUNTPOINTto find the UUID of the block device the filesystem is on, e.g.6e642696-3cb4-4d4e-86a6-2fae2b9295cc Add a line to your /etc/fstab referencing the UUID and specifying the additional mount option:
UUID=6e642696-3cb4-4d4e-86a6-2fae2b9295cc /media/user/backupdrive btrfs noauto,subvol=/,compress=zstd- Unmount and re-mount the drive and check that the options were set using
mount