Old:DebianLive su usb installabile

Document-page-setup.png Attenzione: questo articolo è ancora incompleto e in fase di scrittura da parte del suo autore.

Sentitevi liberi di contribuire, proponendo modifiche alla guida tramite l'apposita pagina di discussione, in modo da non interferire con il lavoro portato avanti sulla voce. Per altre informazioni si rimanda al template.



Intro

Lo scopo di questa guida è quello di creare una debian live su supporto usb con la possibilità di installarla su hd o altro supporto esterno, questa possibilità è implementata dal tool live-helper ma solo per live su cd/dvd, presumibilmente tale feature verrà aggiunta in futuro, nel frattempo con pochi passi è possibile assemblare la propria live su usb installabile, una sorta di coltellino svizzero da mettere nel portachiavi.


Si considerà:

  1. La creazione della live già avvenuta usando live-helper [1]
  2. La live si trova su supporto usb in /dev/sdb1 montata su /media/disk
  3. La directory usata da live-helper è /home/$USERNAME/mylive
  4. Architettura x86
  5. Debian stabile (Lenny)

Installazione di Netinst

Viene usato un installer particolare che caricherà l'immagine iso della netinst, anch'essa presente su usb.

# cd /media/disk
# mkdir -p netinst/gtk
# cd netinst
# wget http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/hd-media/initrd.gz
# wget http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/hd-media/vmlinuz
# wget wget http://cdimage.debian.org/debian-cd/5.0.3/i386/iso-cd/debian-503-i386-netinst.iso
# cd /media/disk/netinst/gtk
# wget http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/hd-media/gtk/initrd.gz
# wget http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/hd-media/gtk/vmlinuz

Fix menu di syslinux

Occorre inserive delle voci nel menù del bootloader per permettere di caricare il d-i. Il file di configurazione principale è syslinux.cfg nel quale vendono richiamati altri file, quello da modificare è menu.cfg, presente nella directory syslinux.

label install
	menu label Install-txt
	kernel /netinst/vmlinuz
	append initrd=/netinst/initrd.gz vga=normal quiet

label installgtk
	menu label Graphical install
	kernel /netinst/gtk/vmlinuz
	append  video=vesa:ywrap,mtrr vga=788 initrd=/netinst/gtk/initrd.gz -- quiet 

All'avvio della live, digitando install partià la netinst in modalità testo, mentre digitando installgtk si entrerà in modalità grafica. Si sono considerate solo due modalità, chi avesse necissità di usare la modalità expert basterà aggiungere una nuova voce. Coloro che volessero avere i cheat code della netinst protrebbero aggiungerli modificando uno dei file di aiuto di syslinux: f1.txt, f2.txt, ect.


Su debian lenny è presente live-helper v1.0.3-2 (syslinux v2:3.71+dfsg-5), il quale genera una configurazione per syslinux abbastanza scarna, che comprende solo la modalità senza menu (boot: [....]), nelle versione successive presenti su testing e sid invece la modalità di default di syslinux è quella con i menù e relativi sottomenù, più user-friendly, si entra nella modalità boot premendo TAB, mentre digitando Esc si torna nella modalità menu. Le voci da aggiungere a menu.cfg sono leggermente diverse, basta guardare quelle già presenti per intuire le modifiche da fare.

Installazione dei firmware mancanti

Si tratta di firmware proprietari non compresi nel d-i.

# cd /media/disk/
# mkdir /media/disk/firmware
# wget http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/lenny/current/firmware.tar.gz
# tar -xf firmware.tar.gz -C firmware
# rm firmware.tar.gz

info [2]

Repository locale

Si costruisce un trivial repository di pacchetti non compresi nel d-i, per la creazione del pool dei pacchetti si utilizzano quelli scaricati da live-helper presenti nella directory /home/$USERNAME/mylive

# cd /media/disk
# mkdir -p local-repository/binary
# cd local-repository
# cp /home/$USERNAME/mylive/cache/packages_bootstrap/* /media/disk/local-repository/binary
# cp /home/$USERNAME/mylive/cache/packages_chroot/* /media/disk/local-repository/binary
# cp /home/$USERNAME/mylive/cache/packages_binary/* /media/disk/local-repository/binary
# dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz

Il repository locale non verrà visto dal d-i, solo in un secondo momento si potrà accedervi, dopo averlo aggiunto in /etc/apt/sources.list.

Il file readme.txt contiene la linea (sostituire MOUNT-POINT-USB con il path dove viene montato il dispositivo usb) da aggiungere alla lista dei repository, come promemoria per quanto detto sopra.

# echo "deb file:///MOUNT-POINT-USB/local-repository binary/" > readme.txt

trivial repository [3]



Fr4nc3sc0