Partizione /home removibile.

Mer, 09/07/2008 - 10:36

Partizione /home removibile.

Inviato da marcosan 3 commenti

Utilizzare un supporto removibile per la partizione home per averla sempre a disposizione, anche su pc con memorie molto limitate (EEEPC e simili).Lo scopo di questa mini-mini-guida e' quello di permettere l'utilizzo di un supporto removibile per la partizione /home senza riavviare il computer ed in modo automatico.

L'idea e' quella di poter utilizzare la partizione /home presente nel nostro computer o quella presente in un dispositivo removibile.

Il motivi che mi hanno spinto a fare questo sono molto semplici:

1- poter avere sempre con me la mia partizione /home indipendentemente dal computer che sto utilizzando;

2- il mio piccolo EEEPC e' davvero comodo, ma in 4Gb non e' che si riesca a metter poi tanta roba;

3- perche' non provarci??

La soluzione proposta funziona sul mio computer che utilizzo tramite login testuale, non so se e' compatibile con i vari ambienti Kde/Gnome e login grafici.
Al momento la soluzione proposta funziona, ma permette di montare la partizione /home presente nel computer su un altro mount point SOLAMENTE se la partizione /home e' su una partizione separata.
Primi passi con Udev.
Non tratto qui il problema di trasferire i dati della nostra partizione /home al supporto removibile, segnalo solamente il programma Unison, suggeritomi da Stemby.

Per prima cosa dobbiamo riuscire a riconoscere con esattezza il supporto removibile che dovra' contenere la nostra partizione /home.

Per questo potete consultare la guida Configurare Udev di Topio1970

Fondamentalmente si tratta di installare il pacchetto sysfsutils e tramite il comando

systool -vb usb | grep serial

determinare il numero seriale del supporto removibile.

Indicheremo da qui in avanti con SERIALE il numero ottenuto in precedenza.
File da creare.
Nel seguito si suppone che nella directory /root sia stata creata una cartella script.
Nei file seguenti il nome UTENTE deve essere sostituito col nome del proprio utente e l'ultima riga va modificata in base al nome della partizione /home presente nel computer.

Tutte le operazioni seguenti devono essere effettuate da utente root:

1- Creiamo la cartella /mnt/local_home

mkdir /mnt/local_home

2- Creiamo il file /root/script/external_home con l'editor di testo preferito come segue


#!/bin/bash
# Uccidi i processi dell'utente per sicurezza
killall -u UTENTE
# Smonto la home locale
umount /home
# Monto la /home dell'dispositivo esterno
mount -t auto /dev/RemHome /home
# Monto la home "locale" in /mnt/locale_home
mount -t auto /dev/hda3 /mnt/local_home

3- Creiamo il file /root/script/local_home con l'editor di testo preferito come segue


#!/bin/bash
# Uccidi i processi del mio utente
killall -u UTENTE
umount /dev/RemHome
umount /mnt/local_home
mount -t auto /dev/hda3 /home

3- Creare il file /etc/udev/rules.d/00_local.rules con l'editor di testo preferito come segue


# Regole al momento dell'attacco del disco
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{serial}=="SERIALE", SYMLINK+="RemHome", RUN+="/root/script/external_home"
Il nome 00_... assicura che la regola creata sia la prima ad essere considerata
Utilizzo.

Una volta avviato il computer, se si effettua il login ci si trova nella /home locale del computer.
Se prima di effettuare il login inseriamo il dispositivo removibile, dopo pochi istanti possiamo effettuare il login, ma questa volta ci troviamo direttamente sulla /home contenuta nel dispositivo removibile, e la "vecchia" /home e' nella cartella /mnt/local_home.
Chiusa la sessione, effettuiamo il login da root ed eseguiamo lo script /root/script/local_home, ora possiamo nuovamente effettuare il login sulla /home locale.

Conclusioni e suggerimenti.

