Discussion:
dracut - problem z brakującym dyskiem
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Kicer
2014-09-21 07:46:30 UTC
Permalink
Witam

z problemem, który zamierzam opisać już się rozprawiłem, sęk w tym, że nie
do końca wiem jak ;)

Wszystko zaczęło się od tego, ze podpiąłem do komputera nowy dysk z zamiarem
zrobienia mirrora.

Obecnie w systemie miałem dysk z home, var i swap i ten dysk miał ulec
zmirrorowaniu.
Do tej pory nie był on częścią żadnej macierzy więc plan był taki:
1. Dokładam nowy dysk i zakładam na nim zdegradowanego raida 1.
2. na raida wgrywam dane ze starego dysku
3. podpinam stary dysk do macierzy.

Po wykonaniu punktu 2. pozmienialem wpisy partycji w fstab korzystając z
uuidów i zrebootwalem kompa, tak by system wskoczyl całkowicie na używanie
partycji z raidu a stary dysk był nieużywany.

Wszystko ładnie, pięknie wystartowało.
Podpiąłem więc i drugi dysk, teraz już teoretycznie nieużywny, w raida.
Raid sie zsynchronizował i zrebootwalem maszynę.

Tu zaczely sie problemy: system zaczął się wczytywać i koniec końców dracut
się zatrzymał na problemie ze znalezieniem jednego z dysków, podając jego
uuid. Uuid nie pasował do żadnego z istniejących dysków (biorąc pod uwagę
wszystkie możliwe partycje, w tym raidowe).

Założyłem więc, że najprawdpodobniej jest to uuid swapa z oryginalnej
lokalizcji, sprzed raidu, zapisany gdzieś w initrd.

Zbootwalem się z linuxem z pendrive i próbuję namierzyć owy uuid.
Nigdzie w /etc czy /boot go nie znalazłem, uznałem więc, że musi być zaszyty
w initrd w postaci niejawnej, więc spróbowałem wygenerować initrd na nowo.

Użyłem w tym celu w pierwszej kolejności mkinitrd, jak to robiłem lata temu,
ale to w niczym nie pomogło (initrd na pewno się wygenerował i podmienił
stary - sprawdziłem datę utworzenia pliku).

Poczytałem nieco o dracut, i wg internetu to za jego pomocą powiniem był
wygenerowac initrd.

Uczyniłem to więc i tym razem podczas bootu, dracut próbuje wykryć
urządzenia btrfs (?) po czym zalicza zgona.

Ostatecznie zbootowalem znow linuxa z pena i usunąłem a nastepnie
zainstalowałem ponownie pakiet z kernelem. To pomogło.
Pytanie, co więcej się tu wydarzyło? I o co tak naprawdę dracutowi chodziło?

pozostał jeszcze jeden szkopuł w postaci systemu ładującego się ze 4 razy
dłużej niż zwykle. w dmesg widzę lukę między 3. sekundą a 31. Nic się w tym
czasie nie dzieje.
Podobnie wygląda /var/log/boot.log.

Podczas bootwania widzę, że mountują się dyski potem proces zamiera, nic
się nie dzieje, by po 20-30 sekundach ruszyć dalej.

Trochę przespałem nowiki w zakresie bootwania linuxa, dracut czy systemd są
mi zupełnie obecnie.
Można o tym gdzieś poczytać w przystępnej formie, abym przynajmniej wiedział
jak sobie radzić w systuacjach jak powyżej?
--
Michał Walenciak
gmail.com kicer86
http://kicer.sileman.net.pl
gg: 3729519
Michal Jaegermann
2014-09-22 02:17:03 UTC
Permalink
Post by Kicer
Tu zaczely sie problemy: system zaczął się wczytywać i koniec końców
dracut się zatrzymał na problemie ze znalezieniem jednego z dysków,
podając jego uuid. Uuid nie pasował do żadnego z istniejących dysków
(biorąc pod uwagę wszystkie możliwe partycje, w tym raidowe).
Trudno zgadnąć co i jak naprawdę zostało zrobione (i czy naprawdę
poprawnie bo pewnie byłoby nieźle zacząć od czytania dokumentacji
mdadm i dracuta), ale jeżeli wygenerowany przez dracut initrd nie jest
"generic" to rzeczywiście się coś takiego upiera przy znalezieniu
konkretnych partycji.

'man dracut.cmdline' ma całkiem obszerną sekcję na temat "Debug" no
i tam można znaleźć sporo informacji co robić jak dracut jest
nieszczęśliwy.
Post by Kicer
Założyłem więc, że najprawdpodobniej jest to uuid swapa z oryginalnej
lokalizcji, sprzed raidu, zapisany gdzieś w initrd.
Może tak, a może nie. Jak dyski były w użyciu wcześniej i nie
"czyszczone" to coś może, powiedzmy, znajdować "fałszywą sygnaturę"
partycji raid i próbować tego użyć. Znowu dokumentacja cytowana powyżej
opisuje jak kontrolować takie próby gdy się nie chce zostawić
wszystkiego budowaniu automatycznemu.
Post by Kicer
Ostatecznie zbootowalem znow linuxa z pena i usunąłem a nastepnie
zainstalowałem ponownie pakiet z kernelem. To pomogło.
Liczącym się efektem tej operacji było wygenerowanie "względnie czystego"
initrd przez skrypty instalacyjne.
Post by Kicer
Pytanie, co więcej się tu wydarzyło? I o co tak naprawdę dracutowi chodziło?
Patrz wyżej.
Post by Kicer
pozostał jeszcze jeden szkopuł w postaci systemu ładującego się ze 4
razy dłużej niż zwykle. w dmesg widzę lukę między 3. sekundą a 31. Nic
się w tym czasie nie dzieje.
Jeżeli journald jest dostępny to 'journalctl -l -xb' powinien dać
bardziej detaliczną informację na temat tego co się dzieje podczas
startu i może nawet dlaczego. Reszta to w tej chwili pytania o
"kryształową kulę".

Michał

Loading...