Naprawa systemu: HowTo chroot

Wiele razy, zwłaszcza podczas zabawy, znajdowaliśmy się w tarapatach braku dostępu do systemu w celu jego naprawy, ale rozwiązanie jest proste: użyj polecenia chroot z dowolnego LiveCD / RepairCD.

W wielu miejscach (forach, blogach ...) wspomina się o tym poleceniu i podaje się "kopiuj / wklej" kodu, ale moim zamiarem w tym poście jest trochę wyjaśnienie tych kroków, aby dobrze to wykorzystać narzędzie, ze znajomością przyczyny.

Wprowadzenie

Polecenie chroot Znane jest jako CHangeROOT, czyli polecenie, które pozwala zmienić katalog główny systemu, nad którym pracujesz. Innymi słowy: jeśli jesteś z LiveCD i chcesz, aby wszystko, co pracujesz na konsoli, miało wpływ na zainstalowany system, musisz najpierw skorzystać z chroot.

Problem w tym, że nie wystarczy użyć chroot W związku z tym musimy najpierw poprawnie zamontować określone partycje.

JAK

Najpierw musimy uruchomić terminal, albo z innego zainstalowanego systemu (na innej partycji / dysku), albo z LiveCD. WAŻNE: architektura LiveCD musi odpowiadać architekturze systemu, który ma być naprawiony (32 lub 64 bity).
Gdy już będziemy w terminalu, zaczniemy identyfikować nasze partycje:
fdisk -l

  • Za pomocą tego polecenia wymienimy wszystkie nasze partycje / dyski. Musimy zidentyfikować partycję docelową, na której jest zainstalowany nasz system do naprawy, od teraz będziemy to nazywać uszkodzony system.

W tym przykładzie weźmiemy pod uwagę, że nasz uszkodzony system jest w / Dev / sda1 .

Przechodzimy do montażu systemu. Najpierw utworzymy folder, w którym będziemy pracować, a później montujemy partycję, w której znajduje się nasz uszkodzony system
mkdir /mnt/my_linux
mount /dev/sda1 /mnt/my_linux

Jeśli masz folder / Home o / var lub jakąkolwiek inną na innej partycji, powinieneś zamontować ją / y w następujący sposób:
mount /dev/sda2 /mnt/my_linux/var

  • UWAGA: Jako przykład wziąłem partycję / dev / sda2 dla folderu / var, niech każdy dostosuje kod do swoich właściwości.

Zwykle wystarczyłoby, gdybyś po prostu musiał edytować pliki ręcznie, ale jeśli chcemy wykonać jakieś polecenia konfigurujące system, musimy zamontować specjalne foldery systemowe: / dev, / proc/ sys.
mount -t proc proc /mnt/my_linux/proc
mount -t sysfs sys /mnt/my_linux/sys
mount -o bind /dev /mnt/my_linux/dev

  • Z opcją -t my mówimy uchwyt typ "systemu plików", który chcemy zamontować. Jest to konieczne ze względu na szczególny charakter folderów / proc y / sys.
  • Z opcją -o określamy opcje uchwyt. Opcja związania służy do „linku”. W systemie UNIX wszystkie urządzenia sprzętowe są dostępne za pośrednictwem folderu / dev, dlatego musimy zamontować nasz prąd / dev w folderze, w którym znajduje się nasz uszkodzony system. Ponieważ ten folder jest już zamontowany, wystarczy o tym powiedzieć uchwyt gdzie jest pierwotnie zamontowany.

Robi się to w ten sposób chroot Uzyskaj dostęp do tych folderów tak, jakby były zepsutym systemem, chociaż muszą pochodzić z bieżącego systemu (np. Sesji LiveCD), ponieważ są one związane ze stanem systemu, procesów i sprzętu.

Teraz jest czas na użycie chroot:
chroot /mnt/my_linux/ /bin/bash

  • Polecenie jest przekazywane jako argumenty ścieżka do nowego katalogu głównego «/» (którym w naszym przypadku jest / mnt / my_linux) i konsolę, której chcesz użyć (w tym przypadku zdecydowaliśmy się na dobrze znany bash, znajdujący się w / bin / bash). Jeśli nie podamy konsoli, znajdziemy się przed nieco archaicznym interpretatorem poleceń (nie zapełnia się po naciśnięciu tabulatora itp.).

Teraz możemy korzystać z konsoli tak, jakbyśmy uruchomili sesję roota w naszym zepsutym systemie (edytuj pliki, sprawdzaj skrypty, instaluj / odinstalowuj pakiety ...). OSTRZEŻENIE! Aby wprowadzone zmiany odniosły skutek, po wyjściu z niego należy odmontować system plików chrootSpójrz na poniższy przykład.

