Autor Wątek: Chroot - dostęp niezbędny każdemu  (Przeczytany 6825 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

pavbaranov

  • Administrator
  • Ekspert
  • *****
  • Wiadomości: 848
  • Reputacja +25/-0
  • Architektura: x86_64
  • DE/WM: KF5.16+Plasma5.4.95+KDEApps 15.11.80+git na KF5
  • Distro: Arch Linux
  • GPU: Radeon free
  • Kernel: 4.3 (BFQ/CK/BLD/UKSM/+optymalizacje)
Chroot - dostęp niezbędny każdemu
« dnia: Listopad 11, 2014, 19:33:30 »
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/nazwagdzie /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/nazwaGdzie "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/bashZnó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.

 

Polityka cookies
Darmowe Fora | Darmowe Forum
ppiz furenzu gangpod thepunisher articz