BTRFS balanso klaida branduolyje 5.14.x

Btrfs Balanso Klaida Branduolyje 5 14 X



5.14.x branduolyje yra klaida, dėl kurios btrfs failų sistema tampa tik skaitoma konvertuojant metaduomenų profilį iš vienišas į dup . Failų sistema pereina į tik skaitymo būseną. Norint išspręsti šią problemą, reikia netradicinio pataisymo.

Apie BTRFS profilius

Viena iš puikių btrfs savybių yra galimybė naudoti skirtingus raidos profilius. Kadangi btrfs saugo duomenis ir metaduomenis atskirai, galite juostyti duomenis diskuose kaip raid0 ir atspindėti visus metaduomenis kaip raid1. Šis metaduomenų perteklius užima mažai vietos. Ir tai rekomenduojama btrfs raid0 sąrankose.

Visada buvo siūloma dubliuoti metaduomenis, net ir viename diske, nes metaduomenų praradimas reiškia ir duomenų praradimą.







Btrfs gali pakeisti reido profilį veikiančioje sistemoje, konvertuodamas duomenis ir metaduomenis, kad būtų užtikrintas (arba pašalintas) perteklius. Tai atsitinka su a pusiausvyrą . Btrfs balansas perrašo visus failų sistemos blokus ir prisitaiko, kad atitiktų naujus profilius.



Klaida

Bandžiau pakeisti metaduomenų profilį savo viename diske iš vienišas į dup dėl atleidimo.



$ sudo btrfs balanso pradžia -mconvert =dup / mnt





Failų sistema iškart perėjo į tik skaitymo būseną. Sistema nukrito. Kai jis buvo paleistas iš naujo, negalėjau praeiti atkūrimo initramfs. Į diską negalima įrašyti jokių duomenų.

Kai balanso operacija nutraukiama btrfs failų sistemoje, ji automatiškai atnaujinama kitą kartą prijungus failų sistemą. Paprastai tai galima sustabdyti:



$ sudo kalnas -O skip_balance,rw / dev / sdX / mnt

Tada atšaukite, jei reikia, naudodami šią komandą:

$ sudo btrfs balanso atšaukimas / mnt

Tačiau dėl klaidos ne tik užsiblokavo balansas, bet ir buvo ignoruojamos montavimo parinktys, neleidžiančios jam tęstis. Kiekvieną kartą, kai prijungiama failų sistema, balansas bando atnaujinti. Tai nepavyko ir failų sistema tapo tik skaitoma. Jei susiduriate su tuo, turite paleisti bet kurį platinimą naudodami senesnį branduolį. Mano atveju tai buvo Arch su 4.18.

Prijunkite failų sistemą su senesniu veislynu:

$ sudo kalnas -O skip_balance,rw / dev / sdX / mnt

Atšaukti likutį:

$ sudo btrfs balanso atšaukimas / mnt

Dar kartą atlikite balansą:

$ sudo btrfs balanso pradžia -mconvert =dup / mnt

Kai balansas bus baigtas, galėsite saugiai paleisti į naujesnį branduolį, dabar su pasikartojančiais metaduomenų failų sistemoje. Patikrinkite failų sistemos naudojamus profilius. Pamatysite, kad turite dvi failų sistemos metaduomenų kopijas ir tik vieną duomenų kopiją:

$ sudo btrfs būti naudojimas < montavimo taškas >

Išvada

Btrfs yra nuostabi failų sistema, turinti daug pažangių parinkčių. Tačiau, kai naudojate btrfs, sistemos gelbėjimui turėtumėte turėti veikiančias atsargines kopijas ir įkrovos branduolį iš LTS platinimo. Nors balansą galima paleisti prijungtoje šakninėje failų sistemoje, ne visada patariama tai daryti. Failų sistemoje vis dar yra daug klaidų. Turėtumėte būti pasirengę failų sistemos gelbėjimui, kai btrfs modulis nebuvo iki galo patikrintas prieš prasmingus branduolius.