{"id":140,"date":"2007-12-17T14:20:27","date_gmt":"2007-12-17T13:20:27","guid":{"rendered":"http:\/\/freebox.blogdns.com\/index.php\/2007\/12\/17\/debian-su-una-penna-usb\/"},"modified":"2008-05-27T14:41:40","modified_gmt":"2008-05-27T13:41:40","slug":"debian-su-una-penna-usb","status":"publish","type":"post","link":"https:\/\/www.lorenzobraghetto.com\/index.php\/2007\/12\/17\/debian-su-una-penna-usb\/","title":{"rendered":"Debian su una penna USB"},"content":{"rendered":"<p><strong>20.12.2007 <\/strong>Aggiornamento: aggiunto l&#8217;utilizzo dell&#8217;UUID per gestire Grub e il file fstab sotto consiglio di <a href=\"http:\/\/freebox.blogdns.com\/index.php\/2007\/12\/17\/debian-su-una-penna-usb\/#comment-1447\">Enrico<\/a><\/p>\n<p>L&#8217;idea di installare Gnu\/Linux su un supporto usb mi \u00e8 venuta qualche giorno fa quando mi sono ritrovato &#8220;in prestito&#8221; un computer portatile con su Windows Vista che non potevo modificare. L&#8217;ho usato un p\u00f2 con una live ma i difetti delle live nel lungo tempo si sentono (anche nel breve tempo&#8230;non riuscivo a installare i driver video \ud83d\ude00 ). Un&#8217;installazione persistente su una penna usb era l&#8217;ideale. Devo dire la verit\u00e0 all&#8217;inizio ero un p\u00f2 scettico perch\u00e8 i supporti <a href=\"http:\/\/it.wikipedia.org\/wiki\/Chiave_USB\" target=\"_blank\">flash<\/a> hanno un numero di cicli pi\u00f9 limitato dei normali hard disk. Ma come vedremo esistono dei piccoli trucchi per limitare gli accessiinutili alla penna usb.<\/p>\n<p>Le prestazioni ne risentono leggermente quando la penna \u00e8 pi\u00f9 sottosforzo del solito, per esempio quando si sta installando software tramite apt.<\/p>\n<p>Detto questo partiamo:<\/p>\n<p class=\"alert\"><em><strong>ATTENZIONE Update: <\/strong>Questo metodo rimane valido ma <strike>probabilmente non \u00e8 il metodo migliore<\/strike> esiste un <a href=\"http:\/\/freebox.blogdns.com\/index.php\/2007\/12\/18\/debian-su-usb-metodo-2\/\" target=\"_blank\">alternativa<\/a> valutate entrambe prima di procedere!<br \/>\n<\/em><\/p>\n<p><strong>Cosa serve:<\/strong><\/p>\n<ul>\n<li>Un&#8217;installazione linux con internet dalla quale preparare la penna.<\/li>\n<li>Da linux bisogna avere a disposizione questi tool: debootstrap, fdisk, mkfs.ext2, chroot e altri<\/li>\n<li>Una penna usb, con 1gb si \u00e8 molto al limite se si sceglie di installare Gnome o Kde, altro discorso sono i DE minori. Io ne ho una da 4gb<\/li>\n<li>Pu\u00f2 essere utile avere <a href=\"http:\/\/freebox.blogdns.com\/index.php\/2007\/08\/17\/virtualizzare-con-qemu\/\" target=\"_blank\">qemu<\/a> installato e configurato per verificare che la penna faccia il boot correttamente (invece di riavviare il computer)<\/li>\n<\/ul>\n<p><!--more--><strong>Partizionare la penna<\/strong><\/p>\n<p>Prima di tutto bisogna partizionare la penna usb (la indicher\u00f2 come \/dev\/sda)<br \/>\n<code>sudo fdisk \/dev\/sda<\/code><br \/>\nFdisk \u00e8 molto semplice da usare, bisogna cancellare tutte le partizioni esistenti e crearne una unica primaria. Poi bisogna renderla bootable e impostare come file system il numero &#8220;83&#8221; (Linux)<\/p>\n<p>Una volta partizionata la chiavetta bisogna creare il filesystem vero e proprio quindi:<br \/>\n<code>sudo mkfs.ext2 \/dev\/sda1<\/code><br \/>\n\u00c8 meglio usare ext2 per ridurre gli accessi in scrittura della chiavetta che la degraderebbero pi\u00f9 in fretta.<\/p>\n<p><strong>Usare debootstrap<\/strong><\/p>\n<p>Ora montiamo la chiavetta normalmente:<\/p>\n<p><code>sudo mkdir \/media\/debusb<\/code><br \/>\n<code>sudo mount \/dev\/sda1 \/media\/debusb<\/code><\/p>\n<p>Usiamo debootstrap, il quale ci permette di installare un sistema base su un supporto esterno. Credo sia possibile installare anche Ubuntu ma io ho preferito installare debian semplicemente perch\u00e8 partendo da una normale netinst posso selezionare io i programmi da installare e quindi risparmiare spazio.<br \/>\n<code>sudo debootstrap --arch i386 sid \/media\/debusb<\/code><br \/>\nIo ho installato la sid (attualmente unstable) ma si pu\u00f2 sceglire anche sarge o lenny.<\/p>\n<p>Il sistema \u00e8 gi\u00e0 praticamente pronto ora facciamo in modo che possa fare il boot:<\/p>\n<p><strong>Chroot <\/strong><\/p>\n<p>Prima bisogna montare proc<br \/>\n<code>sudo mount -t proc proc \/media\/debusb\/proc<\/code><br \/>\nora si esegue il chroot<br \/>\n<code>sudo chroot \/media\/debusb<\/code><br \/>\nIn questo modo siamo dentro al sistema della chiavetta, per prima cosa impostiamo i repository<\/p>\n<pre>deb http:\/\/ftp.it.debian.org\/debian\/ sarge main contrib\r\ndeb http:\/\/security.debian.org\/ sarge\/updates main contrib<\/pre>\n<p>aggiorniamo il sistema:<\/p>\n<p><code>sudo apt-get update<\/code><br \/>\n<code>sudo apt-get upgrade<\/code><\/p>\n<p>Ora aggiustiamo il fstab in modo che ci siano meno accessi possbili alla chiavetta che la degraderebbero<\/p>\n<p>Prima per\u00f2 occorre annotare l&#8217;UUID per avere una corrispondenza sempre vera della partizione:<br \/>\n<code>sudo tune2fs -l \/dev\/sda1<\/code><br \/>\nIl mio UUID per sempio \u00e8:&#8221; Filesystem UUID:          59cfdd33-fd1e-44b3-9bf2-51dac3748b69&#8243;<br \/>\nUUID=59cfdd33-fd1e-44b3-9bf2-51dac3748b69\t\/             ext2    defaults,errors=remount-ro,noatime 0    0<br \/>\nproc    \/proc           proc    defaults                        0       0<br \/>\ntmpfs   \/etc\/network\/run tmpfs  defaults,noatime                0       0<br \/>\ntmpfs   \/tmp            tmpfs   defaults,noatime                0       0<br \/>\ntmpfs   \/var\/lock       tmpfs   defaults,noatime                0       0<br \/>\ntmpfs   \/var\/log        tmpfs   defaults,noatime                0       0<br \/>\ntmpfs   \/var\/run        tmpfs   defaults,noatime                0       0<br \/>\ntmpfs   \/var\/tmp        tmpfs   defaults,noatime                0       0<br \/>\n#tmpfs   \/home           tmpfs   defaults,noatime                0       0<br \/>\nIo ho commentato l&#8217;ultima riga perch\u00e8 in quel modo la home si cancellerebbe ad ogni riavvio, se uno si accontenta di un semplice sistema live che non memorizza le impostazioni nella home pu\u00f2 togliere il commento.<\/p>\n<p>Altro trucco per ridurre gli accessi \u00e8 eliminare il file \/etc\/mtab e sostituirlo con un link simbolico a \/proc\/mounts<\/p>\n<p><code>rm \/etc\/mtab<\/code><br \/>\n<code>ln -s \/proc\/mounts \/etc\/mtab<\/code><\/p>\n<p>Ora utilizziamo uno script che consente di creare i file device<\/p>\n<p><code>cd \/dev<\/code><br \/>\n<code>MAKEDEV generic<\/code><\/p>\n<p>Installiamo il kernel (questo o comunque quello che \u00e8 disponibile nel repository)<br \/>\n<code>apt-get install linux-image-2.6.23-1-486<\/code><br \/>\n<code>e poi generiamo il nuovo initramfs<\/code><br \/>\n<code>update-initramfs -u<\/code><br \/>\n<strong>Grub<\/strong><\/p>\n<p>Il passo finale \u00e8 quello di installare e configurare Grub<\/p>\n<p>Usciamo dal chroot digitando &#8220;exit&#8221;,  quindi dalla console della nostra distribuzione principale digitiamo:<br \/>\n<code>sudo grub-install  \u2013root-directory=\/media\/debusb \/dev\/sda<\/code><br \/>\nATTENZIONE wordpress trasforma le due linee in un unica linea pi\u00f9 lunga, in realt\u00e0 prima di root ci sono 2 linee.<\/p>\n<p>Per evitare di dover editare ogni volta Grub recuperiamo l&#8217;UUID trovato prima e infine creiamo il file menu.lst in \/media\/debusb\/boot\/grub\/<\/p>\n<p><code>######################################################<br \/>\n# Globals<br \/>\ndefault 1<br \/>\nfallback 0<br \/>\ncolor white\/blue black\/light-gray<br \/>\n#####################################################<br \/>\n# LIVE<br \/>\ntitle Debian from USB by monossido ;)<br \/>\nroot (hd0,0)<br \/>\nkernel \/boot\/vmlinuz root=UUID=59cfdd33-fd1e-44b3-9bf2-51dac3748b69<br \/>\ninitrd \/boot\/initrd.img<br \/>\nboot<br \/>\n<\/code><\/p>\n<p>Rispetto alla prima versione della guida Grub non ci dovrebbe essere pi\u00f9 bisogno di modificare Grub, l&#8217;unica cosa che potrebbe cambiare \u00e8 &#8220;root (hdx,o)&#8221; ma credo non serva nel senso che nel momento in cui si fa il boot dei supporti rimovibili la penna diventa automaticamente il primo hard disk del computer. Almeno cos\u00ec \u00e8 stato in tutte le mie prove.<\/p>\n<p>Rimane popssibile utilizzare syslinux ma non ho voluto provare per non dover fare troppi casini con le installazioni di nuovi kernel.<\/p>\n<p>A questo punto come ho scritto all&#8217;inizio si pu\u00f2 verificare molto velocemente che la penna faccia correttamente il boot con qemu, un esempio di utilizzo pu\u00f2 essere:<br \/>\n<code>qemu -boot c -hda \/dev\/sda<\/code><br \/>\nFinito! Ora se tutto va bene si riesce a fare il boot e si pu\u00f2 iniziare a installare i software preferiti con apt!<\/p>\n<p>Per ottenere il risultato e scrivere questa simil-guida ho preso spunto da <a href=\"http:\/\/pastebin.com\/f65cf8af7\" target=\"_blank\">pastebin.com<\/a> e da <a href=\"https:\/\/labs.truelite.it\/truedoc\/wiki\/CustomUsbKeyInstallation\" target=\"_blank\">labs.truelite.it.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>20.12.2007 Aggiornamento: aggiunto l&#8217;utilizzo dell&#8217;UUID per gestire Grub e il file fstab sotto consiglio di Enrico L&#8217;idea di installare Gnu\/Linux su un supporto usb mi \u00e8 venuta qualche giorno fa quando mi sono ritrovato &#8220;in prestito&#8221; un computer portatile con su Windows Vista che non potevo modificare. L&#8217;ho usato un p\u00f2 con una live ma [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16,24,10,3,34,12,42],"tags":[],"class_list":["post-140","post","type-post","status-publish","format-standard","hentry","category-informatica","category-debian","category-distribuzioni","category-gnulinux","category-me","category-real","category-smanettamenti"],"_links":{"self":[{"href":"https:\/\/www.lorenzobraghetto.com\/index.php\/wp-json\/wp\/v2\/posts\/140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lorenzobraghetto.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lorenzobraghetto.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lorenzobraghetto.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lorenzobraghetto.com\/index.php\/wp-json\/wp\/v2\/comments?post=140"}],"version-history":[{"count":0,"href":"https:\/\/www.lorenzobraghetto.com\/index.php\/wp-json\/wp\/v2\/posts\/140\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.lorenzobraghetto.com\/index.php\/wp-json\/wp\/v2\/media?parent=140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lorenzobraghetto.com\/index.php\/wp-json\/wp\/v2\/categories?post=140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lorenzobraghetto.com\/index.php\/wp-json\/wp\/v2\/tags?post=140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}