Podivne chovani gmirror/gpart

Dan Lukes dan at obluda.cz
Tue Mar 8 12:02:59 CET 2022


On 8.3.2022 9:27, pm-conf at kostax.cz wrote:
> On 08. 03. 22 0:55, Miroslav Lachman wrote:
>> Tohle mi prijde trochu podezrele, protoze GPT i gmirror se snazi 
>> zapsat do posledniho sektoru. Pokud si tedy dobre vpzominam, tak 
>> mirrorovat cely disk slo s pouzitim MBR/BSD schema, ale s pouzitim 
>> GPT se miroruji az jednotlive oddily.
>
> Omlouvam se, patrne to bude BSD. Nejsem schopen pustit nic, co by mi 
> to prozradilo. Stejne spatne se chova gpart, lsblk, diskinfo, ...
>
> Usuzoval jsem, ze je to GPT, protoze mount rika:
> /dev/ada0a on / (ufs, local, journaled soft-updates)
>
> Mylne jsem si myslel, ze u BSD bylo vzdy ada0s1a, ale vidim, ze se pletu.

[s1] je oznaceni partition a ta je pritomna jen pokud se na disku 
pouzije nejake partitionovaci schema - treba MBR nebo GPT.

[a] je oznaceni slice v BSD schematu. Takze tady je gmirror a nad nim 
BSD. To je pomerne raritni konfigurace.

BSD sice do posledniho sektoru nezapisuje, ale freebsd-ufs svazek, ktery 
na nem vytvoris ano. Pokud byl vytvoren v dobe, kdy disk nebyl rizen 
gmirrorem, prekryva se svazek se sluzebnimi daty gmirroru a nasledne 
vytvoreni gmirroru poskodilo posledni blok filesystemu. Ale netusim z 
hlavy co v nem je.


> Takze je to BSD, jen jeste upresnim, ze mam parametr 
> kern.geom.part.check_integrity=0 v /boot/loader.conf, ktery jsem nekdy 
> kolem FreeBSD verze 10 musel zacit pridavat, jinak to nenabehlo.

To je ale taky zvlastni, protoze tohle je potreba jen v pripade GPT. To 
je test, ktery kontroluje, zda je GPT korektni a ktere GPT nedovoli 
pouzit, kdyz neni (coz ty musis vypnout, kdyz to korektni nemas).

> Dostalo se to ale az do mountovani disku a az tam to hlasilo nejake 
> problemy cteni z gmirror disku.

Sluzebni data gmirroru mohla byt prepsana. Dokonce i dost davno, jestli 
nekontrolujes, ze mirror bezi v degradovanem rezimu na jeden disk.

Mluvi  o situaci, kdy uz delsi dobu system bezel na mirroru, ktery ale 
obsahoval jen prvni disk a druhy nepouzival neb ho nemel za korektni 
soucast mirroru. Ted prvni zdechnul a zustava disk, ktery obsahuje kdo 
vi co.

K poskozeni ale mohlo dojit i primo v souvislosti s opravou, zejmena u 
prekryvu BSD s gmirrorem. Pri startu systemu se preci pousti fsck a to 
filesystem opravuje, pricemz na nej zapisuje. Pokud zapsalo do 
posledniho bloku, muze tam byt z pohledu gmirroru, ktery se ta dat snazi 
interpretovat, cokoliv. V lepsim pripade by to odmitnul rovnou, jako, 
sze to nejsou jeho data, v horsim pripade tam najde neco o cem si mysli, 
ze to jeho data jsou, ale jsou nesmyslna a on se na nich pri pokusu o 
jejich pouziti zadre. Jo, nemel by, kdyby byl bezchybne napsany, ale 
zijeme v realnem, nikoliv idealnim, svete.

> Ano, to je asi reseni - bootnu z USB a zkusim to vycistit takto.

Ano, ale dukladne si zanalyzuj co tam orpavdu mas, zda tam dochazi k 
prekryvum a jake to muze mit dusleky. Protoze prekryvy nemusi prinest 
problem hned, ty mohou zpusobovat nahodne problemy podle toho, jak zapis 
do dat jednoho objektu poskozuje data jineho prektyvajiciho se objektu.

Dan






More information about the Users-l mailing list