Więcej informacji https://wiki.archlinux.org/index.php/Change_Root (więcej niż zalecana lektura).

Przykład użycia: przywróć GRUB2

Jedno z najbardziej rozpowszechnionych zastosowań chroot Jest to narzędzie do naprawy GRUB-a. Ponieważ jeśli grub się zepsuje, praktycznie niemożliwe jest uruchomienie naszego systemu, aby to naprawić.

UWAGA: ten mały samouczek jest zwykłym przykładem, działa na różnych dystrybucjach pochodzących między innymi z Debiana, Ubuntu i openSUSE. Mimo to sprawdź dokumentację swojej dystrybucji, ponieważ w wielu przypadkach polecenie nie zostało znalezione aktualizacja-grub.
# UWAGA: te polecenia są uruchamiane raz w chroot.update-grub
grub-install /dev/sda

  • z aktualizacja-grub Aktualizujemy menu wprowadzania GRUB2, dodając w ten sposób brakujące dane wejściowe. Później ponownie instalujemy GRUB na naszym dysku, ponieważ został uszkodzony.

W tym przypadku wziąłem / Dev / sda podobnie jak dysk, na którym mamy nasz system, musi być dostosowany do twojego przypadku.

Nasz GRUB powinien już zostać naprawiony, więc musimy wyjść chroot, odmontuj system plików (WAŻNE) i uruchom ponownie, aby zmiany odniosły skutek. Jeśli zapomnimy odmontować system plików, możliwe jest, że ponowne uruchomienie plików nie zostanie poprawnie odmontowane i dlatego niektóre zmiany nie przyniosą efektu.
# opuściliśmy chrootexit
# odmontuj system plików i uruchom go ponownieumount /mnt/my_linux/dev
umount /mnt/my_linux/sys
umount /mnt/my_linux/proc
umount /mnt/my_linux
reboot

