# Test Case: 48-bit Fallback Root Union

**Test ID**: TC150-48bit-fallback-root

## Objective

Rerun the Linux-compatible `48BIT=1 && rootnid_8b=0` fallback on the current
exact KLD: the two-byte union remains `rootnid_2b`, not `blocks_hi`.

## Fixture

Use `images/fallback-48bit-root2.erofs` and `source/compact/root.txt`.
Structured evidence asserts incompat `0x80`, `rootnid_8b=0`, nonzero
`rootnid_2b`, provider-sized `blocks_lo`, and valid CRC. fsck.erofs 1.8.6 does
not recognize this newer incompat bit.

## Procedure

Host:

```sh
python3 tests/erofs_fixture.py inspect /work/build/repo22-g1/images/fallback-48bit-root2.erofs --path=/root.txt
od -An -tu2 -j 1038 -N 2 /work/build/repo22-g1/images/fallback-48bit-root2.erofs
od -An -tx4 -j 1104 -N 4 /work/build/repo22-g1/images/fallback-48bit-root2.erofs
od -An -tu8 -j 1136 -N 8 /work/build/repo22-g1/images/fallback-48bit-root2.erofs
```

Guest after mount:

```sh
stat -f 'root_ino=%i type=%HT' "$mnt"
cmp /tmp/repo22-g1/source/compact/root.txt "$mnt/root.txt"
sha256 /tmp/repo22-g1/source/compact/root.txt "$mnt/root.txt"
./statfs_probe "$mnt"
df -kT "$mnt"
```

## Expected Results

- Root inode equals `rootnid_2b`; source data matches.
- `statfs` block count equals `blocks_lo` only, with no multi-terabyte size
  error. Current exact KLD mount and cleanup pass.
- Historical TC150 evidence cannot substitute for this rerun.
