diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2023-05-06 17:54:46 -0600 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2023-05-06 17:54:46 -0600 |
commit | 8dd4dfc841de65af95b716515cbfe55b3630a390 (patch) | |
tree | 5f06743a987bb8bca832d9174c163381565c5997 /scripts/main.sh | |
parent | a029039acf979ec19a4a889bc73e1574f31bb65b (diff) |
mv scripts examples
Diffstat (limited to 'scripts/main.sh')
-rwxr-xr-x | scripts/main.sh | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/scripts/main.sh b/scripts/main.sh deleted file mode 100755 index 082576a..0000000 --- a/scripts/main.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/bash -readonly image=../scratch/dump-zero.img - -###################################################################### - -set -e - -run-btrfs-rec() { - local tgt=$1; shift - local log=${tgt%.*}.log - if test -s "$tgt"; then - return - fi - { - set -x; - command time --verbose \ - ./bin/btrfs-rec \ - --pv="$image" \ - --profile.cpu="${tgt%.*}.cpu.pprof" \ - --profile.allocs="${tgt%.*}.allocs.pprof" \ - "$@" - } >"$tgt" 2> >(tee >&2 "$log") -} - -set -x -make build -gendir="${image%.img}.gen" -mkdir -p "$gendir" -export GOMEMLIMIT="$(awk '/^MemTotal:/{ print $2 "KiB" }' </proc/meminfo)" -{ set +x; } &>/dev/null - -###################################################################### - -# 0: initial scan ########################################## - -run-btrfs-rec $gendir/0.scandevices.json \ - inspect rebuild-mappings scan -run-btrfs-rec $gendir/0.nodes.json \ - inspect rebuild-mappings list-nodes $gendir/0.scandevices.json - -# 1-2: rebuild chunk/dev-ext/blockgroup trees ############## - -run-btrfs-rec $gendir/1.mappings.json \ - inspect rebuild-mappings process $gendir/0.scandevices.json - -# 1.mappings.log says: -# -# detailed report: -# ... unmapped physical region: dev=1 beg=0x0000000000000000 end=0x0000000000100000 (size=0x0000000000100000) -# ... unmapped physical region: dev=1 beg=0x0000000000500000 end=0x0000000001500000 (size=0x0000000001000000) -# ... unmapped physical region: dev=1 beg=0x0000003b9e650000 end=0x0000003b9e656000 (size=0x0000000000006000) -# ... umapped summed logical region: beg=0x0000000000d00000 end=0x0000000001500000 (size=0x0000000000800000) -# ... umapped block group: beg=0x0000000000500000 end=0x0000000000d00000 (size=0x0000000000800000) flags=METADATA|single -# ... umapped block group: beg=0x0000000000d00000 end=0x0000000001500000 (size=0x0000000000800000) flags=DATA|single -# -# Those 2 block groups clearly both slot in to that 2nd physical -# region (which is roughly beg=5MB end=22MB). Since that whole -# region's data was lost (roughly the 1st 100MB was lost), it doesn't -# matter which order we put the 2 block groups in within that physical -# region. So just put them in laddr order. -# -# And then run that through `rebuild-mappings process` again to fill in the -# flags and normalize it. -run-btrfs-rec $gendir/2.mappings.json \ - --mappings=<(sed <$gendir/1.mappings.json \ - -e '2a{"LAddr":5242880,"PAddr":{"Dev":1,"Addr":5242880},"Size":1},' \ - -e '2a{"LAddr":13631488,"PAddr":{"Dev":1,"Addr":13631488},"Size":1},') \ - inspect rebuild-mappings process $gendir/0.scandevices.json - -# 3: rebuild other trees ################################### - -run-btrfs-rec $gendir/3.trees.json \ - --mappings=$gendir/2.mappings.json \ - --node-list=$gendir/0.nodes.json \ - inspect rebuild-trees - -# 4: dump data from the FS ################################# - -run-btrfs-rec $gendir/4.ls-files.txt \ - --mappings=$gendir/2.mappings.json \ - --node-list=$gendir/0.nodes.json \ - --trees=$gendir/3.trees.json \ - inspect ls-files - -run-btrfs-rec $gendir/4.ls-trees.txt \ - --mappings=$gendir/2.mappings.json \ - --node-list=$gendir/0.nodes.json \ - --trees=$gendir/3.trees.json \ - inspect ls-trees |