Installare Debian da pendrive USB o SD card

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Debian-swirl.png Versioni Compatibili

ERRORE: valore non valido ( Tutte le versioni di Debian )! Vedi qui.

Intro

La seguente guida mostra come installare d-i su supporto usb.

Si considererà:

  1. Dispositivo usb in /dev/sdb e montato in /media/disk
  2. Architettura x86
  3. Debian stabile (Lenny)


Info.png Nota
Questo howto si basa sul metodo riportato sulla guida ufficiale che trovate a questo link [1] introducendo alcune variazioni:
  1. File ordinati in sottodirectory nella radice del supporto USB.
  2. Si mette in evidenza la necessità di avere i firmware mancanti.
  3. Si accenna alla possibilità del repository locale.


Preparazione del supporto usb

Occorre creare una partizione fat32 avviabile sul supporto usb, tale partizione deve essere la prima e primaria, per tale fine si possono usare tools come gparted o cfdisk in alternativa alle seguente operazioni

Warning.png ATTENZIONE
Tutti i dati sul supporto usb verranno persi


# aptitude install mbr parted
# umount /media/disk
# dd if=/dev/zero of=/dev/sdb count=512 bs=1
# install-mbr --force /dev/sdb
# parted /dev/sdb mkpartfs primary fat32
# Start? 0                                                                  
# End? -1 
# parted /dev/sdb set 1 boot on

Installazione del bootloader

# aptitude install syslinux
# syslinux /dev/sdb1

Installazione della netinst

Il debian-installer (d-i) è concepito per funzionare su cd/dvd, per farlo funzionare da usb si ricorre ad un loader che caricherà l'immagine iso.

# cd /tmp
# wget http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/hd-media/boot.img.gz
# gunzip boot.img.gz
# mkdir img /media/disk/syslinux /media/disk/netinst /media/disk/firmware
# mount boot.img img -t vfat -o loop
# cp -r img/* /media/disk/syslinux
# umount img
# cd /media/disk/syslinux
# mv *.gz ../netinst
# mv linux ../netinst

Poichè vengono copiati i file linux e initrd nella sottodirectory /netinst, modificando la loro posizione originaria, occorre modificare il loro PATH nel file di configurazione del bootloader, si ricorre al comando sed per tale semplice sostituzione.

# sed -i "s/linux/\/netinst\/linux/g" *.cfg
# sed -i "s/initrd.gz/\/netinst\/initrd.gz/g" *.cfg
# sed -i "s/initrdg.gz/\/netinst\/initrdg.gz/g" *.cfg

In fine si scarica l'immagine netinst.

# cd /media/disk/netinst
# wget http://cdimage.debian.org/debian-cd/current/i386/iso-cd/debian-504-i386-netinst.iso

d-i hd-media [2]

netinst [3]

Installazione dei firmware mancanti

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

# cd /media/disk/
# 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 [4]

Repository locale

Warning.png ATTENZIONE
Questa sezione è OPZIONALE


Si costruisce un trivial repository di pacchetti non compresi nel d-i.

# cd /media/disk
# mkdir -p local-repository/binary
# cd local-repository/binary

E' sconsigliato crearsi un pool di pacchetti scaricandoli con aptitude o un altro gestore in quanto facendo il download del singolo pacchetto non si risolvono eventuali problemi di dipendenze.

Info.png Nota
Durante la creazione di una debian live con live-helper, tutti i pacchetti scaricati vengono messi in cache, questi costituiscono

un pool ideale per un repository locale da mettere su usb [5]


A titolo di esempio, per avere mc occorre scaricare anche le sue dipendenze

# aptitude download mc libpcre3 libgpm2 libglib2.0-data libglib2.0-0 bzip2 arj unzip lynx lynx-cur dbview

Creazione degli indici.

# cd ..
# 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 [6]



Fr4nc3sc0