chroot

Wiele osób boi się chroot-a, szczególnie ci, którzy go nie znają, lub nie do końca rozumieją o co w nim chodzi. Informacja jaką serwuje o chroot podręcznik man również, na pierwszy rzut oka, nie wygląda zachęcająco:

chroot − uruchom polecenie lub powłokę interaktywną ze specjalnym katalogiem głównym

Właściwie, co to takiego jest ten ...

Aby zrozumieć czym jest chroot, należy na początku odpowiedzieć na pytanie: czym jest katalog główny?

Ów katalog, zwany również korzeniem (z ang. root), to początek wszystkiego co w Linuksie jest plikiem, bądź z poziomu systemu wygląda jak plik. Oznaczany jest symbolem ”/” (ang. slash), podobno w środowisku polskich purystów informatycznych zwany jest „ciach”. Jeśli dobrze się przyjrzeć, jest on „początkiem wszystkiego”: od katalogów /root, /usr poczynając, na katalogu użytkownika kończąc. Co ciekawsze, korzeń jest początkiem dla urządzeń /dev. Tam znajdują się chociażby nazwy naszych dysków, partycji np. /dev/sda1, a nawet urządzeń wirtualnych: /dev/random, /dev/null. Krótko mówiąc, katalog główny to ważne miejsce w systemie, a polecenie chroot pozwala nam go zmienić.

Kiedy warto z niego korzystać

  • Podczas instalacji nowego systemu. Szczegółowy opis, jak to się robi w PLD, znajdziesz w przewodniku Instalacja PLD 2.0 (chroot). Można nawet obejrzeć film z instalacji Th z chroota.
  • W przypadkach awaryjnych, gdy coś naprawdę złego stało się z systemem.

Instalacja systemu z poziomu chroot-a, ma tę ważną zaletę, że możemy „teleportować się” do właśnie tworzonego systemu i sprawdzić czy działa on poprawnie. Tak to nie żart. Będziemy mogli pracować jak na normalnym systemie, wykonywać polecenia, wszystkie ścieżki do plików będą normalne. Jeśli komuś nie podoba się analogia do teleportowania, może myśleć o chroot jak o logowaniu się na zdalną maszynę.

Dokładnie tę samą „teleportację” możemy wykonać do systemu, który nie chce się z jakichś powodów uruchomić. Czy to nie wspaniałe?

Warto jeszcze dodać, że po zmianie korzenia, nadal korzystamy z jądra systemu Live CD. Czyli na przykład: jeśli w naszym systemie mieliśmy zainstalowaną paczkę obsługującą naszą kartę dźwiękową, może się okazać, iż w Live CD domyślnie jej nie ma. Oczywiście można zainstalować odpowiednie sterowniki. Pół biedy, kiedy chodzi o paczkę od dźwięku, gorzej gdy brakuje nam chociażby modułów obsługujących kartę sieciową. Jednak tego typu problemy to margines. O ile nie korzystamy z niepopularnego sprzętu problemów raczej nie będzie. Co najwyżej nie posłuchamy muzyki podczas naprawiania systemu ;)

Pora na magiczną teleportację

Do „magicznej teleportacji” potrzebujesz jedynie płyty PLD Rescue CD, bądź innej naszej płyty Live. Po załadowaniu się systemu wystarczy wpisać (szczegółowy opis poniżej):

mkdir /pldroot
mount /dev/sda1 /pldroot
mount /dev /pldroot/dev -o bind
mount /proc /pldroot/proc -o bind
mount /sys /pldroot/sys -o bind
chroot /pldroot

Zaczynamy od stworzenia katalogu, który będzie naszym nowym korzeniem, miejscem w które pragniemy się „teleportować” mkdir /pldroot Następnie do utworzonego właśnie katalogu montujemy partycję z naszym systemem (jeśli nie wiesz jakie masz partycje, poczytaj o poleceniu fdisk):

mount /dev/sda1 /pldroot

Później, do naszego „nowego” systemu, montujemy katalog z urządzeniami oraz proc i sys, zawierające informacje o bieżących procesach i jądrze:

mount /dev /pldroot/dev -o bind
mount /proc /pldroot/proc -o bind
mount /sys /pldroot/sys -o bind

Ostatnie polecenie to „teleportacja”:

chroot /pldroot

Od teraz, do wykonania polecenia exit, pracujemy na nowym systemie.

W tym miejscu wykonujemy czynności, które wykonalibyśmy normalnie w naszym systemie. Nic nas nie ogranicza, możemy modyfikować pliki, poprawiać konfigurację, uruchamiać programy. Przykład ratujących działań znajdziesz w kolejnym punkcie.

Pracę z chroot kończymy, tak jak już wcześniej wspomniałem, wykonując:

exit

Przed restartem Live CD pamiętajmy, że musimy odmontować wszystkie zamontowane wcześniej katalogi (oczywiście w odwrotnej kolejności do ich montowania):

umount /pldroot/sys
umount /pldroot/proc
umount /pldroot/dev
umount /pldroot

Voila! To wszystko.

chroot śpieszy na ratunek

Historia z życia wzięta. Na naszym komputerze korzystamy z dwóch systemów: pewnego bardzo popularnego oraz oczywiście PLD. Pewnego mało pięknego dnia, pewien bardzo popularny system z pewnych powodów postanowił, że tylko on będzie działał na naszym komputerze. W tym celu nadpisał on MBR i wykasował naszego ukochanego LILO. My, w ramach rewanżu, „teleportujemy” się do PLD i wykonujemy polecenie:

lilo

Tak, to wszystko. Nie potrzebujemy przetrzymywania kopi MBR na USB, CD, bądź innym nośniku.

pl/przewodniki/chroot.txt · Last modified: 2010/01/17 17:21 by dirdival
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0 Powered by Lighttpd - fly light