Installazione di Debian Lenny su pendrive persistente (partendo da zero)


Alcuni giorni fa, vi avevo anticipato che stavo provando una distribuzione debian su pendrive:

Sto riprendendo un lavoro pensato tempo fa, trattato in parte nel blog, che riguarda la creazione di piccole ISO o distro USB basate su debian e ubuntu, dedicate al file recovery, oppure usate come base per personalizzare le distro.
In questo post già accennavo come VirtualBox può essere utile per lavorare sia sulle immagini ISO in “collaborazione” con UCK e sia con distro costruite con debootstrap e chroot.

Ho provato in effetti diversi metodi e pendrive, cercando di salvare il contenuto su disco per poter replicare, partendo dal file unico compresso, il sistema debian. La scelta di creare l’archivio compresso è caduta su cpio con bzip2, abbandonando partimage perché per il ripristino necessita di una partizione e non è possibile lavorare in una directory. Uno dei documenti che ho letto è CPIO How-To

Questo post è scritto completamente da pendrive 🙂

debianusb1debianusb2

debianusb3debianusb41

La procedura di installazione di debian lenny inizia con lo scaricare Debian base in una directory, cosi come trattato in questo altro post.

Vi anticipo che è stato un lavoro lungo, non certo perfetto, che però mi ha permesso di analizzare comportamenti sia delle periferiche usb che del filesystem, nonché di trovare un metodo che sia facilmente esportabile senza perdita di dati, alcuni comandi come tar soffrono sui symlinks e nomi lunghi 8)

Anche se questo metodo è applicabile ai dischi esterni USB, lo scopo era di avere un sistema minimale con la possibilità di aggiungere tutto il necessario, rapido e che fosse in grado di accedere alla rete cablata o wireless, oppure di usarlo la rescue-pen come coltellino svizzero anche e soprattutto per il recupero dei dati. Nella pendrive da 2Gb, il sistema da 1Gb contiene Gnome e Nautilus base, Iceweasel, Wicd, Gparted, alcuni firmware wireless, mc, testdisk, ddrescue, smbclient, nbtscan e altro. La lista dei pacchetti installati è visibile su questo file o in questo se per caso voleste usare dpkg --set-selections per ricostruirla

Per ora ho uploadato su sendspace.com i files splittati, spero che qualcuno possa ospitare il file di 320MB, sempre che ce ne sia necessità. Non è difficile infatti ricreare la distro, vedremo come.

Ho copiato e incollato quasi tutto quello che ho fatto in  questo documento, sperando di non averlo troppo incasinato 🙂

Iniziamo creando una directory e scarichiamo la base ( E’ possibile partendo sia da Debian che da Ubuntu) …

$ sudo debootstrap lenny . http://ftp.it.debian.org/debian/


il processo dura diversi minuti e alla fine, pulendo la cache, si ottiene un filesystem di 150MB, che compresso con cpio in pipe con bzip2 ne occupa 47.

L’archivio base-lenny-05-cpio.bz2, aggiornato a oggi, è stato creato partendo dalla dir di lavoro con:

$ sudo su
# find . -print |cpio -ov -Hnewc | bzip2>../base-cpio.bz2

potete scaricarlo e decomprimerlo in una dir vuota con il comando:

$ cd path
$ bzcat base-lenny-05-cpio.bz2 |sudo cpio -iv

Questo post potrebbe diventare noioso per la sua lungaggine, ma vedrò di elencare almeno le parti necessarie e le caratteristiche della distro:

* Installazione di grub sulla pendrive usb:

# grub-install --no-floppy --root-directory=/mnt/debian/ /dev/sde

il file /pendrive/boot/grub/device.map deve contenere almeno

(hd0)    /dev/sda

* il file /pendrive/boot/grub/menu.lst che ho usato:

default 0
timeout 10
color cyan/blue white/blue
title Debian USB
root (hd0,0)
kernel /boot/vmlinuz-2.6.26-1-686 root=UUID=9b52555b-ed28-43a4-9d3b-e456c88d3f15 ro vga=791
initrd /boot/initrd.img-2.6.26-1-686

naturalmente dovete ricavarvi l’UUID della pendrive e sostituirlo in menu.lst

$ sudo blkid

/dev/sda1: LABEL=”USB2G” UUID=”9b52555b-ed28-43a4-9d3b-e456c88d3f15″ TYPE=”ext3″

* la pendrive ha una sola partizione ext3 attiva e non ha bisogno di swap, se avete una partizione sul disco interno potete attivarla con sudo swapon /dev/sdx 😉

$ sudo fdisk -l /dev/sda

Disk /dev/sda: 2063 MB, 2063073280 bytes
255 heads, 63 sectors/track, 250 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         250     2008093+  83  Linux

* sul mio PC  fisso con  scheda nvidia 8400 il monitor non viene correttamente riconosciuto, ho creato un file /etc/X11/xorg.conf.nvidia che uso al momento, ho dovuto usare noapic al boot (problema che avevo anche con Ubuntu 8.04)t>

* fstab

# /etc/fstab: static file system information.
#
/dev/sda1 / ext3 defaults 0 1
/dev/cdrom /media/cdrom0 udf,iso9660 user,noauto 0 0
proc /proc proc defaults 0 0
# none /proc/bus/usb usbfs devgid=46,devmode=664 0 0

** POSITIVO 🙂

il boot è veloce, provato su vari computer arriva al desktop in un tempo che va da 20 a 50 secondi, anche su hardware non recente, inoltre alcune pendrive sono più lente di altre.

il risultato delle ultime righe di dmesg (boot in circa 40 secondi) è visibile qui.

* I test sono stati fatti su 5 computer reali e su VirtualBox usando il disco usb mappato con VBoxManage, anche in questo caso il sistema è veloce, le Guest Additions non le ho installare per non inquinare il filesystem, la scheda vesa di VB, tutto sommato è soddisfacente.

* Ho abilitato sudo e modificato colori e .bashrc, ma di fatto non ho aggiunto o modificato parti importanti rispetto a Debian standard.

Questo post non è una bibbia, ma vuole essere un consiglio per chi voglia usare un sistema veloce e scalabile, oltre che persistente. Pensate a un’aula didattica dove con pochi euro (2G=5€) si può fornire uno strumento collaborativo notevole.

Le URL’s provvisorie per il download sono (popup banner):

“Name”,”Size”
base-lenny-05-cpio.bz2“,”46520299”,
debian-05-cpio.bz2_lenny_aa“,”85000000″,”
debian-05-cpio.bz2_lenny_ab“,”85000000″,”
debian-05-cpio.bz2_lenny_ac“,”85000000″,”
debian-05-cpio.bz2_lenny_ad“,”71755095″,”
MD5SUM.txt“,”110″,”

UPDATE:
la password sia di ‘ root’ che dell’utente ‘debianuser’ è: debianuser

UPDATE 2: I FILES SONO STATI RIMOSSI, SE SERVE POSSO RIMETTERLI SU ALTRO SPAZIO WEB,

* per ricomporre l’immagine occorre usare:

$ cat debian-05-cpio.bz2_lenny_a*>debian-05-cpio.bz2

* Posizionarsi nella directory della pendrive vuota, scompattare il file e installare grub:

$ cd /mnt/debian
$ bzcat /path/debian-05-cpio.bz2|sudo cpio -iv

* installare grub con:

$ sudo grub-install --no-floppy --root-directory=/mnt/debian/ /dev/sde

Enjoy with Debian  🙂

Pubblicità

Info Antonio Doldo
www.toolinux.it - www.virtualboxes.org - adoldo.wordpress.com - Linux user & Android fan

10 Responses to Installazione di Debian Lenny su pendrive persistente (partendo da zero)

  1. Pingback: Installazione di Debian Lenny su pendrive persistente (partendo da zero) | Yourpage live news aggregator

  2. Pingback: 100 Top Posts, Blogs Italiano Wopdrpess 22/1/2009 + 3/12/2008 « Kopanakinews’s Weblog

  3. stirner says:

    Ciao,
    veramente un bel lavoro!!

    Invece di usare cpio in pipe con bzip potresti usare afio:

    find . -depth -print | afio -ovZ /dove_vuoi/archivio.afio

    afio crea un archivio solido contenente i file compressi (…per file compression).

    Non è meglio ext2: è più veloce dell’ ext3 ed il journaling in un dispositivo usb potrebbe portare ad un accorciamento drastico della vita tecnica del dispositivo stesso.

    Un’altra soluzione potrebbe essere un mix del filesystem compresso cloop ( funziona anche con il kernel 2.6.28), unionfs ( per i files temporanei come i logs, ecc.) ed il montaggio di una partizione della chiavetta usb.

    La mia chiavetta ha due partizioni: una fat32 di uso generale ( la prima..) ed una ext2 con grub ed il mio minilinux.

    Ciao

    Max

  4. @stirner
    Grazie dei complimenti e del suggerimento, non sapevo di afio, mi leggerò la documentazione.
    Cerco di risponderti per punti:
    * ho scelto ext3 proprio per le innumerevoli prove fatte sia su pc reali che su virtualbox, se non smontavo la penna mi trovavo inconsistenze “scomode”, ma è chiaro che hai ragione tu, ext2 è meno intensivo.
    * la modalità con con cloop e squashfs è più lenta e non permette di fare modifiche veloci, proprio stamattina ho limato la penna da due Gb e ho copiato i 750 MB su una da 1G (modello senza guscio) e in soli 30 secondi iceweasel aveva già aperto la pagina debian.org ^__^
    * l’archivio creato con afio -ovZ è 380M contro 320 di quello cpio.bz2, ma questo vedo che dipende da Z (compress) contro bzip2, non so adesso se può incatenare con quest’ultimo, vedrò

    Non so se questa cosa interesserà molti, mi sembrava importante sottolineare che spesso si ha bisogno di sistemi snelli con poco “a bordo” e che però siano scalabili, Debian in questo è regina incontrastata 🙂

    Ciao e grazie,
    Antonio

  5. stirner says:

    afio può usare anche bzip2 con l’opzione -P: -P bzip2.

    Non uso squashfs ma cloop+aufs.

    L’operazione di generazione del filesystem compresso è sicuramente molto più lenta di quella che stai usando attualmente.

    Considera che create_compressed_fs accetta diverse opzioni tra le quali l’algoritmo di compressione ( zlib, 7zip, ecc.) influendo sul tempo di compressione e le dimensioni del file finale.

    Si possono tenere i file di configurazione ” fuori” dal filesystem compresso, ad esempio in un archivio afio che viene scompattato al boot.

    Con l’opzione -L -1 il filesystem compresso è circa 1/3 di quello espanso.

    Clonando il filesystem compresso nella ram (..questa è la cosa che mi piace di più..) si ha un sistema velocissimo, aggiornabile al volo ( garzie ad aufs..), supersicuro in termini di privacy, hackers, virus ( al riavvio non ci sarà nessuna traccia di attività negli hd e nelle pennette usb). Si possono addirittura mandare in standby i dischi rigidi, abbassare la frequenza della cpu …e lasciare il pc accesso per giorni in tutta tranquillità!!

    L’operazione di trasferimento in ram di un filesystem compresso di 225M, equivalenti a 646M, (…sono anch’io un minimalista..) avviene in circa 7-8 secondi…poi il sistema vola dalla ram 😉

    Di nuovo complimenti e buon sviluppo 😉

    Max

  6. @stirner
    grazie dei preziosi suggerimenti, mi farebbe piacere saperne di più 🙂
    Ho provato a usare

    find . -depth -mount -print0 | afio -ov -z -Z -P bzip2 -0 ../debian-05-afio.bz2
    . -- okay
    afio: 348m+1023k+0 bytes written in 712 seconds. The operation was successful.

    ma l’archivio è ancora di 360 contro i 320 del primo comando, però quello che mi interessa di più è quello che dici su cloop+aufs mi ricorda la slax, che ho usato tempo fa.
    Sarebbe bello fare una cosa simile con debian, vedremo.
    Grazie di nuovo,
    Antonio

  7. stirner says:

    Afio comprime “per file” quindi gli archivi saranno sempre un pochino più grandi di quelli compressi “per archivio”, se un archivio compresso “per archivio” si danneggia con molta probabilità si perdono tutti i dati, con una compressione per file invece si perdono solo i dati illeggibili.
    Nel tuo caso forse questa particolarità non vale la perdita del 10-11% di spazio.

    In ogni caso la migliore compressione con afio:
    afio -ovZ -P bzip2 -Q -9

    Cloop+aufs è l’approccio di Klaus Knopper per la famosa knoppix che è anch’ essa una debian derivata.

  8. @stirner
    Mitico.
    Ok, ti ringrazio delle precisazioni, proverò a seguire anche questa strada, chissà che non si riesca a mettere su una mini iso allettante, distrowatch non aspetta altro 🙂

  9. obbligatorio says:

    Ai pigri consiglio di provare sidux. il livecd installa un sistema generico (ovvero, che si riconfigura ad ogni boot sull’hardware che prova) su chiavetta. Al contrario, se non ricordo male di ubuntu, che installa su usb un sistema adattato all’hardware.

    Una volta installato si puo’ convertire in debian sid, se serve.

  10. @obbligatorio
    Su sidux tempo fa ci sono stati alcuni problemi legati ai repo, e purtroppo mi pare che abbia solo kde, però sono forse arrugginito e mi sbaglio.
    Per ciò che riguarda Ubuntu il file system è compresso con squahfs (e quindi immutabile), ma le modifiche vengono salvate sul file casper-rw (formattato ext3), forse ti riferisci che l’hardware è riconosciuto e salvato in questo file, ma la chiavetta è generica 😉
    Grazie molte per il suggerimento,
    Antonio

Rispondi

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: