Jak zmienić nazwę urządzenia MD (MDDM)


25

Oto wynik działania mdadm -Esv :

ARRAY / dev / md127 level = raid0 num-devices = 2 UUID = d89d9d45: 9a420812: c44c77eb: 7ee19756 devices = / dev / sdb8, / dev / sda8

To jest tablica v0.90. Pytanie jest następujące: w jaki sposób mdadm przypisuje nazwę dla odpowiedniego urządzenia, gdzie ją przechowuje i jak ją zmienić?

Chcę zmienić nazwę md127 na coś innego niż moje upodobania.

Odpowiedzi:


31

Ostrzeżenie : wykonaj kopię zapasową przed wykonaniem jakiejkolwiek porady podanej tutaj :-)

Opcja 1:

Edytuj /etc/mdadm.conf:

ARRAY / dev / md1 level = raid0 num-devices = 2 UUID = d89d9d45: 9a420812: c44c77eb: 7ee19756 devices = / dev / sdb8, / dev / sda8

Właśnie wprowadziłem własne wyjście i zmieniłem 127 na 1. Uruchom ponownie i powinno być teraz md1.

Opcja 2:

Jeśli nie masz mdadm.confi chcesz, aby automatycznie zmontował się z md1 , możesz to zrobić:

mdadm ma pojęcie „preferowanego nieletniego”. Np. Po przypisaniu do tablicy pewnej liczby drugorzędnej i zapisaniu w superbloku zostanie ona wykorzystana za każdym razem, gdy tablica ta zostanie automatycznie złożona. Sprawdź to:

mdadm --detail / dev / md127

Jeśli mówi „Preferowany mniejszy: 127”, to jest to twój problem. Musisz zaktualizować preferowaną nieletnią. Jak to zrobić:

Nie możesz po prostu zmienić preferowanego nieletniego. Musisz uruchomić system w trybie odzyskiwania lub trybie pojedynczego użytkownika, jeśli jest to urządzenie root, odmontuj system plików, a następnie:

mdadm --stop / dev / md127
mdadm --assemble --update = super-minor / dev / md1 / dev / sdb8 / dev / sda8

Następnie zmontujesz swój md127 jako md1. I tak też powinno pozostać w przyszłości.

Z tablicami 1.x:

Nowsze tablice nie przechowują numeru „Preferowany mniejszy” i nie obsługują „--update = super-minor”. Zamiast tego przechowują nazwę, którą można zmienić za pomocą:

mdadm --stop / dev / md127
mdadm --assemble --update = nazwa - nazwa = 2 / dev / md1 / dev / sdb8 / dev / sda8

Możesz też określić „nazwa hosta: 2”, aby wszystko było spójne z innymi tablicami (wyszukaj aktualną nazwę za pomocą --detail).


bardzo dobrze! właśnie tego szukałem. więc sztuczka polegała na aktualizacji super-małoletniej .. dziękuję!
XXL

Ratujesz życie! Użyłem tego do odblokowania urządzenia WD NAS, które korzysta z md.
Vlad

To rozwiązanie jest teoretycznie poprawne, ale trudno było mi je wdrożyć w żywym systemie. Również opcja nr 1 nie działała dla mnie. Poszedłem z superuser.com/questions/287462/…
gorn

+1 za ostatnią część rozwiązania, która była bardzo pomocna podczas przenoszenia tablicy rajdowej z jednej maszyny na drugą. „nazwa hosta: 2” i zmiana md127 na md1 były dokładnie tym, czego potrzebowałem, aby zachować spójność nazw
yahol

13

Żeby dodać do doskonałej odpowiedzi haimga. Może się zdarzyć, że nawet przy mdadm.conf, system (przynajmniej dla Ubuntu) może nadal automatycznie składać tablice przed odczytaniem mdadm.conf. Więc kiedy go znajdzie, po prostu ignoruje tablice, które właśnie zostały złożone.

Aby to wyjaśnić, uruchom, sudo update-initramfs -uaby zregenerować właściwy initrd.

Ważne linki: http://ubuntuforums.org/showthread.php?t=1764861%29%3a


2
To naprawiło problem dla mnie (po ponownym uruchomieniu) na Ubuntu 16.04. W moim przypadku było tak, ponieważ odtworzyłem tablicę i miała ona nowy identyfikator UUID. Po zaktualizowaniu samo mdadm.confponowne uruchomienie nie było wystarczające; aktualizacja initramfs załatwiła sprawę.
nh2

3

Żadna z pozostałych odpowiedzi nie działała dla mnie, ale w Centos skorzystałem z następującego przewodnika. Problem polega na tym, że plik /etc/mdadm.conf nie jest tak naprawdę używany podczas rozruchu i jest aktualizowany tylko wtedy, gdy instalowane jest nowe jądro lub ręcznie tworzone jest initramfs. Zasadniczo potrzebujesz:

dracut --force

źródło: http://realtechtalk.com/mdadm_change_wrong_device_name_md127_fix_and_solution_in_Linux-1783-articles


2

Superbloki w wersji 0.9 nie mają nazwy, zostały wprowadzone w wersji 1. /dev/md127to nie nazwa tablicy, to nazwa pliku urządzenia tablicy, co jest bezpośrednią konsekwencją niewielkiego numeru urządzenia blokującego nalot. Ta niewielka liczba jest wybierana raczej arbitralnie podczas składania tablicy.

Identyfikator UUID zapewnia unikalny identyfikator tablicy, jeśli jest potrzebny. Jeśli wolisz nazwę czytelną dla człowieka lub strukturę, umieść wolumin fizyczny LVM w tablicy.


Zdaję sobie sprawę z możliwości --homehost z późniejszej wersji, dlatego celowo stwierdziłem, że jest to tablica metadanych v0.90. Nie jest to jednak moją intencją ani nie jest kompatybilne. Przeglądając moje posty, również nieco nie zauważam, gdzie wspomniałem, że / dev / md127 to nazwa tablicy . Myślę, że podałem dokładne szczegóły tego, co chcę zrobić. Pozostaje więc pytanie, jak to zmienić i gdzie jest przechowywany ten „niewielki numer”? Zakładam, że to część superbloku? Czy zrujnuje sumę kontrolną superbloków, gdy będzie edytowana heksadecymalnie?
XXL,

@XXL Ta liczba nie jest nigdzie zapisywana, jest wybierana raczej arbitralnie podczas montażu tablicy.
Gilles 'SO - przestań być zły'

hmm .. nie rozumiem. Więc dlaczego zawsze otrzymuję / dev / md127, kiedy mdadm -Esv ? Czy nie powinienem dostać czegoś innego, losowego, niż nazwa statyczna? To znaczy, jeśli jest to naprawdę „arbitralne” ..
XXL
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.