Czy możesz zmienić wersję metadanych na istniejącej tablicy?

21

Grub wymaga metadanych w wersji 0.90 Zastanawiam się, czy mogę zmienić istniejące tablice, aby użyć tego zamiast domyślnego, który jest 1.2. W ten sposób nie muszę przeprowadzać ponownej instalacji. Jeśli tak, jak mogę to zrobić?

ksenoterracid
źródło

Odpowiedzi:

5

W GRUB wiki potwierdza:

Ponadto (od 1.96 + 20080724) GRUB może uruchamiać się tylko z RAID, który korzysta z superbloku metadanych w wersji 0.90 (tj. Utworzonego z opcją --metadata = 0.90 dla mdadm).

Co ciekawe, strona man dla mdadm mówi

-e, --metadata =

Określ styl superbloku (metadanych rajdowych), który ma być używany. Wartość domyślna to 0,90 dla --create i zgadywania dla innych operacji.

mdadm -Q -D <device>Dla pewności sprawdziłbym dwukrotnie .

Następnie, jaki poziom macierzy RAID używasz? Najlepszy byłby scenariusz lustrzany (RAID 1)

  1. Rób kopie zapasowe
  2. Odmontuj tablicę 0
  3. Usuń urządzenie A z tablicy 0 nurządzeń
  4. Zerowy superblok na urządzeniu A
  5. Utwórz tablicę 1 za pomocą urządzenia A i n-1części zapasowych, jawnie używając starego formatu superbloku
  6. Powtórz dla pozostałych B za pośrednictwem n-1urządzeń
  7. (Opcjonalnie) ponownie numeruj tablicę

... ale zdecydowanie sprawdź, czy musisz to zrobić!

Andrzej
źródło
więc to potwierdziłem dawno temu. Korzystam z raid10, f2. oczywiście starałem się uniknąć odtworzenia tablicy.
ksenoterracid
Czy próbowałeś już linux-raid at vger.kernel.orglisty mailingowej?
Andrew
dziwne, że nie dostałem powiadomienia o tym. nie, nie próbowałem. Właśnie go wyczyściłem i odtworzyłem tablicę. Przyjmuję tę odpowiedź z krótkim rozwiązaniem, że jest NIE, a może (absurdalnie trudne)
ksenoterracid
16

Ta informacja jest prawdopodobnie za późna, aby pomóc OP, ale może pomoże komuś innemu.

Pierwsze polecenie usuwa super bloki, a drugie polecenie tworzy nową tablicę, ale zakłada, że ​​urządzenia są czyste. Właśnie to wykonałem i wszystko wydaje się być w porządku. Zdecydowanie poleciłbym kopię zapasową przed zrobieniem tego. Nie miałem danych do stracenia, a zatem nie można sprawdzić integralności. Chciałem tylko uniknąć kolejnej 4-godzinnej ponownej synchronizacji.

$ mdadm --zero-superblock /dev/sd[a-z]1
$ mdadm --create /dev/md0 --assume-clean \
    --level=10 --raid-devices=10 /dev/sd[a-z]1 --metadata=0.90
Mag Vex
źródło
1
prawdopodobnie za późno na OP, ale mnie uratowałeś, dzięki za odpowiedź
neofutur,
7

Utworzenie tablicy z założonymi czystymi i niespójnymi metadanymi, jak sugerowano powyżej, z pewnością może zniszczyć istniejące dane, ponieważ bloki metadanych 0,90 i 1,2 różnią się nie tylko rozmiarem, ale także lokalizacją.

może działać dla 0.90 <-> 1.0, co jest wyjątkiem.

https://raid.wiki.kernel.org/index.php/RAID_superblock_formats

masc
źródło