Solo pochi giorni fa, in occasione dell’installazione di openSUSE 11.2 Milestone 5 e a causa di problemi riscontrati a fine installazione che impedivano l’avvio della distribuzione, mi sono cimentato nella compilazione di un nuovo Kernel abilitando il supporto a EXT4 in openSUSE 11.1 al fine di accedere alle partizioni della Milestone 5.
Perchè EXT4? La risposta è semplice: durante la fase di installazione della Milestone 5 ho adottato come filesystem il prestante EXT4 e considerando il fatto che openSUSE 11.1 non include di default il supporto a EXT4 mi sono avventurato nella sua abilitazione.
Vediamo dunque come procedere per abilitare il supporto in lettura e scrittura al filesystem EXT4 in openSUSE 11.1 che attualmente utilizza il Kernel 2.6.27.23-0.1.
Questa guida è valida per qualsiasi altra operazione relativa a un Kernel che richiede l’abilitazione, o in caso contrario la disabilitazione, di un modulo.
E’ sempre bene agire con prudenza e nel pieno delle proprie conoscenze: una configurazione errata potrebbe danneggiare il sistema rendendolo instabile e/o inutilizzabile.
Innanzitutto è bene attrezzare il sistema affinchè il processo di configurazione e di compilazione del nuovo Kernel volga al termine senza problemi. Aprire una console e ricorrendo all’utilizzo di zypper digitare:
sudo zypper in qt3-devel kconfigeditor ncurses-devel make
Effettuare il download della versione più recente del Kernel da questo indirizzo. Nel mio caso mi sono servito della versione 2.6.30.4.
Aprire una console, acquisire i privilegi di root, entrare nella directory contenente i sorgenti del Kernel utilizzando il comando "cd nome_directory" ed estrarre l’archivio compresso precedentemente scaricato (nel mio caso linux-2.6.30.4.tar.bz) badando bene a destinare il suo contenuto nella directory /usr/src/.
tar -xvf linux-2.6.30.4.tar.bz2 -C /usr/src/
Entrare nella directory contenente i files generatasi in seguito all’estrazione dell’archivio dei sorgenti del Kernel:
cd /usr/src/linux-2.6.30.4/
A questo punto è necessario modificare la configurazione di default del Kernel in uso affinché il successivo processo di compilazione dia vita ad un Kernel con tanto di supporto il lettura e scrittura al files system EXT4. Aprire una console e impartire il seguente comando:
make xconfig
Prima di procedere è fortemente consigliato effettuare una copia di backup del file di configurazione al fine di evitare future problematiche legate sopratutto a settaggi azzardati o poco adatti all’hardware in uso. Certo non è il nostro caso, ma una copia di sicurezza della configurazione originale o di default non fa mai male!!
Dalla finestra principale –> File –> Save As.. –> Selezionare la directory in cui si desidera salvare il file .config e premere sul bottone Save per confermare.
E’ giunto il momento di selezionare il modulo EXT4 al fine di includerlo nelle features di quello che sarà il nostro nuovo Kernel. Dalla finestra principale –> Edit –> Find –> Ext4 –> Selezionare le seguenti voci:
- Ext4 extended attributes (NEW);
- The extended 4 (Ext4) filesystem;
- Enable Ext4dev compatibility (NEW);
- Ext4 POSIX Access Control Lists;
- Ext4 Security Labels.
…come in figura:
Chiudere la finestra nella quale abbiamo selezionato le nuove features premendo l’apposito pulsante contrassegnato dalla X e salvare il file di configurazione.
E’ giunto il momento di creare il pacchetto Rpm corrispondente al nuovo Kernel con tanto di supporto al filesystem EXT4 e dunque impartire il seguente comando:
make rpm
Terminato il processo di creazione del pacchetto, che a seconda della macchina in uso e delle sue potenzialità impiegherà più o meno tempo, occorre installare il pacchetto Rpm.
N.B: per installare la nuova versione del Kernel è bene impartire il comando rpm -ivh che installa la nuova versione del pacchetto e non rpm -Uvh che andrebbe ad aggiornare e quindi a sovrascrivere il Kernel in uso.
Entrare nella directory /usr/src/packages/RPMS/i386 digitando:
cd /usr/src/packages/RPMS/i386
Installare il pacchetto Rpm, nel mio caso denominato kernel-2.6.30.40.1default-1.i386.rpm, con il comando:
rpm -ivh kernel-2.6.30.40.1default-1.i386.rpm
Successivamente impartire il comando:
mkinitrd
…che nel mio caso restituisce il seguente l’output:
Kernel image: /boot/vmlinuz-2.6.27.23-0.1-default Initrd image: /boot/initrd-2.6.27.23-0.1-default Root device: /dev/disk/by-id/ata-Maxtor_6L160P0_L42R7CSG-part2 (/dev/sda2) (mounted on / as ext3) Resume device: /dev/disk/by-id/ata-Maxtor_6L160P0_L42R7CSG-part1 (/dev/sda1) Kernel Modules: hwmon thermal_sys processor thermal dock scsi_mod libata ata_piix ata_generic ide-core piix ide-pci-generic fan jbd mbcache ext3 edd crc-t10dif sd_mod usbcore ohci-hcd uhci-hcd ehci-hcd ff-memless hid usbhid Features: block usb resume.userspace resume.kernel Bootsplash: openSUSE (1280x1024) 23123 blocks Kernel image: /boot/vmlinuz-2.6.30.4-0.1-default Initrd image: /boot/initrd-2.6.30.4-0.1-default Root device: /dev/disk/by-id/ata-Maxtor_6L160P0_L42R7CSG-part2 (/dev/sda2) (mounted on / as ext3) Resume device: /dev/disk/by-id/ata-Maxtor_6L160P0_L42R7CSG-part1 (/dev/sda1) Kernel Modules: hwmon thermal_sys processor thermal scsi_mod libata ata_piix ata_generic ide-core piix ide-pci-generic fan jbd mbcache ext3 edd crc-t10dif sd_mod usbcore ohci-hcd uhci-hcd ehci-hcd hid usbhid Features: block usb resume.userspace resume.kernel Bootsplash: openSUSE (1280x1024) 50532 blocks
Tale output è necessario al fine di riconfigurare Grub o il bootloader in uso in quanto contiene le informazioni relative all’avvio del nuovo Kernel.
Per prevenire qualsiasi tipo di problema consiglio di effettuare una copia di backup del file di configurazione del bootloader in uso e successivamente eseguire le operazioni di integrazione del nuovo Kernel.
Nel caso in cui, per esigenza o per curiosità, si presenti la necessità di convertire un filesystem EXT3 in EXT4 consultare questo articolo.













