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]
swapon /dev/sdxy
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
# mkdir /mnt/nazwa
"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:
# lsblk
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).
# pacman -S arch-install-scripts
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:
# mount /dev/sdXY /mnt/nazwa
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:
# arch-chroot /mnt/nazwa
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:
# arch-chroot /mnt/nazwa /bin/bash
Znów "nazwa" ma odpowiadać tej z pkt. 1.
6. Robimy to, co potrzeba na schrootowanym systemie.
7. Wychodzimy z sesji chroot:
# exit
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.