newfs overwriting gmirror label?
Matthias Petermann
matthias at petermann-it.de
Thu Nov 22 06:41:37 UTC 2018
Hello,
please ignore this posting. It looks like I did a mistake interpreting
the hexdump. I did repeat the exercise and the result was that the
gmirror label was not overwritten.
Sorry for the confusion!
Kind regards,
Matthias
Am 22.11.2018 um 06:56 schrieb Matthias Petermann:
> Hello,
>
> this is somewhat related to my other post regarding GPT vs. GMIRROR.
> Anyway, the following observation can be looked at in an isolated manner.
>
> I have documented the observation in a step-by-step protocol below.
>
> If you have some thoughts on this - please reply and let me know. I'd be
> very thankful to get this clarified.
>
> Kind regards,
> Matthias
>
>
>
> 0) Preface
>
> There is a gmirror set up, consisting of two components. I am going to
> create a hex dump of the last block of one of the components, then fill
> up the gmirror with a raw write of "FF" and create another hex dump of
> one of the components. Then I will compare the hex dumps.
>
> 1) Checking gmirror label before manipulation
>
> 1FFFFDB0 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFDCC 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFDE8 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 47 45 4F 4D ........................GEOM
> 1FFFFE04 3A 3A 4D 49 │ 52 52 4F 52 │ 00 00 00 00 │ 04 00 00 00 │ 74 65
> 73 74 │ 00 01 00 00 │ 00 00 00 00 ::MIRROR........test........
> 1FFFFE20 A0 07 5F E9 │ B0 49 4B F7 │ 73 07 3C A2 │ 02 00 00 00 │ 00 01
> 00 00 │ 00 00 00 10 │ 00 00 02 00 ._IKs.<................
> 1FFFFE3C FE FF 1F 00 │ 00 00 00 00 │ 02 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 40 .........................@
> 1FFFFE58 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 20 00 .......................... .
> 1FFFFE74 00 00 00 BE │ 2B CF 02 21 │ 60 DB DE FB │ AB FC D2 03 │ 26 F6
> 64 00 │ 00 00 00 00 │ 00 00 00 00 ...+.!`.&d.........
> 1FFFFE90 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFEAC 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFEC8 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFEE4 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFF00 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFF1C 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFF38 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFF54 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFF70 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFF8C 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFFA8 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFFC4 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFFE0 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ...................t.....@ .
>
> 2) Filling up mirror with "FF"
>
> root at l-mpe-fbsd:/home/admin # tr '\0' '\377' < /dev/zero > /dev/mirror/test
>
> 3) Checking gmirror label after manipulation
>
> 1FFFFDB0 FF FF FF FF │ FF FF FF FF │ FF FF FF FF │ FF FF FF FF │ FF FF
> FF FF │ FF FF FF FF │ FF FF FF FF ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
> 1FFFFDCC FF FF FF FF │ FF FF FF FF │ FF FF FF FF │ FF FF FF FF │ FF FF
> FF FF │ FF FF FF FF │ FF FF FF FF ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
> 1FFFFDE8 FF FF FF FF │ FF FF FF FF │ FF FF FF FF │ FF FF FF FF │ FF FF
> FF FF │ FF FF FF FF │ 47 45 4F 4D ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒GEOM
> 1FFFFE04 3A 3A 4D 49 │ 52 52 4F 52 │ 00 F8 FF FF │ 04 00 00 00 │ 74 65
> 73 74 │ 00 AF B4 80 │ FF FF FF FF ::MIRROR.▒▒▒....test.▒▒.▒▒▒▒
> 1FFFFE20 00 A8 CF 81 │ B0 49 4B F7 │ 73 07 3C A2 │ 02 00 00 00 │ 00 01
> 00 00 │ 00 00 00 10 │ 00 00 02 00 .▒▒.▒IK▒s.<▒................
> 1FFFFE3C FE FF 1F 00 │ 00 00 00 00 │ 02 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 40 ▒▒.........................@
> 1FFFFE58 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 20 00 .......................... .
> 1FFFFE74 00 00 00 28 │ 37 37 D5 E2 │ 53 ED 72 2A │ 17 FC 86 3D │ FA 16
> 49 00 │ 00 00 00 00 │ 00 00 00 00 ...(77▒▒S▒r*.▒.=▒.I.........
> 1FFFFE90 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFEAC 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFEC8 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFEE4 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFF00 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFF1C 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFF38 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFF54 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFF70 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFF8C 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFFA8 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFFC4 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFFE0 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00
> 00 00 │ 00 00 00 00 │ 00 00 00 00 ............................
> 1FFFFFFC 00 00 00 00 │ ....
>
> 4) Conclusion
>
> So this looks like the gmirror label is not protected against low level
> writes. Some bytes have been overwritten with "FF".
>
> So what I still would like to understand - how is it ensured that a
> newfs will not touch this area?
>
> From my understanding, using the -r parameter of newfs could help, but
> in none of the examples with gmirror using GPT partitions this is used.
> So will the approach ultimately lead into gmirror label corruption (e.g.
> once UFS is filled up)?
>
>
--
Matthias Petermann <matthias at petermann-it.de> | www.petermann-it.de
GnuPG: 0x5C3E6D75 | 5930 86EF 7965 2BBA 6572 C3D7 7B1D A3C3 5C3E 6D75
More information about the freebsd-questions
mailing list