Naturalmente questo schema e' abbastanza grezzo, ma non ho avuto molto tempo per lavorarci. Sarebbe carino poter montare la partizione /home locale in un altro mount point anche se questa non e' su una partizione dedicata.

L'aspetto interessante e' che in questo modo possiamo trasportare la nostra fidata /home su tutti i nostri computer, anche su quei piccoli computer come l'EEEPC che hanno memorie ormai ridicole per un utilizzo comune.

Ringrazio ancora Ntropia e Stemby per le discussioni e i suggerimenti!





Commenti

Ritratto di ntropia
#1

Inviato da ntropia il Ven, 11/07/2008 - 07:34.

"Take me /home, country road..."

Hai avuto un'idea, ti sei rimboccato le maniche e ti sei fatto la strada da te. I miei complimenti, perché la guida è scritta molto bene, con chiarezza e seguendo le regole della formattazione. Un meritato 9.

Veniamo ai suggerimenti.
Come mi disse il mio luminoso maestro: "Con Unix puoi fare tutto... solo la maionese, ogni tanto viene così così..."

-"Strade? Dove stiamo andando non c'è bisogno di strade"
Assumendo che sulla chiavetta risieda un solo utente ramingo, in caso di assenza di una partizione dedicata, potresti scendere al livello della directory del medesimo per fare tutte le operazioni, senza dover scomodare l'intera /home. A questo punto, invece di montare alternativamente le partizioni /home /dev/RemHome, avresti due opzioni:

-Opzione 1.

mv /home/utente /home/utente_locale
mkdir /home/utente
mount /dev/RemHome /home/utente

-Opzione 2.
Te ne freghi e modifichi la riga dell'utente nel file /etc/password cambiando il valore della home con directory montata sul momento /home/utente_mobile.

-Uscita indolore
Ho cercato di trovare una soluzione che ti permetta di fare il logout liberamente e smontare tutto senza dover necessariamente tornare alla console testuale.
L'idea che mi piace di più finora è creare un file in /usr/share/xsessions/ che aggiunga fra i menù di scelta delle sessioni di qualunque greeter grafico un'opzione che esegue lo script di smontaggio della home mobile.

Volendo ne potresti aggiungere anche uno che fornisca la scelta di una sessione "mobile", che esegua il montaggio appena prima di lanciare il WM.

eNjoy

Chi ha intendimento conti il numero della Bestia, perché è un numero d'uomo; e il suo numero è... rw-rw-rw-



Ritratto di ferretti75
#2

Inviato da ferretti75 il Ven, 11/07/2008 - 11:01.

Re: "Take me /home, country road..."

Bella guida i miei + vivi complimenti . L'idea è molto originale e comoda .

Un paio di dubbi/problemi :

1 - Secondo me, a meno di non essere root di tutte le macchine che usi, non puoi garantire che il nome utente sia lo stesso su tutte le macchine . Il problema è ovviamente risolvibile modificando il lo script sulle macchine ... ma mi piacerebbe qualcosa di + dinamico ( magari un parametro che viene passato da udev ? )
2 - Corollario al problema di cui sopra : non puoi garantire che il GID sia lo stesso su tutte le macchine che usi ergo bisogna modificare lo script che monta il disco prevedendo un chown -R UTENTE

per il resto ... mi sà che ti ruberò l'idea ( per andare dai clienti con un disco usb e lavorare sempre nel mio ambiente preferito ) .

Ancora complimenti !!!

apt-get -a beer



Ritratto di marcosan
#3

Inviato da marcosan il Ven, 11/07/2008 - 12:29.

Re: "Take me /home, country road..."

Beh...grazie a tutti e spero che possa tornare utile qualcuno!!

Per i problemi menzionati, appena avro' un po di tempo ci pensero', al momento ho gia' fatto qualche salto mortale per scrivere queste poche righe...

Ciao a tutti!

"La matematica e' l'arte di dare lo stesso nome a cose diverse."
H.Poincare (1854-1912).