我已经阅读了很多有关文件系统的内容,试图深入学习所有内容,但我很难真正可视化其中的一些内容,特别是当涉及到超级块、组描述符等内容时。
我可以运行 dumpe2fs 并查看超级块和组描述符的位置及其位置(很确定它是按扇区列出的,但不是 100% 确定)。但我想更进一步,真正深入挖掘。
我尝试过对这些扇区进行 dd'ing 和 cat'ing,并通过 hexdump、od 和其他类似的东西进行管道传输,但没有找到太多有用的信息。下面是我能找到的最接近的示例,但似乎缺少星号所在的数据。
root@debian-vm:/# cat /dev/md8 | hexdump -C
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000400 20 51 00 00 c0 43 01 00 30 10 00 00 db 0b 01 00 | Q...C..0.......|
00000410 2c 4d 00 00 01 00 00 00 00 00 00 00 00 00 00 00 |,M..............|
00000420 00 20 00 00 00 20 00 00 60 07 00 00 0e b5 64 56 |. ... ..`.....dV|
00000430 0e b5 64 56 02 00 ff ff 53 ef 01 00 01 00 00 00 |..dV....S.......|
00000440 9a 8c 64 56 00 00 00 00 00 00 00 00 01 00 00 00 |..dV............|
00000450 00 00 00 00 0b 00 00 00 80 00 00 00 3c 00 00 00 |............<...|
00000460 46 02 00 00 79 00 00 00 4e 9e 20 fc e4 da 4d 43 |F...y...N. ...MC|
00000470 8f 13 23 a9 b1 c4 3a fc 00 00 00 00 00 00 00 00 |..#...:.........|
00000480 00 00 00 00 00 00 00 00 2f 6d 6e 74 2f 74 65 73 |......../mnt/tes|
00000490 74 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |t8..............|
000004a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000004c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 |................|
000004d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
000004e0 08 00 00 00 00 00 00 00 00 00 00 00 7c 82 17 87 |............|...|
000004f0 c4 61 49 f4 88 71 e5 46 3e 33 95 04 01 01 00 00 |.aI..q.F>3......|
我真的在寻找一种更好的方法来真正可视化并更深入地了解各个扇区、分区、超级块、文件系统元数据等。原因很简单,就是为了学习,并能够真正以较低的速度分解事物等级。有一个更好的方法吗?
PS:此外,我正在使用具有 MD 超级块的 raid 阵列。但我很难想象常规超级块如何与 md 超级块共存。有小费吗?
答案1
可视化二进制转储的一个不错的工具是宾ID。 (它仅适用于 Windows,但应该可以在 VM 或 wine 中工作。)
选择合适的线宽时,所有数据“块”都应该清晰可见。
也应该可以编写一个这样的自己的工具,您可以根据自己的需要进行调整。 - 由于您的转储并不是完全未知,并且您知道很多有关块大小和内容的事情,因此您可能应该尝试编写这样的专门工具。