resolve-virtual-oids

Description

The resolve-virtual-oids command takes one or more Virtual OIDs and uses one or more object maps to resolve each Virtual OID to one or more block addresses. It can also be used to programatically check whether a given Virtual OID maps to a given block address, or do such checks in a batch — that is, check whether a specific set of Virtual OIDs maps directly to a specific set of block addresses.

Example usage and output

$ drat --container /dev/disk2s2 resolve-virtual-oids --volume 1 --oid 0x247
0x247 -> 0x1167a

$ drat --container /dev/disk2s2 resolve-virtual-oids --block 0x1d623e --oid 0x247
0x247 -> 0x1167a

$ drat --container /dev/disk2s2 resolve-virtual-oids --volume 1 --oids 0x247,0x11f3,0x10a
0x247  -> 0x1167a
0x11f3 -> 0x20ad6
0x10a  -> 0x17d59
$ drat --container /dev/disk2s2 resolve-virtual-oids --volume 1 --oids 0x247,0x11f3 --expected-addresses 0x1167a,0x20ad6,0x17d59
0x247  -> 0x1167a ? OK
0x11f3 -> 0x20ad6 ? OK
0x10a  -> 0x17d59 ? OK

$ echo $?
0
$ drat --container /dev/disk2s2 resolve-virtual-oids --volume 1 --oids 0x247,0x11f3 --expected-addresses 0x1167a,0x123,0x17d59
0x247  -> 0x1167a ? OK
0x11f3 -> 0x123   ? FAILED ; 0x11f3 -> 0x20ad6
0x10a  -> 0x17d59 ? OK

$ echo $?
1