CustomUsbKeyInstallation » Cronologia » Versione 1
Amministratore Truelite, 26-01-2006 16:55
Another page migrated from Simoni's stuff
| 1 | 1 | Amministratore Truelite | = Installare una versione personalizzata di Debian su una chiavetta USB = |
|---|---|---|---|
| 2 | |||
| 3 | Installare una Debian su una chiavetta USB è relativamente semplice, grazie all'uso di deboostrap; tutto quello che serve è avere una macchina già installata con Debian su cui utilizzare la chiavetta per costruire il sistema, se la macchina non dispone di deboostrap basterà installarlo con: |
||
| 4 | |||
| 5 | {{{ |
||
| 6 | apt-get install debootstrap |
||
| 7 | }}} |
||
| 8 | |||
| 9 | Nel seguito si farà conto che la chiavetta sia vista sul sistema di costruzione come /dev/sda, si verifichi che il sistema la riconosca effettivamente (si dà per scontato che esso sia configurato correttamente per utilizzare chiavette USB). |
||
| 10 | Partizionamento e sistema di base |
||
| 11 | |||
| 12 | Il primo passo è ripartizionare la chiavetta, si possono utilizzare due partizioni (una per /boot e una per la radice, o una unica partizione, per semplificare utilizzeremo questa ultima opzione. Per partizionare si può usare il comando preferito, le opzioni sono molte: fdisk, cfdisk, parted, ecc. |
||
| 13 | |||
| 14 | Una volta partizionata la chiavetta occorrerà crearvi sopra un filesystem, per ridurre gli accessi (che degradano la chiavetta) il filesystem più indicato è ext2, quindi nell'ipotesi di partizione unica lo creeremo con: |
||
| 15 | |||
| 16 | {{{ |
||
| 17 | mkfs.ext2 /dev/sda1 |
||
| 18 | }}} |
||
| 19 | |||
| 20 | Una volta creato il filesystem dovremo montarlo sotto '''/mnt''' in maniera opportuna per poterci lavorare; per far questo basta: |
||
| 21 | |||
| 22 | {{{ |
||
| 23 | mkdir /mnt/build |
||
| 24 | mount /dev/sda1 /mnt/build/ |
||
| 25 | }}} |
||
| 26 | |||
| 27 | A questo punto ci viene in aiuto deboostrap che ci consente di installare in maniera automatica un sistema base nella chiavetta, basterà eseguire il comando: |
||
| 28 | |||
| 29 | {{{ |
||
| 30 | debootstrap --arch i386 sarge /mnt/build |
||
| 31 | }}} |
||
| 32 | |||
| 33 | che installa una Debian Sarge (si può specificare anche sid o testing). Il programma inizierà le sue operazioni, che durano un certo tempo, dando luogo ad un output del tipo: |
||
| 34 | |||
| 35 | {{{ |
||
| 36 | I: Retrieving Release |
||
| 37 | I: Retrieving Packages |
||
| 38 | I: Validating Packages |
||
| 39 | I: Checking component main on http://ftp.debian.org/debian... |
||
| 40 | I: Extracting base-files... |
||
| 41 | I: Extracting base-passwd... |
||
| 42 | ... |
||
| 43 | I: Installing core packages... |
||
| 44 | I: Unpacking required packages... |
||
| 45 | I: Configuring required packages... |
||
| 46 | I: Installing base packages... |
||
| 47 | I: Base system installed successfully. |
||
| 48 | }}} |
||
| 49 | |||
| 50 | Una volta installato il sistema base occorrerà completare la configurazione per permettere alla chiavetta di essere usata come disco principale per l'avvio, per farlo la maniera più semplice è quella di entrare nella stessa con un chroot; facendo: |
||
| 51 | |||
| 52 | {{{ |
||
| 53 | chroot /mnt/build |
||
| 54 | }}} |
||
| 55 | |||
| 56 | e da qui in avanti tutti i comandi faranno riferimento alla gabbia chroot realizzata nella chiavetta. |
||
| 57 | Configurazione del sistema sulla chiavetta |
||
| 58 | |||
| 59 | Il primo passo è quello di impostare le sorgenti di APT, basterà creare il file /etc/apt/sources.list, il cui contenuto sarà il seguente: |
||
| 60 | |||
| 61 | {{{ |
||
| 62 | deb http://ftp.it.debian.org/debian/ sarge main contrib |
||
| 63 | deb http://security.debian.org/ sarge/updates main contrib |
||
| 64 | }}} |
||
| 65 | |||
| 66 | e si potrà verificare il funzionamento del tutto installando gli eventuali aggiornamenti con i comandi: |
||
| 67 | |||
| 68 | {{{ |
||
| 69 | apt-get update |
||
| 70 | apt-get upgrade |
||
| 71 | apt-get clean |
||
| 72 | }}} |
||
| 73 | |||
| 74 | in cui l'ultimo è usato per pulire la cache dei pacchetti. |
||
| 75 | |||
| 76 | Il passo successivo è quello di creare un /etc/fstab opportuno, dato che la chiavetta si degrada con le operazioni di scrittura, è opportuno minimizzare le stesse, questo prevede l'uso dell'opzione di montaggio noatime e di directory temporanee in RAM; un esempio del contenuto di questo file è il seguente: |
||
| 77 | |||
| 78 | {{{ |
||
| 79 | /dev/sda1 / ext2 defaults,errors=remount-ro,noatime 0 0 |
||
| 80 | proc /proc proc defaults 0 0 |
||
| 81 | tmpfs /etc/network/run tmpfs defaults,noatime 0 0 |
||
| 82 | tmpfs /tmp tmpfs defaults,noatime 0 0 |
||
| 83 | tmpfs /var/lock tmpfs defaults,noatime 0 0 |
||
| 84 | tmpfs /var/log tmpfs defaults,noatime 0 0 |
||
| 85 | tmpfs /var/run tmpfs defaults,noatime 0 0 |
||
| 86 | tmpfs /var/tmp tmpfs defaults,noatime 0 0 |
||
| 87 | tmpfs /home tmpfs defaults,noatime 0 0 |
||
| 88 | }}} |
||
| 89 | |||
| 90 | e si potrà poi verificare che è a posto montando le varie directory. Si monti sempre /proc, dato che questo servirà per le successive installazioni, con: |
||
| 91 | |||
| 92 | {{{ |
||
| 93 | mount /proc |
||
| 94 | }}} |
||
| 95 | |||
| 96 | Inoltre dato che /etc/mtab viene scritto frequentemente degradando la chiavetta, si abbia cura di rimuoverlo e sostituirlo con un link a /proc/mounts che contiene le stesse informazioni: |
||
| 97 | |||
| 98 | {{{ |
||
| 99 | rm /etc/mtab |
||
| 100 | ln -s /proc/mounts /etc/mtab |
||
| 101 | }}} |
||
| 102 | |||
| 103 | Il passo successivo è installare il kernel, ma prima occorre creare tutti i file di dispositivo necessari (dato che deboostrap ne crea solo una piccola parte; questo si fa con: |
||
| 104 | |||
| 105 | {{{ |
||
| 106 | cd /dev |
||
| 107 | ./MAKEDEV generic |
||
| 108 | }}} |
||
| 109 | |||
| 110 | dopo di che si potrà installare il kernel con: |
||
| 111 | |||
| 112 | {{{ |
||
| 113 | apt-get install kernel-source-2.6-386 |
||
| 114 | apt-get clean |
||
| 115 | }}} |
||
| 116 | |||
| 117 | Infine qualora si voglia effettuare un backup della nostra chiavetta tutto quello che servirà è crearne una immagine usando dd, con: |
||
| 118 | |||
| 119 | {{{ |
||
| 120 | dd if=/dev/sda of=debusb.img |
||
| 121 | }}} |
||
| 122 | |||
| 123 | che potrà essere ripristinata su un'altra chiavetta (delle stesse dimensioni!) con: |
||
| 124 | |||
| 125 | {{{ |
||
| 126 | dd if=debusb.img of=/dev/sda |
||
| 127 | }}} |