50 lines
2.0 KiB
Markdown
50 lines
2.0 KiB
Markdown
|
# chroot
|
||
|
|
||
|
Un chroot è un'operazione che cambia la directory radice per il processo in esecuzione e i suoi figli. Questo ambiente modificato è chiamato chroot jail.
|
||
|
|
||
|
Il cambio di root viene comunemente effettuato per eseguire la manutenzione su sistemi in cui l'avvio e/o l'accesso non sono più possibili. Esempi comuni sono:
|
||
|
|
||
|
- Reinstallazione del boot loader;
|
||
|
- Ricostruzione dell'immagine initramfs;
|
||
|
- Ripristino di una password dimenticata.
|
||
|
|
||
|
## Procedura
|
||
|
|
||
|
- avviare una live;
|
||
|
- montare la partizione danneggiata, nella quale risiede il sistema, nella cartella `/mnt`;
|
||
|
- se le cartelle `/boot` o `/var` si trovassero in una partizione separata è necessario montarle dentro la cartella `/mnt`, ad esempio:
|
||
|
|
||
|
```bash
|
||
|
sudo mount /dev/sda3 /mnt/var
|
||
|
sudo mount /dev/sda1 /mnt/boot
|
||
|
```
|
||
|
- montare i restanti device:
|
||
|
|
||
|
```bash
|
||
|
sudo mount --bind /dev /mnt/dev # sudo mount --rbind /dev /mnt/dev
|
||
|
sudo mount --bind /proc /mnt/proc
|
||
|
sudo mount --bind /sys /mnt/sys
|
||
|
```
|
||
|
- Il parametro `--bind` fa sì che i contenuti di /dev siano accessibili anche in /mnt/dev
|
||
|
- L'approccio con `--rbind` è più flessibile perché monta ricorsivamente tutto il contenuto della directory specificata, mentre `--bind` monta solo la directory stessa;
|
||
|
- Se si utilizza un sistema UEFI, è necessario accedere anche alle variabili EFI:
|
||
|
```bash
|
||
|
sudo mount --rbind /sys/firmware/efi/efivars sys/firmware/efi/efivars/
|
||
|
```
|
||
|
- Lanciare il comando chroot specificando la cartella di destinazione e la shell da usare
|
||
|
|
||
|
```bash
|
||
|
sudo chroot /mnt /bin/bash
|
||
|
```
|
||
|
- Nel caso si volesse riparare la configurazione del bootloader:
|
||
|
```bash
|
||
|
sudo grub-install
|
||
|
sudo update-grub2
|
||
|
```
|
||
|
|
||
|
## Collegamenti
|
||
|
|
||
|
- [https://wiki.archlinux.org/title/Chroot](https://wiki.archlinux.org/title/Chroot)
|
||
|
- [https://informatizzati.org/?view=article&id=341:accesso-ad-una-installazione-di-linux-con-chroot](https://informatizzati.org/?view=article&id=341:accesso-ad-una-installazione-di-linux-con-chroot)
|
||
|
- [https://wiki.ubuntu-it.org/AmministrazioneSistema/Chroot](https://wiki.ubuntu-it.org/AmministrazioneSistema/Chroot)
|