Project

General

Profile

Creare un installer personalizzato per Fuss/Soledad

Di seguito le istruzioni per modificare l'installer di fuss/soledad creando un cd bootabile con kernel 2.6.16 per il nuovo hardware non supportato dal kernel 2.6.8 debian.

I comandi elencati andranno lanciati con i privilegi dell'utente root.

Si assume che il nuovo kernel da installare (2.6.15) sia già stato preparato ed impacchettato in formato .deb

Inizialmente va estratta la iso originale di fuss in una directory di lavoro temporanea:

mount -o loop fuss.iso /mnt
mkdir fuss-installer
rsync -avH /mnt fuss-installer/
umount /mnt

L'immagine ISO con il nuovo kernel è prelevabile da qui.
Va quindi scaricata con il comando:

wget http://kmuto.jp/debian/d-i/2.6.16/sarge-custom-0801.iso

Una volta terminato il download, l'immafine ISO va montata in loop per procedere alla copia di alcuni file che andranno a sovrascrivere quelli vecchi, il primo passo è quello di montare su una directory opportuna, ad esempio /mnt:

mount -o loop sarge-custom-0801.iso /mnt

A questo punto si potrà iniziare a copiare i vari file che servono, si iniza con l'immagine del kernel e del ramdisk per l'avvio:

cp -a /mnt/install/2.6/vmlinuz fuss-installer/install/2.6/vmlinuz
cp -a /mnt/install/2.6/initrd.gz fuss-installer/install/2.6/initrd.gz
rm -rf fuss-install/isolinux/boot.cat
cd /mnt/pool/main

poi occorre copiare i pacchetti .udeb necessari per l'installazione, con:

cp -a acpi-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
cdrom-core-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
cdrom-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
crc-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
crypto-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
ext3-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
fat-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
fb-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
firewire-core-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
firmware-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
floppy-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
ide-core-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
ide-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
input-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
ipv6-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
irda-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
jfs-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
libparted1.7-udeb_1.7.1-2.1mtu1_i386.udeb \
loop-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
md-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
mouse-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
nic-extra-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
nic-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
nic-pcmcia-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
nic-shared-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
nic-usb-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
ntfs-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
parport-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
partman-auto-lvm_13_all.udeb \
partman-auto_54_i386.udeb \
partman-base_92_i386.udeb \
partman-basicfilesystems_48_all.udeb \
partman-basicmethods_31_all.udeb \
partman-crypto_8_i386.udeb \
partman-ext3_41_all.udeb \
partman-jfs_17_all.udeb \
partman-lvm_45_all.udeb \
partman-md_29_all.udeb \
partman-partitioning_40_i386.udeb \
partman-reiserfs_31_all.udeb \
partman-target_43_all.udeb \
partman-xfs_29_all.udeb \
pcmcia-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
pcmcia-storage-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
plip-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
ppp-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
qnx4-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
reiserfs-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
sata-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
scsi-common-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
scsi-core-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
scsi-extra-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
scsi-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
serial-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
ufs-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
usb-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
usb-serial-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
usb-storage-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
xfs-modules-2.6.16-2-486-di_1.02.sarge.mtu2_i386.udeb \
/fuss-installer/pool/main

infine si può cancellare quanto non serve più ed installare il pacchetto del nuovo kernel:

cd -
rm -rf fuss-installer/pool/main/l/linux-kernel-di-i386-2.6/*
rm -rf fuss-installer/pool/main/k/kernel-image-2.6.8-i386/

cp kernel-image-2.6.15fuss2_26_i386.deb fuss-installer/pool/main/

A questo punto sono stati copiati i file necessari al boot con il nuovo kernel ed i relativi moduli, nonchè delle librerie aggiuntive necessarie al debian-installer per gestire il kernel 2.6.16, udev ed il partizionamento dei dischi; inoltre sono stati eliminati i file utilizzati dal kernel 2.6.8.

Il passo successivo è la generazione dei file Packages e Release per l'archivio Debian. Per tale scopo verranno usati i comandi apt-ftparchive e dpkg-scanpackages.

cd fuss-installer
dpkg-scanpackages -u pool/main /dev/null > dists/soledad/main/debian-installer/binary-i386/Packages
cat dists/soledad/main/debian-installer/binary-i386/Packages | gzip  > dists/soledad/main/debian-installer/binary-i386/Packages.gz

dpkg-scanpackages pool/main /dev/null > dists/soledad/main/binary-i386/Packages
dpkg-scanpackages pool/main /dev/null | gzip > dists/soledad/main/binary-i386/Packages.gz

cd dists/soledad
apt-ftparchive release . > Release

L'ultimo passo prima della generazione della nuova iso è la modifica del file di configurazione di isolinux, quindi va aperto con un editor il file fuss-installer/isolinux/isolinux.cfg che dovrà avere questa sintassi:

DEFAULT linux
PROMPT 1

LABEL linux
KERNEL /install/2.6/vmlinuz
APPEND initrd=/install/2.6/initrd.gz ramdisk_size=16384 root=/dev/ram rw
TIMEOUT 0

DISPLAY isolinux.txt
F1 f1.txt
F2 f2.txt
F3 f3.txt
F4 f4.txt
F5 f5.txt
F6 f6.txt
F7 f7.txt
F8 f8.txt
F9 f9.txt
F0 f10.txt

Va quindi generata la iso con il comando:

mkisofs -o fuss-2.6.16-new.iso -r -J -no-emul-boot -boot-load-size 4 -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat -V "Fuss Soledad" fuss-installer