Per tutti i possessori di netbook, nonchè amanti di openSUSE, questo articolo potrebbe rivelarsi davvero utile in quanto vedremo come installare openSUSE 11.0 senza l’ausilio di un lettore CD esterno.
Per l’esattezza la versione di openSUSE in oggetto è la 11.0; per la sua installazione ricorreremo a una Pen Drive che, dopo aver apportato le dovute modifiche, si comporterà come un vero e proprio DVD.
Il primo passo da compiere è quello di effettuare il download della versione Gnome o KDE che è possibile reperire da questo indirizzo.
E’ consigliabile optare per una versione Live visto e considerato che, utilizzandola su Eee Pc ci affideremo ai repository sia per le future installazione di software aggiuntivo che per eventuali aggiornamenti.

Il secondo passo è quello di procurarsi una Pen Drive di almeno 2gb. Il dispositivo va opportumamente trattato equipaggiandolo di filesystem FAT32. Trovate utili informazioni su come gestire queste operazioni in questo articolo.

Occorre specificare che questa guida è da utilizzare nel caso in cui si desideri installare openSUSE 11.0 senza avere l’opportunità di utilizzare un lettore CD esterno.

Appunto per questo aggireremo l’ostacolo "riponendo le nostre speranze" su una Penna USB. Apportando alcune modifiche all’immagine ISO è infatti possibile utilizzare una periferica USB esterna per l’installazione.

La guida che andrò a esporvi è divisa in 2 parti: nella prima parte vedremo come preparare l’immagine in modo tale che il sistema in fase di installazione non richieda la presenza del DVD, la seconda consiste nella copia dei files all’interno del dispositivo USB.

Questo articolo ha la particolarità di poter essere utilizzato senza dover minimamente intervenire sui comandi (copia/incolla); le uniche 2 variabili riguardano la posizione e il nome dell’immgine ISO e il device in cui verrà collegata la vostra Pen Drive.

Prima parte

Innanzitutto occorre installare syslinux: aprire una console e digitare:

sudo zypper in syslinux

A questo punto è necessario, dopo aver provveduto a creare una partizione FAT32, inserire la Pen Drive nell’apposita porta USB.

syslinux /dev/sdc1

(In cui /dev/sdc1 corrisponde alla partizione della penna usb.)

Passiamo alla creazione delle directory che utilizzeremo per montare l’immagine ISO e per svolgere le altre operazioni. Da terminale digitare:

mkdir -p /work/unpacked
cd work

Per la creazione delle directory successive necessitano i privilegi di amministrazione ragion per cui dopo averli ottenuti digitare:

mkdir /mnt/iso
mkdir /mnt/squash
mkdir /mnt/usb

Montare l’immagine ISO e proseguire impartendo i comandi che vi vengono suggeriti:

mount -o loop openSUSE-11.0-KDE4-LiveCD-i386.iso /mnt/iso/
cd unpacked
gzip -dc /mnt/iso/boot/i386/loader/initrd | cpio -i
mount -o loop /mnt/iso/openSUSE-*read-only.* /mnt/squash/
cp /mnt/squash/lib/modules/*/kernel/fs/nls/nls_cp437.ko lib/modules/*/kernel/fs/nls/
cp /mnt/squash/lib/modules/*/kernel/fs/nls/nls_iso8859-1.ko lib/modules/*/kernel/fs/nls/
cp -r /mnt/squash/lib/modules/*/kernel/fs/vfat lib/modules/*/kernel/fs/
cp -r /mnt/squash/lib/modules/*/kernel/fs/fat lib/modules/*/kernel/fs/

Fatto ciò occorre modificare il files include. Editare il file con il vostro editor preferito; nel mio caso kwrite:

kwrite include

Questa operazione è di vitale importanza infatti, modificando come indicato il file include, il sistema in fase di installazione non andrà a cercare il DVD. Per fare ciò è necessario cercare la così definita "function CDDevice" e sostituire il codice che la definisce con questo:

function CDDevice {
# /.../
# changed this function so that it finds config.isoclient on vfat disks, e.g. USB drives
# ----
find /lib/modules/*/kernel/fs/nls/nls* -exec insmod {} \; # needed for vfat filesystem
find /lib/modules/*/
kernel/fs/*fat/*.ko -exec insmod {} \; # needed for vfat filesystem
insmod /lib/modules/*/
kernel/drivers/usb/storage/usb-storage.ko # needed for USB
sleep 5 # fixme; do this in a proper way
cddevs=`/usr/sbin/hwinfo --disk | grep sd | grep "Device File:" | cut -f2 -d: | cut -f2 -d " "` # looks for disks instead of CDs
echo cddevs $cddevs
for i in $cddevs;do
i=$i"1" # fixme; looks on the first partition only
echo i $i
if [ -b $i ];then
test -z $cddev && cddev=$i || cddev=$cddev:$i
echo cddev $cddev
fi
done
if [ -z $cddev ]; then
systemException \
“Failed to detect CD drive !” \
“reboot”
fi
}

Salvare i cambiamente e provvedere alla creazione del initrd che chiameremo initrdud. Da console impartire il seguente comando:

find . | cpio -o -H newc | gzip -9 > ../initrdud

Seconda Parte

Torniamo alla nostra Pen Drive. Generalmente il sistema monta tale dispositivo su /media/disk (o qualcosa di simile). Per comodità, e per seguire con tranquillità il resto dell’articolo smontare la periferica e provvedere a rimontarla nel punto di mount creato precedentemente:

mount /dev/sdc1 /mnt/usb/

Copiare tutti i files dell’immagine ISO nella Pen Drive:

cp -r /mnt/iso/* /mnt/usb/

Copiare il contenuto della directory /boot/i386/loader/ nella penna usb:

cp -r /mnt/iso/boot/i386/loader/* /mnt/usb/

Rinominare il file isolinux.cfg in syslinux.cfg:

mv /mnt/usb/isolinux.cfg /mnt/usb/syslinux.cfg

E’ arrivato il momento di copiare il file initrdud, oggetto delle modifiche precedenti, all’interno del dispositivo USB:

cp ../initrdud /mnt/usb/

Editare il file syslinux.cfg:

kwrite /mnt/usb/syslinux.cfg

Per mettere in condizione il sistema di avviarsi facendo riferimento al file initrdud occorre modificare la riga:

append initrd=initrd ramdisk_size=512000 ramdisk_blocksize=4096 splash=silent showopts

in

append initrd=initrdud kiwidebug=1 ramdisk_size=512000 ramdisk_blocksize=4096 splash=silent showopts

Smontare il dispositivo USB:

umount /mnt/usb

E’ tempo di verifiche; se tutto il procedimento descritto è stato seguito correttamente saremo finalmente in grado di equipaggiare il nostro netbook con la versione 11.0 di openSUSE.

Questo articolo non è tutta farina del mio sacco, ma visto e considerato che l’articolo originale da per scontato molti passaggi ho deciso di svilupparla e renderla più semplice. Spero di essere riuscito nell’intento.