Poradniki > Podstawy

Chroot - dostęp niezbędny każdemu

(1/1)

pavbaranov:
Niekiedy system zainstalowany w komputerze odmówi współpracy. Jedną z możliwości jest wystartowanie systemu z livecd/usb. Z takiego systemu mamy już dostęp do dysku komputera. W dalszym ciągu jednak, wszelkie akcje administracyjne, wykonane zostaną jedynie lokalnie, czyli... w sesji live. Jeśli trzeba wykonać jakieś czynności administracyjne w systemie zainstalowanym, wówczas z pomocą przychodzi nam polecenie chroot.

Akcje zakończą się sukcesem, pod warunkiem, że:

* masz uprawnienia administratora
* architektura kerneli obu systemów (livecd/usb oraz zainstalowanego) jest taka sama
* jeśli system zainstalowany wymaga jakichś specjalnych modułów kernela, to muszą one być wprowadzone w systemie live zanim wykonamy chroot[li]jeśli trzeba (np. z uwagi na ilość pamięci RAM) - uruchomiliśmy swap:[/li][/list]
--- Kod: ---swapon /dev/sdxy
--- Koniec kodu ---
gdzie x i y to nazwa partycji swap w systemie linux, czyli np. sda1[/li]

* połączenie internetowe (jeśli potrzebne będzie w sesji chroot) ustanowione jest przed wykonaniem chroot
* często wymaga to zamontowania również procfs i sysfs z systemu, który już jest uruchomiony. systemd-nspawn zajmuje się tym samodzielnie - informacja użytkownika Barthalion, o czym jeszcze niżej
O ile wszystko co powyżej zostało dokonane przystępujemy do następujących działań:

1. Tworzymy katalog, do którego zostaną podmontowane niezbędne partycje

--- Kod: ---# mkdir /mnt/nazwa
--- Koniec kodu ---
"nazwa" może przybrać dowolną wartość, taką jaką chcecie
W powyższym punkcie zostanie podmontowany katalog główny chrootowanego systemu, zatem jeśli posiadacie jakieś inne partycje, które mają być podmontowane (np. /boot), to i dla nich należy stworzyć odpowiedni katalog.
Listę partycji możecie zobaczyć po wydaniu polecenia:

--- Kod: ---# lsblk
--- Koniec kodu ---

2. Zakładając, że system livecd/usb pochodzi ze stajni Archa, "instalujemy" (o ile to potrzebne, niektóre obrazy dostarczają tę paczkę od razu) skrypt arch-chroot (na livecd/usb).

--- Kod: ---# pacman -S arch-install-scripts
--- Koniec kodu ---

3. Montujemy partycję
Należy zamontować partycję, na której chcemy prowadzić operacje. O tym, która to ma być, wiemy z wyniku polecenia lsblk przedstawionego wyżej. Na pewno będzie nam potrzebna partycja główna, a zatem:

--- Kod: ---# mount /dev/sdXY /mnt/nazwa
--- Koniec kodu ---
gdzie /dev/sdXY jest oznaczeniem partycji głównej (np. sda1), zaś "nazwa" to nazwa katalogu, który nadaliśmy wcześniej.
Jeśli potrzeba, montujemy również inne partycje jak np. /boot.

4. Wydajemy polecenie:

--- Kod: ---# arch-chroot /mnt/nazwa
--- Koniec kodu ---
Gdzie "nazwa" jest taka sama jak w pkt. 1.

5. W tym momencie jesteśmy już w schrootowanym systemie. Jeśli chcemy się tam czuć komfortowo, to zmieniamy jeszcze powłokę, na tę, z której tam korzystamy:

--- Kod: ---# arch-chroot /mnt/nazwa /bin/bash
--- Koniec kodu ---
Znów "nazwa" ma odpowiadać tej z pkt. 1.

6. Robimy to, co potrzeba na schrootowanym systemie.

7. Wychodzimy z sesji chroot:

--- Kod: ---# exit
--- Koniec kodu ---

Na podstawie oraz więcej na wiki chroot na stronie archlinux.org (po angielsku): https://wiki.archlinux.org/index.php/Chroot; dziękuję również użytkownikowi Barthalion z niegdysiejszego forum openlinux.pl. Osobiście stosując arch-chroot nigdy nie potrzebowałem dokonać montowania procfs i sysfs - o czym mowa wyżej (kolor fioletowy), jednakże arch-chroot działa wyłącznie na dystrybucjach Arch i pochodnych.

Nawigacja

[0] Indeks wiadomości

Idź do wersji pełnej