Skip to content

Instantly share code, notes, and snippets.

@farseerfc
Created June 24, 2020 08:08
Show Gist options
  • Save farseerfc/4bb173227f5147913ef5e5eaba582f7b to your computer and use it in GitHub Desktop.
Save farseerfc/4bb173227f5147913ef5e5eaba582f7b to your computer and use it in GitHub Desktop.
+ rm -rf testimage testmount
+ mkdir testmount
+ fallocate -l 1G testimage
+ mkfs.ext4 testimage
mke2fs 1.45.6 (20-Mar-2020)
Discarding device blocks: 4096/262144 done
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: f4746471-fb36-4a46-8b05-258557c24a0c
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: 0/8 done
Writing inode tables: 0/8 done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: 0/8 done
+ mount testimage testmount
+ trap cleanup ERR
+ trap cleanup EXIT
+ fallocate -l 200M testmount/test1
+ fallocate -l 200M testmount/test2
+ fallocate -l 200M testmount/test3
+ fallocate -l 200M testmount/test4
+ fallocate -l 205M testmount/test1
+ fallocate -l 205M testmount/test2
+ fallocate -l 205M testmount/test3
+ fallocate -l 205M testmount/test4
+ sync testmount/lost+found testmount/test1 testmount/test2 testmount/test3 testmount/test4 testmount
+ df testmount
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/loop0 999320 842244 88264 91% /home/farseerfc/tmp/testbtrfsconvert/testmount
+ umount testmount
+ btrfs-convert testimage
create btrfs filesystem:
blocksize: 4096
nodesize: 16384
features: extref, skinny-metadata (default)
checksum: crc32c
creating ext2 image file
creating btrfs metadata
copy inodes [o] [ 0/ 15]
conversion complete
+ mount testimage testmount
mount: /home/farseerfc/tmp/testbtrfsconvert/testmount: wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error.
++ cleanup
++ umount testmount
umount: testmount: not mounted.
+ dmesg
+ tail -n10
[108720.796804] audit: type=1110 audit(1592986026.992:1462): pid=1223346 uid=0 auid=1000 ses=2 msg='op=PAM:setcred grantors=pam_unix,pam_permit,pam_env acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/5 res=success'
[108720.797047] audit: type=1105 audit(1592986026.992:1463): pid=1223346 uid=0 auid=1000 ses=2 msg='op=PAM:session_open grantors=pam_limits,pam_unix,pam_permit acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/5 res=success'
[108721.091932] EXT4-fs (loop0): mounted filesystem with ordered data mode. Opts: (null)
[108724.885590] BTRFS: device fsid 8c731320-4aed-40de-bdd7-c817217625dc devid 1 transid 5 /dev/loop0 scanned by systemd-udevd (1223354)
[108724.887288] BTRFS info (device loop0): disk space caching is enabled
[108724.887292] BTRFS info (device loop0): has skinny extents
[108724.887295] BTRFS info (device loop0): flagging fs with big metadata feature
[108724.891277] BTRFS error (device loop0): dev extent devid 1 physical offset 993198080 len 85786624 is beyond device boundary 1073741824
[108724.891279] BTRFS error (device loop0): failed to verify dev extents against chunks: -117
[108724.919813] BTRFS error (device loop0): open_ctree failed
+ btrfs inspect-internal dump-tree -t CHUNK testimage
btrfs-progs v5.6.1
chunk tree
leaf 33619968 items 14 free space 14795 generation 3 owner CHUNK_TREE
leaf 33619968 flags 0x1(WRITTEN) backref revision 1
fs uuid 8c731320-4aed-40de-bdd7-c817217625dc
chunk uuid a5a0638e-944a-4b92-989c-8cd252e427e8
item 0 key (DEV_ITEMS DEV_ITEM 1) itemoff 16185 itemsize 98
devid 1 total_bytes 1073741824 bytes_used 1023410176
io_align 4096 io_width 4096 sector_size 4096 type 0
generation 0 start_offset 0 dev_group 0
seek_speed 0 bandwidth 0
uuid 6d4bcef2-cb79-4fe3-a63a-bb0fd07dea30
fsid 8c731320-4aed-40de-bdd7-c817217625dc
item 1 key (FIRST_CHUNK_TREE CHUNK_ITEM 1048576) itemoff 16105 itemsize 80
length 32505856 owner 2 stripe_len 65536 type DATA
io_align 65536 io_width 65536 sector_size 4096
num_stripes 1 sub_stripes 1
stripe 0 devid 1 offset 1048576
dev_uuid 6d4bcef2-cb79-4fe3-a63a-bb0fd07dea30
item 2 key (FIRST_CHUNK_TREE CHUNK_ITEM 33619968) itemoff 16025 itemsize 80
length 4194304 owner 2 stripe_len 65536 type SYSTEM
io_align 4096 io_width 4096 sector_size 4096
num_stripes 1 sub_stripes 0
stripe 0 devid 1 offset 33619968
dev_uuid 6d4bcef2-cb79-4fe3-a63a-bb0fd07dea30
item 3 key (FIRST_CHUNK_TREE CHUNK_ITEM 67174400) itemoff 15945 itemsize 80
length 33554432 owner 2 stripe_len 65536 type METADATA
io_align 4096 io_width 4096 sector_size 4096
num_stripes 1 sub_stripes 0
stripe 0 devid 1 offset 67174400
dev_uuid 6d4bcef2-cb79-4fe3-a63a-bb0fd07dea30
item 4 key (FIRST_CHUNK_TREE CHUNK_ITEM 134217728) itemoff 15865 itemsize 80
length 107372544 owner 2 stripe_len 65536 type DATA
io_align 65536 io_width 65536 sector_size 4096
num_stripes 1 sub_stripes 1
stripe 0 devid 1 offset 134217728
dev_uuid 6d4bcef2-cb79-4fe3-a63a-bb0fd07dea30
item 5 key (FIRST_CHUNK_TREE CHUNK_ITEM 241590272) itemoff 15785 itemsize 80
length 107372544 owner 2 stripe_len 65536 type DATA
io_align 65536 io_width 65536 sector_size 4096
num_stripes 1 sub_stripes 1
stripe 0 devid 1 offset 241590272
dev_uuid 6d4bcef2-cb79-4fe3-a63a-bb0fd07dea30
item 6 key (FIRST_CHUNK_TREE CHUNK_ITEM 348962816) itemoff 15705 itemsize 80
length 107372544 owner 2 stripe_len 65536 type DATA
io_align 65536 io_width 65536 sector_size 4096
num_stripes 1 sub_stripes 1
stripe 0 devid 1 offset 348962816
dev_uuid 6d4bcef2-cb79-4fe3-a63a-bb0fd07dea30
item 7 key (FIRST_CHUNK_TREE CHUNK_ITEM 456335360) itemoff 15625 itemsize 80
length 107372544 owner 2 stripe_len 65536 type DATA
io_align 65536 io_width 65536 sector_size 4096
num_stripes 1 sub_stripes 1
stripe 0 devid 1 offset 456335360
dev_uuid 6d4bcef2-cb79-4fe3-a63a-bb0fd07dea30
item 8 key (FIRST_CHUNK_TREE CHUNK_ITEM 563707904) itemoff 15545 itemsize 80
length 107372544 owner 2 stripe_len 65536 type DATA
io_align 65536 io_width 65536 sector_size 4096
num_stripes 1 sub_stripes 1
stripe 0 devid 1 offset 563707904
dev_uuid 6d4bcef2-cb79-4fe3-a63a-bb0fd07dea30
item 9 key (FIRST_CHUNK_TREE CHUNK_ITEM 671080448) itemoff 15465 itemsize 80
length 107372544 owner 2 stripe_len 65536 type DATA
io_align 65536 io_width 65536 sector_size 4096
num_stripes 1 sub_stripes 1
stripe 0 devid 1 offset 671080448
dev_uuid 6d4bcef2-cb79-4fe3-a63a-bb0fd07dea30
item 10 key (FIRST_CHUNK_TREE CHUNK_ITEM 778452992) itemoff 15385 itemsize 80
length 107372544 owner 2 stripe_len 65536 type DATA
io_align 65536 io_width 65536 sector_size 4096
num_stripes 1 sub_stripes 1
stripe 0 devid 1 offset 778452992
dev_uuid 6d4bcef2-cb79-4fe3-a63a-bb0fd07dea30
item 11 key (FIRST_CHUNK_TREE CHUNK_ITEM 885825536) itemoff 15305 itemsize 80
length 107372544 owner 2 stripe_len 65536 type DATA
io_align 65536 io_width 65536 sector_size 4096
num_stripes 1 sub_stripes 1
stripe 0 devid 1 offset 885825536
dev_uuid 6d4bcef2-cb79-4fe3-a63a-bb0fd07dea30
item 12 key (FIRST_CHUNK_TREE CHUNK_ITEM 993198080) itemoff 15225 itemsize 80
length 85786624 owner 2 stripe_len 65536 type DATA
io_align 65536 io_width 65536 sector_size 4096
num_stripes 1 sub_stripes 1
stripe 0 devid 1 offset 993198080
dev_uuid 6d4bcef2-cb79-4fe3-a63a-bb0fd07dea30
item 13 key (FIRST_CHUNK_TREE CHUNK_ITEM 1078984704) itemoff 15145 itemsize 80
length 8388608 owner 2 stripe_len 65536 type DATA
io_align 65536 io_width 65536 sector_size 4096
num_stripes 1 sub_stripes 1
stripe 0 devid 1 offset 37814272
dev_uuid 6d4bcef2-cb79-4fe3-a63a-bb0fd07dea30
+ cleanup
+ umount testmount
umount: testmount: not mounted.
++ cleanup
++ umount testmount
umount: testmount: not mounted.
#!/bin/sh
set -x
cleanup(){
umount testmount
}
# remove test image and recreate it
rm -rf testimage testmount
mkdir testmount
fallocate -l 1G testimage
mkfs.ext4 testimage
mount testimage testmount
trap cleanup ERR
trap cleanup EXIT
fallocate -l 200M testmount/test1
fallocate -l 200M testmount/test2
fallocate -l 200M testmount/test3
fallocate -l 200M testmount/test4
fallocate -l 205M testmount/test1
fallocate -l 205M testmount/test2
fallocate -l 205M testmount/test3
fallocate -l 205M testmount/test4
sync testmount/* testmount
df testmount
# should remain some space for btrfs-convert to write metadata
umount testmount
btrfs-convert testimage
mount testimage testmount
dmesg | tail -n10
btrfs inspect-internal dump-tree -t CHUNK testimage
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment