From 84941c4d0cec01ee71ed05cfd35a1cf9dfafea23 Mon Sep 17 00:00:00 2001 From: piccihud Date: Sat, 30 Dec 2023 16:43:33 +0100 Subject: [PATCH] aggiunto chroot.md --- linux/chroot.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 linux/chroot.md diff --git a/linux/chroot.md b/linux/chroot.md new file mode 100644 index 0000000..80532e4 --- /dev/null +++ b/linux/chroot.md @@ -0,0 +1,49 @@ +# 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)