Recovery di un sistema Debian attraverso chroot: differenze tra le versioni
S3v (discussione | contributi) m (→Introduzione) |
S3v (discussione | contributi) (lvm) |
||
Riga 56: | Riga 56: | ||
# chroot /media/mychroot /bin/bash --rcfile /root/.bashrc | # chroot /media/mychroot /bin/bash --rcfile /root/.bashrc | ||
</pre> | </pre> | ||
Per uscire da <code>chroot</code> | == Chroot su LVM == | ||
Nel caso utilizzassimo un [[LVM: Logical Volume Manager|LVM]] i passi da compiere sono quasi gli stessi.<br/> | |||
Iniziamo a creare un punto di mount: | |||
<pre> | |||
# mkdir /media/mychroot | |||
</pre> | |||
Quindi individuiamo il volume logico associato al filesystem di [[root]] (in questo esempio il VG si chiama "debian") con il comando "lvdisplay": | |||
<pre> | |||
# lvdisplay | more | |||
--- Logical volume --- | |||
LV Path /dev/debian/root | |||
LV Name root | |||
VG Name debian | |||
... | |||
... | |||
</pre> | |||
Montiamo il volume logico di root: | |||
<pre> | |||
# mount /dev/debian/root /media/mychroot | |||
</pre> | |||
Montiamo come prima alcune directory necessarie: | |||
<pre> | |||
# mount -o bind /dev /media/mychroot/dev | |||
# mount -o bind /proc /media/mychroot/proc | |||
# mount -o bind /sys /media/mychroot/sys | |||
# mount -o bind /dev/pts /media/mychroot/dev/pts | |||
</pre> | |||
E infine il <code>chroot</code> : | |||
<pre> | |||
# chroot /media/mychroot | |||
</pre> | |||
== Conclusioni == | |||
Adesso è come se stessimo operando all'interno della Debian box ed è possibile effettuare tutte le operazioni necessarie al ripristino del sistema Debian danneggiato.<br/> | |||
Per uscire da <code>chroot</code> : | |||
<pre># exit</pre> | <pre># exit</pre> | ||
e, se si sta utilizzando il Rescue Mode dell'installer Debian, Alt+F1 per ritornare al menù. | |||
{{Autori | |||
|Autore=[[Utente:S3v|S3v]] | |||
}} | |||
[[Categoria: Shell]] | [[Categoria: Shell]] |
Versione delle 00:29, 10 ott 2012
Versioni Compatibili Tutte le versioni supportate di Debian |
Introduzione
Durante la lunga vita di una Debian box può capitare a volte di trovarsi nell'impossibilità di avviare correttamente il sistema. Infatti una errata modifica a un file di vitale importanza o un bug in qualche pacchetto fondamentale per il corretto funzionamento del sistema possono portare al completo fallimento dell'avvio della macchina.
Ci si ritrova pertanto nella condizione di non avere a disposizione alcuno strumento utile per interfacciarsi col sistema e tentare di risolvere i problemi occorsi; nessuno strumento grafico e nessuna shell disponibile: che fare?
In questi momenti in cui tutto sembra perduto, arriva in soccorso la nostra ultima ancora di salvezza: chroot
Per utilizzare chroot
abbiamo bisogno innanzitutto di una shell funzionante che, data l'impossibilità di avviare il sistema, dovremo ottenere in qualche altro modo.
I modi per avviare una shell possono essere vari:
- Da una installazione funzionante presente su altra partizione o altro disco della macchina;
- Da una distribuzione live;
- Dall'immagine d'installazione di Debian;
In questa guida si è scelto di utilizzare una immagine .iso di Debian, in particolare la "business card", che consente, scaricando appena una quarantina di megabyte, di avere a disposizione la famosa shell di cui abbiamo bisogno.
Ovviamente gli altri due metodi sono altrettanto validi se si ha a disposizione un'altra distribuzione accessibile sul sistema o se si vuole avere a disposizione un intero ambiente grafico in cui muoversi con più agio. Per entrambi i metodi i comandi da impartire, da terminale o da emulatore di terminale, sono quelli descritti nel paragrafo Accesso tramite chroot
È inutile però precisare che gli orpelli grafici sono in questo caso del tutto superflui in quanto l'unica cosa di cui si ha bisogno è una shell funzionante.
Avvio immagine .iso di Debian
Per evitare possibili problemi, è necessario innanzitutto scaricare l'immagine "business card" per la stessa architettura (amd64, i386, etc.) del sistema a cui vogliamo accedere; quindi avviare il sistema da CD/DVD o da pendrive su cui ci si è premuniti di inserire la .iso d'installazione Debian.
Scegliere all'avvio "Advanced options -> Rescue mode" e proseguire normalmente scegliendo la localizzazione (utile per il layout della tastiera italiana), il mirror dei pacchetti e settando la configurazione di rete (anche questa utile se si ha bisogno di una connessione funzionante).
Nel momento in cui appare la schermata "Avviare il modo ripristino", arrestarsi e premere Alt+F2
seguito da [Invio].
Ora abbiamo la tanto agognata shell attraverso cui accedere al sistema.
Accesso tramite chroot
La shell fornita dall'installer Debian è la leggerissima ash tramite Busybox, perfettamente funzionale ai nostri scopi.
Iniziamo a creare un punto di mount in cui montare la partizione di root:
# mkdir /media/mychroot
Quindi individuare la partizione di root che vogliamo montare:
# fdisk -l
e, supponendo che essa sia individuata dal device sda1
, montarla con:
# mount /dev/sda1 /media/mychroot
A questo punto è possibile accedere a tutti i file della directory root del sistema non avviabile. Ad esempio, per modificare il file /etc/network/interfaces
:
# nano /media/mychroot/etc/network/interfaces
Se si vogliono compiere operazioni più complesse di una semplice modifica di un file (aggiornamento del sistema, operazioni sui pacchetti, operazioni sul filesystem etc.), bisogna utilizzare necessariamente chroot
.
Prima di far questo, servirà montare alcune directory necessarie al funzionamento dei comandi impartiti nella nuova root directory:
# mount -o bind /dev /media/mychroot/dev # mount -o bind /proc /media/mychroot/proc # mount -o bind /sys /media/mychroot/sys # mount -o bind /dev/pts /media/mychroot/dev/pts
Adesso, se non sono comparsi errori, è tutto pronto per entrare nella nuova root directory attraverso chroot
:
# chroot /media/mychroot /bin/bash --rcfile /root/.bashrc
Chroot su LVM
Nel caso utilizzassimo un LVM i passi da compiere sono quasi gli stessi.
Iniziamo a creare un punto di mount:
# mkdir /media/mychroot
Quindi individuiamo il volume logico associato al filesystem di root (in questo esempio il VG si chiama "debian") con il comando "lvdisplay":
# lvdisplay | more --- Logical volume --- LV Path /dev/debian/root LV Name root VG Name debian ... ...
Montiamo il volume logico di root:
# mount /dev/debian/root /media/mychroot
Montiamo come prima alcune directory necessarie:
# mount -o bind /dev /media/mychroot/dev # mount -o bind /proc /media/mychroot/proc # mount -o bind /sys /media/mychroot/sys # mount -o bind /dev/pts /media/mychroot/dev/pts
E infine il chroot
:
# chroot /media/mychroot
Conclusioni
Adesso è come se stessimo operando all'interno della Debian box ed è possibile effettuare tutte le operazioni necessarie al ripristino del sistema Debian danneggiato.
Per uscire da chroot
:
# exit
e, se si sta utilizzando il Rescue Mode dell'installer Debian, Alt+F1 per ritornare al menù.
Guida scritta da: S3v | Debianized 20% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |