W porządku, jeśli ktoś chce grać w boga i czynić cuda, jestem przygnębiony.
Zadanie polegało na stworzeniu skryptu, który znalazł pliki starsze niż 6 miesięcy, spakował je, a następnie usunął. Po drodze, tworząc skrypt Tihs, uruchomiłem to:
find / -type f -mtime -400 ! -mtime -180 | xargs gzip blablabla
Dzięki temu KAŻDY POJEDYNCZY PLIK ma rozszerzenie .gz. Teraz to rozwiązałem, gdy tylko zauważyłem, ale było trochę za późno. Po zakończeniu polecenia żadne z moich poleceń bash nie będzie działać, ponieważ zmienna $ PATH opróżniła się. Próbowałem wielu rzeczy, zanim zdałem sobie sprawę, na czym polega problem.
Więc rozpakuj wszystko, czego wciąż nie mogę uruchomić. Udało mi się go uratować, po czym wykonałem instrukcje online dotyczące:
root (hd0,0)
setup (hd0)
kernel (hd0,0)/boot/vml[...]
initrd (hd0,0)/boot/initrd.im[...]
Po którym mój Linux częściowo uruchamia się, ale daje mi następujące błędy:
Begin : Running /scripts/init-bottom ... mount : mounting /dev on /root/dev failed : No such file or directory
mount: mounting /sys/ on /root/sys failed: No such file or directory
mount: mounting /proc on /root/proc failed : No such file or directory
Target filesystem doesn't have requrested /sbin/init.
No init found. Try passing init= bootarg.
Próbowałem naprawić system plików, uruchomiłem z 3 różnych dysków LiveCD / Rescue, uruchomiłem naprawę rozruchu z 2 różnych dicsc. Zmusiłem fscks ...
Naprawdę brakuje mi pomysłów i POTRZEBUJĘ, aby ten serwer przynajmniej się uruchomił, aby móc odzyskać moje bazy danych SQL. Desperacko potrzebuję pomocy, zapłacę nawet w razie potrzeby.
Przez 3 dni czaję na forach, by znaleźć możliwe rozwiązanie, i wciąż jestem w tym samym punkcie ... Proszę o pomoc?
because of version differences,
zainstaluj ponownie z dokładnie tą samą wersją.we have corruption issues,
Twoje dane mogą być uszkodzone. Naprawienie systemu, tak aby można go było uruchomić, nie pomoże, jeśli dane zostaną zniszczone. Jeśli polecenie gzip skompresowało pliki bazy danych podczas korzystania z bazy danych, uszkodzenie jest nieuniknione.Odpowiedzi:
Będzie to zależeć od tego, czy systemy plików zostaną wystarczająco naprawione, abyś mógł zamontować te partycje z LiveCD. Nie próbuj jeszcze uruchamiać systemu. Najpierw zamontuj partycje i rozpakuj wszystkie pliki .gz. To da ci robocze kopie plików binarnych init i systemowych. Następnie możesz użyć gruba, aby naprawić sektor rozruchowy. Następnie uruchom system w trybie pojedynczego użytkownika i ponownie sprawdź system plików. Jeśli to zadziała, będziesz mieć działający system. Będziesz także mieć kilka rozpakowanych plików (takich jak strony podręcznika man), które naprawdę powinny zostać skompresowane, ale jest to lepsze niż posiadanie systemu, którego nie można uruchomić.
Jeśli nie możesz zamontować partycji z LiveCD, to niestety nie masz szczęścia. W tym momencie nic nie odzyska systemu.
źródło
Pierwszą rzeczą, którą spróbuję, jest uruchomienie środowiska LiveCD i próba rozpakowania wszystkiego, mając nadzieję, że przywróci to system do rozruchu. Uwaga: martwi mnie potencjalne uszkodzenie danych, jeśli oryginalny proces gzip zostanie przerwany.
W przeciwnym razie spróbuję migrować bazę danych do nowego systemu, jak sugerowali inni, ale jak już zauważyłeś, mogą występować pracochłonne problemy z konfiguracją i zależnościami, które należy rozwiązać indywidualnie.
źródło
Ogólny konsensus, że należy po prostu zamontować dysk w działającym systemie i uratować pliki, nie jest zły. To rozsądne. Ale z drugiej strony jest więcej zabawy i bardzo edukacyjnych. Wiele się nauczyłem, walcząc z wydostaniem się z chaotycznych sytuacji, w których inni ludzie po prostu poddaliby się i instalowali od nowa. (Nie na serwerze, od którego zależą inne osoby ...)
W każdym razie, jak dotąd masz initramfs (initrd), który działa. To dobry początek. Ale nie może dokończyć przekazania do init, ponieważ init
init.gz
może teraz ? Aby zrobić jakikolwiek postęp, pomógłby dokładnie wiedzieć, jaką masz dystrybucję Linuksa, dzięki czemu możemy sprawdzić, jakie narzędzia są dostępne w jego initramfs do użytku awaryjnego.Prezentowane komunikaty o błędach wyglądają, jakby mogły pochodzić z initramfs Debiana. Jeśli jest to Debian, powinieneś otrzymać komunikat
(initramfs)
powłoki w następnym wierszu po ostatnim błędzie. Jeśli tak, powinieneś sprawdzić, co się dzieje z tymi nieudanymi mocowaniami. jest/root/dev
brakuje? (/root
tam, gdzie normalne pliki root powinny być zamontowane podczas uruchamiania initramfs)Jeśli nie otrzymałeś monitu powłoki, to co
No init found. Try passing init= bootarg.
będzie potem, będzie interesujące. Nawet jeśli był to tylko migający kursor, to wskazówka. Jeśli wydaje się całkowicie zamrożony, spróbuj uzyskać informacje o tym, jakie procesy są w pobliżu, używając magicznego sysrq lub Ctrl + ScrollLock.Debian initramfs pozwala również zażądać powłoki w kilku specjalnych punktach orientacyjnych, dodając
break=
parametr do wiersza poleceń jądra. Na przykład, aby uzyskać powłokę przedRunning /scripts/init-bottom
linią, użyjbreak=bottom
.Poza tym: nie wiem, w jaki sposób
find
komenda mogła zgzipować każdy plik ... wygląda na to, że wybieram pliki w wieku od 180 do 400 dni.źródło
break=bottom
?) ... tak, do czasu, gdy próbuje zamontować/root/dev
i/root/proc
a/root/sys
,/root
powinien być prawdziwy główny system plików. Wcześniej musiał zostać wyświetlony komunikat o błędzie dotyczący niepowodzenia instalacji. Czy podałeśroot=
parametr w linii poleceń jądra? Moja pamięć jest trochę rozmyta w tym punkcie, ale myślę, że poroot (hd0,0)
prostu informuje gruba, gdzie znaleźć pliki obsługi, i nadal musisz osobno powiedzieć jądro, gdzie jest root.(initramfs)
, coś w stylumount -r /dev/sda1 /root
?cat /proc/partitions
aby zobaczyć, jakie dyski są dostępne.