목차

BtrFS - B-Tree FileSystem

파일시스템 정보

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

ReiserFS 또는 Ext 파일시스템을 BtrFS로 전환

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