I to wszystko. Mam nadzieję, że ci się spodoba i że ci pomoże. Pozdrowienie!


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   Leper_Ivan powiedział

    Mógłbym tego użyć… W pewnym momencie muszę tego użyć.

  2.   mario powiedział

    Czy ktoś z was używał Chakra Benz? Jeśli tak, czy możesz mi powiedzieć, czy
    czy jest to łatwe dla zwykłego użytkownika? Używam SolydK, który jest bardzo prosty, ale
    Rozumiem, że Chakra to czyste KDE i mnie to interesuje.

    1.    Wow powiedział

      Tak, czakra jest w porządku i mniej lub bardziej łatwa, chodzi o to, że aby zainstalować / odinstalować pakiety, musisz to zrobić za pomocą konsoli, ponieważ nadal pracują nad graficznym menedżerem pakietów. Spróbuj, bo warto. Używa menedżera pakietów pacman, odziedziczonego po Archlinux, ale uwaga, nie współdzieli repozytoriów z arch i NIE jest z nimi kompatybilny. Jeśli chcesz dowiedzieć się więcej o Pacmanie, zajrzyj na arch wiki https://wiki.archlinux.org/index.php/Pacman_%28Espa%C3%B1ol%29

      1.    Izzyvp powiedział

        Oktopi jest już stabilne i działa całkiem dobrze dla przeciętnego użytkownika, dzięki czemu nie potrzebujesz terminala, aby używać pacmana.

  3.   x11tete11x powiedział

    Mam nadzieję, że ten post będzie odwiedzany przez wielu, a potem zaczną swoje głowy reinstalować na cokolwiek gdy z chrootem możesz naprawić system prawie zawsze, chroot daje ci wiele możliwości, między innymi instalację Gentoo xD hahaha

  4.   księżycowy powiedział

    fajnie, dzięki ... Nigdy nie dałem mu piłki, ponieważ wydaje mi się, że niektóre live-cd-y do naprawy są domyślnie podnoszone, ale teraz jest jasne, jeszcze raz dziękuję.

  5.   Lolo powiedział

    Aby to zakończyć, dobrze byłoby wyjaśnić, jak montować partycje LVM, partycje zaszyfrowane i systemy RAID.

    1.    Wow powiedział

      mmm Nie dotykałem LVM i RAID od dłuższego czasu, ale czy możesz mi trochę poinformować, żebym to dokończył… dzięki za wskazówkę!

      1.    Lolo powiedział

        Cóż, prawda jest taka, że ​​przydałbym się świetnie.

        Byłoby to bardzo mile widziane.

        1.    Wow powiedział

          spójrz na tę wiki, jest całkiem fajna http://wiki.bandaancha.st/RAID_y_LVM_en_Linux

  6.   Modem powiedział

    Gdyby tylko ten temat istniał kilka tygodni później okazuje się że miałem problem z moim systemem i czytałem i czytałem i wszędzie znalazłem chroot i blablabla ale u mnie to nie zadziałało na podstawie rekomendacji live czyli takiego samego jak twój system , bardzo ważne bo używam x64, drugie to montowanie partycji systemowych, bo w moim przypadku gdy aplikowałem chroot i montując to wyrzuciło polecenie i po prostu nie rozpoznało polecenia.

    Ten temat trafi do moich plików „kompilacji informacji”

  7.   ciastko powiedział

    Arch LiveCD (z tym narzędziem) to wszystko, co jest potrzebne do naprawy systemu, gdy go zepsujesz.

    1.    RAW-podstawowy powiedział

      Dokładnie! .. ..to wszystko, co jest potrzebne .. nawet, aby pomóc komuś ze swoimi W $, który zdecydował się nie zaczynać ..

      Zawsze mam przy sobie pendrive 1GB z Arch live ... a chroot to wszystko czego potrzebuję, aby w przypadku jakiegokolwiek problemu w 10 min mieć wszystko w porządku bez obaw. 😉

    2.    Izzyvp powiedział

      Musisz tylko wiedzieć, jak to zrobić.

    3.    pablo powiedział

      Witam zauważ że mam problem z centosem wysyła mi panikę jądra itd. I nie udało mi się tego rozwiązać, mam tam swoją stronę internetową i bazę danych, nie wiem co jeszcze zrobić.

  8.   jony127 powiedział

    Dobry post, mimochodem słyszałem trochę chroota, ale tak naprawdę nie wiedziałem, jak go używać, oczywiście nigdy go nie potrzebowałem i dlatego nie przeczytałem czegoś konkretnego. Teraz, gdy twój post został bardzo jasno wyjaśniony, wiem, jak go używać na wypadek.

    Dziękuję bardzo, a przy okazji, niech żyje Led Zeppelin hehe.

  9.   kamala powiedział

    dzięki, w końcu wyszedłem z koszmaru ratowania grubego

    faktycznie wykonałem wszystkie kroki z wyjątkiem umount / mnt / my_linux, ponieważ powiedział mi, że jest zajęty, a fuser -km, ale nawet nie to, i odbijam ...

    Mam nadzieję, że to nie jest ważne….

    dzięki jeszcze raz…
    pozdrowienia

  10.   Jose Antonio powiedział

    Chociaż artykuł ma już kilka lat, chciałbym podziękować autorowi za jego hojność w udostępnieniu, jest to świetny artykuł, ponieważ w ten weekend uratował mi życie. Mimowolnie załadowałem serwer instalując pakiet i po ponownym uruchomieniu nie ładował się. Po trzech dniach prób naprawy i czytania różnych artykułów, udało mi się tu przypadkowo trafić i w końcu udało mi się ponownie zainstalować gruba i naprawić serwer.

    Dziękuję bardzo !!!

    1.    Wow powiedział

      Cieszę się, że ci pomogło. Dziękuję za komentarz!

  11.   Helio powiedział

    Witam, a może wiem, że ten post lata temu, to wielkie dzięki za udostępnienie go. I miałem wątpliwości, w moim przypadku uszkodziło to system, a także sterowniki sieciowe, więc postępowałem zgodnie z instrukcją, ale nie pozwala mi to na pobieranie pakietów, czy jest jakiś sposób na połączenie sieci na żywo z terminalem

    1.    Wow powiedział

      Naprawdę nie rozumiem twojego problemu ... Kiedy logujesz się za pomocą LiveCD, ładowane jądro jest tym z LiveCD, dlatego powinieneś być w stanie idealnie skonfigurować połączenie internetowe. Po nawiązaniu połączenia spróbuj uruchomić chroot, aby sprawdzić, czy nadal go zachowujesz, jeśli nie, być może będziesz musiał skonfigurować je ponownie, ale uszkodzone jądro nie powinno wpływać na sesję chroot.
      Jeśli nie podasz więcej, mogę ci powiedzieć ...

  12.   dach powiedział

    Doskonały post… jeden z niewielu przydatnych artykułów znalezionych w Internecie.
    Dziękuję bardzo za wkład.

  13.   zopek powiedział

    Witam, doskonały samouczek! Znakomicie wyjaśnione, dla nas, zwykłych śmiertelników!

    Mam pytanie:
    Kiedy wspomniałeś, że w przypadku, gdy musisz zainstalować pakiety, wykonać aktualizacje systemu lub inną specjalną czynność i wymagać zamontowania folderów /dev/proc i /sys, nie było dla mnie jasne, czy te foldery znajdują się w systemie Live, z którym mamy rozpoczęły naprawę sprzętu lub jeśli są one w partycji głównej zamontowane jako pierwsze.

    Dziękujemy.

  14.   Orlando powiedział

    DZIĘKUJĘ BARDZO DUŻO !!!!