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.

Metodo 1

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

È 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]

Metodo 2

Requisiti

Prima di intraprendere i successivi passi, accertarsi che le seguenti condizioni siano soddisfatte:

  • Sistema avviabile attraverso un dispositivo USB;
  • Pendrive con una capienza di almeno 256 MByte;
  • Pendrive formattata FAT32;
  • Disponibilità di un sistema GNU/Linux;

File necessari

Per installare una netinst serve aver scaricato un file immagine e la iso netinstall. Entrambi devono essere compatibili con l'architettura del proprio sistema (i386, amd64 etc.)

Lenny (i386)
boot.img.gz
netinst.iso
Lenny (amd64)
boot.img.gz
netinst.iso
Squeeze (i386)
boot.img.gz
[7]
Squeeze (amd64)
boot.img.gz
[8]

Installazione

Dopo aver eseguito il download del file immagine e della iso netinstall, accertatevi che il dispositivo USB non sia montato, quindi eseguire:

# zcat boot.img.gz > /dev/sdb

se la pendrive è stata riconosciuta come "sdb", altrimenti inserire il device appropriato.

Warning.png ATTENZIONE
Accertatevi di inserire il device corretto poiché il precedente comando cancella ogni dato presente sul dispositivo.

Utilizzare il comando:

# fdisk -l 

per dissipare eventuali dubbi.


Per finire non resta altro che copiare la iso netinstall sulla pendrive.

Metodo 3

A partire da Debian 6.0 (Squeeze), la preparazione di una pendrive USB di boot è stata ulteriormente semplificata.
È sufficiente adesso scaricare un'immagine .iso (primo CD/DVD, netinst, business-card) e accertarsi che la pendrive non sia montata e che la sua capacità sia tale da contenere l'immagine. Quindi basta un:

# dd if=/path/dell/immagine/nome_immagine.iso of=/dev/sdb

e ritrovarsi una pendrive bootabile per installare Debian.

Warning.png ATTENZIONE
Il precedente esempio riguarda una pendrive riconosciuta come "sdb". Accertatevi di inserire il device corretto poiché il precedente comando cancella ogni dato presente sul dispositivo.

Utilizzare il comando:

# fdisk -l 

per dissipare eventuali dubbi.



Fr4nc3sc0