suse:~ # btrfs filesystem show / Label: none uuid: 0ead7d87-6692-4c74-8b3e-15fecfd2fa20 Total devices 1 FS bytes used 1.80GiB devid 1 size 33.33GiB used 4.07GiB path /dev/sda3 suse:~ # btrfs filesystem df / Data, single: total=2.01GiB, used=1.75GiB System, DUP: total=32.00MiB, used=16.00KiB Metadata, DUP: total=1.00GiB, used=57.81MiB GlobalReserve, single: total=4.44MiB, used=0.00B suse:~ # btrfs filesystem usage / Overall: Device size: 33.33GiB Device allocated: 4.07GiB Device unallocated: 29.26GiB Device missing: 0.00B Used: 1.86GiB Free (estimated): 29.53GiB (min: 14.89GiB) Data ratio: 1.00 Metadata ratio: 2.00 Global reserve: 4.44MiB (used: 0.00B) Data,single: Size:2.01GiB, Used:1.75GiB /dev/sda3 2.01GiB Metadata,DUP: Size:1.00GiB, Used:57.81MiB /dev/sda3 2.00GiB System,DUP: Size:32.00MiB, Used:16.00KiB /dev/sda3 64.00MiB Unallocated: /dev/sda3 29.26GiB
ext4 파일시스템을 BtrFS로 변환하기전 확인해야 할 사항이 있다.
변환작업시에 ext 파일시스템의 block size가 반드시 4096 이상이어야만 정상적으로 변환이 된다.
해당 파일시스템의 block size를 아래처럼 확인해보도록 한다.
suse:~ # tune2fs -l /dev/sdb1 tune2fs 1.43.8 (1-Jan-2018) Filesystem volume name: <none> Last mounted on: <not available> ... 생략 Block size: 4096 # <- 이와같이 4096 이상 사이즈여야 한다. Fragment size: 4096 ...생략... Default directory hash: half_md4 Directory Hash Seed: 94d1d801-0589-450b-a2a7-bc0f76908cac Journal backup: inode blocks
변환하기위해서는 아래처럼 입력하면 된다.
suse:~ # btrfs-convert /dev/sdb1 create btrfs filesystem: blocksize: 4096 nodesize: 16384 features: extref, skinny-metadata (default) creating ext2 image file creating btrfs metadata copy inodes [o] [ 0/ 12] conversion complete
변환 후 오리지널 ext 파일시스템은 ext2_saved
와 같은 이름으로 백업서브볼륨이 만들어진다.
suse:~ # btrfs subvolume list /mnt/disk1 ID 256 gen 3 top level 5 path ext2_saved
만약 백업된 볼륨이 필요없다면 아래 명령으로 삭제하거나 복구 할 수 있다.
# 해당 장치가 마운트되어있는 상태여야 함 suse:~ # btrfs subvolume delete /mnt/disk1/ext2_saved/ Delete subvolume (no-commit): '/mnt/disk1/ext2_saved' # 해당 장치가 unmount된 상태여야 함 suse:~ # btrfs-convert -r /dev/sdb1 rollback succeeded