Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Nov 2018 06:56:19 +0100
From:      Matthias Petermann <matthias@petermann-it.de>
To:        freebsd-questions <freebsd-questions@freebsd.org>
Cc:        freebsd@johnea.net
Subject:   newfs overwriting gmirror label?
Message-ID:  <5a8aadf8-8aa8-8cbb-61ab-0d9cc4b7e2c1@petermann-it.de>

next in thread | raw e-mail | index | archive | help
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@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@petermann-it.de> | www.petermann-it.de
GnuPG: 0x5C3E6D75 | 5930 86EF 7965 2BBA 6572  C3D7 7B1D A3C3 5C3E 6D75



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5a8aadf8-8aa8-8cbb-61ab-0d9cc4b7e2c1>