btrfs文件系统管理
source link: https://www.lujun9972.win/blog/2018/09/05/btrfs%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E7%AE%A1%E7%90%86/index.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
btrfs文件系统管理
记录btrfs文件系统的常用操作
格式化btrfs格式的文件系统
sudo mkfs.btrfs /dev/sdc1
通过 -O
选项可以设置btrfs文件系统的fature,这些feature可以通过下面命令看到
mkfs.btrfs -O list-all 2>&1
Filesystem features available: mixed-bg - mixed data and metadata block groups (0x4, compat=2.6.37, safe=2.6.37) extref - increased hardlink limit per file to 65536 (0x40, compat=3.7, safe=3.12, default=3.12) raid56 - raid56 extended format (0x80, compat=3.9) skinny-metadata - reduced-size metadata extent refs (0x100, compat=3.10, safe=3.18, default=3.18) no-holes - no explicit hole extents for files (0x200, compat=3.14, safe=4.0)
挂载btrfs文件系统
sudo mount -t btrds -o rw /dev/sdc1 /mnt
btrfs还有许多feature,可以通过 -o
来指定。比较特别的选项有:
ssdbtrfs 针对ssd硬盘进行过特殊的优化,尽可能的将写入的数据分散到磁盘的各个位置,防止出现单个位置过多次的写入导致 compress=lzo启用自动压缩,压缩算法为lzo。其他可选压缩算法有zlib,zstd,或者no
sudo mount -t btrds -o rw,ssd,compress=lzo /dev/sdc1 /mnt/mybtrfs
修改Btrfs文件系统的大小
我们还可以修改创建好的btrfs文件系统的大小.
下面命令将文件系统减少2G
sudo btrfs filesystem resize -2g /mnt
Resize '/mnt' of '-2g'
或者通过下面命令增加文件系统大小
sudo btrfs filesystem resize +2g /mnt
Resize '/mnt' of '+2g'
快照是对文件系统某一时刻的完全备份。建立快照后,对文件系统的修改不会影响快照中的内容
sudo btrfs subvolume snapshot /mnt /mnt/snap1
Create a snapshot of '/mnt' in '/mnt/snap1'
若要创建只读快照,则可以使用 -r
选项
sudo btrfs subvolume snapshot -r /mnt /mnt/snap2
Create a readonly snapshot of '/mnt' in '/mnt/snap2'
我们可以把btrfs文件系统的一部分配置为一个完整的子文件系统,这些子文件系统被称为subvolume(子卷). 这些子卷共享底层的设备空间,在需要磁盘空间时便从底层设备中分配。
sudo btrfs subvolume create /mnt/sub1
Create subvolume '/mnt/sub1'
sudo btrfs subvolume list /mnt
ID 259 gen 12 top level 5 path sub1
通过 subvol=/path/to/subvolumne
或 subvolid=objectid
选项可以指定挂载那个子卷
sudo mount -t btrfs -o subvol=/mnt/sub1 /home/lujun9972/btrfs.img /media
sudo btrfs subvolume delete /mnt/sub1
Delete subvolume (no-commit): '/mnt/sub1'
执行mkfs时可以指定多个设备,并设定RAID级别,比如
mkfs.btrfs -draid1 /dev/sde1 /dev/sdf1 mount -t btrfs /dev/sde1 /mnt/raid
添加/删除新设备
当设备空间快要被用完时,可以通过 btrfs device add
命令为文件系统添加新磁盘设备,从而增加存储空间
df -h /mnt sudo btrfs device add -f /dev/loop1 /mnt df -h /mnt
Filesystem Size Used Avail Use% Mounted on /dev/loop0 6.0G 17M 5.1G 1% /mnt Performing full device TRIM /dev/loop1 (4.00GiB) ... Filesystem Size Used Avail Use% Mounted on /dev/loop0 10G 17M 9.1G 1% /mnt
同样的,也可以通过命令删除所添加的设备
df -h /mnt sudo btrfs device delete /dev/loop1 /mnt df -h /mnt
Filesystem Size Used Avail Use% Mounted on /dev/loop0 10G 17M 9.1G 1% /mnt Filesystem Size Used Avail Use% Mounted on /dev/loop0 6.0G 17M 5.1G 1% /mnt
文件系统转换
可以通过命令将非Btrfs文件系统转换为Btrfs文件系统
sudo btrfs-convert ~lujun9972/ext4.img
create btrfs filesystem: blocksize: 4096 nodesize: 16384 features: extref, skinny-metadata (default) creating ext2 image file creating btrfs metadata copy inodes [o] [ 0/ 11] conversion complete
我们也可以通过命令将文件系统回滚转换前的状态
sudo btrfs-convert -r ~lujun9972/ext4.img
rollback succeeded
检查btrfs文件系统
可以通过以下命令检查Btrfs文件系统
sudo btrfsck ~lujun9972/btrfs.img
Opening filesystem to check... Checking filesystem on /home/lujun9972/btrfs.img UUID: 658b38c7-d9a0-4c36-aeab-e4dc072269d0 found 229376 bytes used, no error found total csum bytes: 0 total tree bytes: 163840 total fs tree bytes: 65536 total extent tree bytes: 16384 btree space waste bytes: 153939 file data blocks allocated: 65536 referenced 65536
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK