Recovery di un sistema Debian attraverso chroot: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
(lvm)
Riga 56: Riga 56:
# chroot /media/mychroot /bin/bash --rcfile /root/.bashrc
# chroot /media/mychroot /bin/bash --rcfile /root/.bashrc
</pre>
</pre>
Possiamo adesso effettuare tutte le operazioni necessarie al ripristino del sistema Debian danneggiato.<br/>
 
Per uscire da <code>chroot</code> basta un semplice:
== 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>
:[[Utente:S3v|S3v]]
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

Debian-swirl.png 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
Warning.png ATTENZIONE
Se si ha la necessità di utilizzare le directory /var /boot /tmp /home o altre, residenti su partizioni separate da quella di root "/", bisogna individuare il rispettivo device e montarle una ad una dopo aver creato per ciascuna di loro un punto di mount


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 Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized