Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[HOWTO] Usare Gentoo da USB
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools)
View previous topic :: View next topic  
Author Message
falko
Apprentice
Apprentice


Joined: 03 Dec 2004
Posts: 213
Location: Rovereto (TN) Italy

PostPosted: Fri Dec 12, 2008 2:15 pm    Post subject: [HOWTO] Usare Gentoo da USB Reply with quote

La realizazione di questo hoto è nata un po' a causa delle mie paranoie ;-) (di perdere dati) e un po' per l'esigenza di avere un sistema funzionante, identico a quello di utilizzo se qualcosa dovesse andare stordo dopo un emerge world (qualcuno ha reminescenze di libexpat,e2fsprogs,...). Terminata la premessa vi illustro brevemente lo il mo obbiettivo; ossia: avere un HD di backup il quale possa essere intercambiabile in ogni momento con con l'hd di utilizzo e che possa essere usato tranquillamente senza cambiare la sequenza di boot.


I Requisiti
Code:

1. Avere un HD uguale a quello con qui si sta lavorando (serial ata se si utilizza un serial ata,...) con capienza uguale o superiore
2. Avere un box esterno USB, con l'HD collegato e pronto per l'utilizzo
3. Kernel configurato per poter usare l'initial ramdisk
4. (OPZIONALE) Kernel configurato con supporto USB compilato buildin
5. (OPZIONALE) Kernel configurato per supportare dm-crypt (per cifrare il fs)



1. Partizionare e formattare il dispositivo secondo le proprie esigenze
Code:

# fdisk /dev/<proprio_dispositivo>
# mkfs.<filesystem_desiderato>


2. Copiare tutti i file presenti nel nostro HD nel nuovo dispositivo.
OPZIONE: Il seguente script sincronizza con rsync i due dispositivi. Con l'opzione --exclude escludo il contenuto delle cartelle che non necessitano di essere copiate/sincronizzate, se ne avete altre aggiungetele pure!.
Code:

BACKUP_DISK=/dev/disk/by-uuid/<uuid_del_proprio_dispositivo>
# E' collegato il disco di backup?
if [ -e $BACKUP_DISK ]
   then
      echo -e "Al termine verra spento il PC"
      
      mount $BACKUP_DISK /mnt/backup/
       rsync -av --delete / /mnt/backup/linux/ \
             --exclude=/tmp/* \
           --exclude=/var/tmp/portage/* \
           --exclude=/mnt/sda1/* \
           --exclude=/mnt/backup/* \
             --exclude=/proc/* \
            --exclude=/sys/* \
            --exclude=/media/* 

      umount /mnt/backup      
fi


3. Creare un initrd per eseguire tutte le operazioni che devono essere eseguite prima di avviare init. Per comodità, lo creò attraverso mkinitrd (ma nulla vieta a voi di costruirlo a mano...). Il file creato avrà nome initrd-<release_vostro_kernel>.gz
Code:

# emerge mkinitrd
# mkinitrd initrd-`uname -r` `uname -r`


4. Configurare linuxrc (script eseguito dal kernel subito dopo aver terminato le proprie operazioni e prima di essere messo in esecuzione init) secondo le proprie esigenze.
Decomprimo e monto initrd...
Code:

# mkdir tmp
# gunzip  initrd-`uname -r`.gz
# mount -o loop initrd-`uname -r` tmp/


Ora tmp contiene il filesystem di boot; linuxrc e dovrebbe assomigliare grossomodo a questo.
Code:

#!/bin/nash
# Se serve, carico i moduli con modprobe...
echo "Wheee pirla... Attendi un po'..."
sleep 7

echo Mounting /proc filesystem
mount -t proc /proc /proc
echo Creating block devices
mkdevices /dev
echo Creating root device
mkrootdev /dev/root
echo 0x0100 > /proc/sys/kernel/real-root-dev
echo Mounting root filesystem

mount -o defaults --ro -t <filesystem_scelto> /dev/<proprio_dispositivo> /sysroot

pivot_root /sysroot /sysroot/initrd
umount /initrd/proc

NOTA1: Ho configurato il kernel per avere il supporto USB buildin quindi non mi occorre caricarli!
NOTA2: Il ritardo di 7 secondi è necessario affinchè il kernel riconosca il dispositivo

Terminate le modifiche smontare initrd, ricompilarlo e copiarlo nella directory di boot
Code:

# umount tmp
# gzip initrd-`uname -r`
# cp initrd-`uname -r`.gz /boot


5. Ora occorre configurare opportunatamente GRUB che dovrà contenere una sezione simile a questa.
Code:

title=Gentoo Linux (Linux USB)
root (hd0,2)
kernel /boot/kernel-<release_del_proprio_kernel> init=/linuxrc   
initrd (hd0,2)/boot/initrd-<propria_versione>.gz

NOTA: l'opzione real_root non è necessaria se si ha impostato linuxrc per montare un
determinato dispositivo

6. Ora è tutto pronto, non ci resta altro che riavviare la macchina e provare il nostro "nuovo SO".


OPZIONE:
Avendo a che fare con un dispositivo USB e quindi facile da smarrire, potrebbe essere utile utilizzare un sistema di cifratura per evitare che qualche malintenzionato possa utilizzare i nostri dati. Per fare questo non c'è niente di più semplice che utilizzare "dm-crypt".

1b. Creare una partizione cifrata
Code:

# emerge cryptsetup
# cryptsetup -y create crypt /dev/<proprio_dispositivo>
# mkfs.<filesystem_desiderato> /dev/mapper/crypt


2b. Lo script per effettuare la sincronizzazione dovrà essere opportunatamente modificato!

4b. Modificare e aggiungere la seguente riga al file linuxrc
Code:

cryptsetup create crypt /dev//<proprio_dispositivo>
mount -o defaults --ro -t <filesystem_scelto> /dev/mapper/crypt /sysroot

Ovviamente occorrerà copiare l'eseguibile cryptsetup nel filesystem dell'initrd altrimenti
non potrebbe essere eseguito. cryptsetup si trova nella cartella /sbin, copiarlo
nella medesima di initrd.







Ho cercato di rendere questa guida il più semplice e chiara possibile cosicchè posssa essere leggibile anche ai meno esperti. Ache per questo non ho approfondito molti argomenti (come dm-crypt e configurazioni del kernel per le quali esiste molta buona documentazione), accetto comunque di buon grado consigli, suggerimenti, integrazioni e anche critiche, sperando che quanto scritto possa essere di utilità anche per altre persone!
cia
:-)
_________________
Io non sarò mai nessuno ma... nessuno sarà mai come me. (Jim Morrison)

A ciacere no se sgonfa done

Gentoo on: Lenovo R500
Back to top
View user's profile Send private message
cloc3
Advocate
Advocate


Joined: 13 Jan 2004
Posts: 4515
Location: http://www.gentoo-users.org/user/cloc3/

PostPosted: Fri Mar 27, 2009 10:37 am    Post subject: Re: [HOWTO] Usare Gentoo da USB Reply with quote

falko wrote:
Per comodità, lo creò attraverso mkinitrd (ma nulla vieta a voi di costruirlo a mano...).

nel mio sistema, oggi, ho provato a compilare mkinitrd e ho avuto un fail.
però sono riuscito a compilare la versione 4.*.

quella versione non genera una immagine disco in formato ext2, come la precedente, ma una intiramfs in formato cpio vecchio stile (-H odc). che ormai è standard pressochè universale.

avendo necessità di fare modifiche, bisogna:
Code:

mv initramfs-di-mkinitrd initramfs-di-mkinitrd.gz
gunzip initramfs-di-mkinitrd.gz
mkdir nuova-initramfs
cd nuova-initramfs
cpio -i -H odc <../path-alla-initramfs-di-mkinitrd
# fare tutte le modifiche necessarie
find .|cpio -o -H newc|gzip -c >../path-alla-nuova-initramfs.gz


inoltre, bisognerebbe fare attenzione al modo in cui utilizzi la tmpfs nel nuovo disco.
molto spesso, il filesystem usb risiede su un supporto flash. per conservarne la durata nel tempo, è bene montare la cartella /tmp in ram e riflettere un attimo sui filesystem adottati. ideale sarebbe l'uso del metodo delle squashfs (+aufs), stile knoppix.
_________________
vu vu vu
gentù
mi piaci tu
Back to top
View user's profile Send private message
falko
Apprentice
Apprentice


Joined: 03 Dec 2004
Posts: 213
Location: Rovereto (TN) Italy

PostPosted: Sat May 16, 2009 9:20 am    Post subject: Reply with quote

cloc3 wrote:
nel mio sistema, oggi, ho provato a compilare mkinitrd e ho avuto un fail.
però sono riuscito a compilare la versione 4.*.

quella versione non genera una immagine disco in formato ext2, come la precedente, ma una intiramfs in formato cpio vecchio stile (-H odc). che ormai è standard pressochè universale

Buono a sapersi, quindi mkinitrd è passato tempfs a ramfs?

cloc3 wrote:
molto spesso, il filesystem usb risiede su un supporto flash

Come requisito avevo messo di possedere un HD per portatile (o un HD convenzionale), è logico che se si dispone di un dispositivo flash devono essere fatte delle ulteriori considerazioni per la natura di questo supporto. In ogni caso non ritengo molto conveniente usare questi tipi di supporti per l'applicazione che proponevo dato che il numero di scritture è limitato

cloc3 wrote:
e riflettere un attimo sui filesystem adottati. ideale sarebbe l'uso del metodo delle squashfs (+aufs), stile knoppix.

non ho ben capito perchè proponi questo tipo di filesystem non dovrebbe essere usato più che altro in sola lettura (e per archiviare)? Quello che propongo in questo HOWTO è di avere un HD "di scorta" sul quale poter fare tutte le prove che si vuole, per poi poterlo far ritornare come l'originale in breve tempo (grazie a rsync)
_________________
Io non sarò mai nessuno ma... nessuno sarà mai come me. (Jim Morrison)

A ciacere no se sgonfa done

Gentoo on: Lenovo R500
Back to top
View user's profile Send private message
cloc3
Advocate
Advocate


Joined: 13 Jan 2004
Posts: 4515
Location: http://www.gentoo-users.org/user/cloc3/

PostPosted: Sat May 16, 2009 7:51 pm    Post subject: Reply with quote

falko wrote:
è logico che se si dispone di un dispositivo flash devono essere fatte delle ulteriori considerazioni per la natura di questo supporto

secondo me, l'installazione su dispositivi flash è l'aspetto più interessante, quando si parla di boot da usb.
altrimenti, non esiste nessuna differenza con una installazione tradizionale.
un qualunque installer di distribuzione compilata, ad esempio, tratta i dischi tradizionali con connessione usb allo stesso modo di quelli ide o scsi.

invece, il supporto flash impone riflessioni più attente. l'impiego dei filesystem squashfs è proprio uno dei principali strumenti che servono iin questo caso.
il sistema che si ottiene è ugualmente interscambiabile e può essere sincronizzato con particolari procedure.
poi è ovvio che tutto dipende da come uno lavora e da quello che deve fare.
il mio intervento non era di critica, ma intendeva solo indicare una possibile evoluzione del tema.
_________________
vu vu vu
gentù
mi piaci tu
Back to top
View user's profile Send private message
falko
Apprentice
Apprentice


Joined: 03 Dec 2004
Posts: 213
Location: Rovereto (TN) Italy

PostPosted: Tue May 19, 2009 7:32 pm    Post subject: Reply with quote

clock3 wrote:
il mio intervento non era di critica

Ci mancherebbe... (accetterei ben volentieri anche le tue critiche!), è solo che non volevo chiarire lo scopo di questo mio howto
dato non è di creare una installazione eseguibile su un supporto flash, ma di creare un disco esterno che potesse essre usato come alternativa a quello interno dei notebook e che nell'evenienza potesse venir ad essso sostituito senza alcun intervento
_________________
Io non sarò mai nessuno ma... nessuno sarà mai come me. (Jim Morrison)

A ciacere no se sgonfa done

Gentoo on: Lenovo R500
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum