Fedora-Fr - Communauté francophone Fedora - Linux

Planet de Fedora-Fr : la communauté francophone autour de la distribution Linux Fedora

A propos

Cette page est actualisée toutes les heures.

Cette page est une sélection de blogs autour de Fedora. Fedora-Fr.org décline toute responsabilité au sujet des propos tenus par les auteurs des blogs de ce planet. Leurs propos sont leur entière responsabilité.

Le contenu de ce planet appartient à leurs auteurs respectifs. Merci de consulter leur blogs pour obtenir les licences respectives.

Mot-clefs : expresscard

Migration vers boot express card SSD

Frédéric Thouin

Quel bonne nouvelle de voir que le kmod-staging était de retour pour ma fedora 15 et donc le module kernel phison. Celui-ci me permet enfin d'utiliser mon expresscard verbatim SSD 16Go. Et là l'idée me prends de migrer ma partition racine (20Go, ocupé 9.3Go) qui est sur mon HDD SATA 5200rpm 500Go vers l'express card.

Problématique

Mon DELL Studio 1737 ne reconnait pas mon expresscard comme périphérique bootable, donc grub ne le voit pas non plus. Mon ExpressCard SSD demande obligatoirement un module kernel spécifique ( phison ) contenu dans les kmod-staging.

Etat des lieux

voici actuelement la séquance de boot de mon system : grub :

title Fedora (2.6.40.3-0.fc15.x86_64)
        root (hd0,2)
        kernel /boot/vmlinuz-2.6.40.3-0.fc15.x86_64 ro root=UUID=d5cb1ae8-748b-4af6-94cb-92188effabb7 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=fr_FR.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=fr-latin9 rhgb quiet
        initrd /boot/initramfs-2.6.40.3-0.fc15.x86_64.img
title Fedora (2.6.40-4.fc15.x86_64)
        root (hd0,2)

grub récupère le kernel et initramfs sur la partition /dev/sda3.

Principe du futur boot

Utilisé la partition STATA /dev/sda3 qui contient grub et les fichiers du kernel comme partition de boot utiliser pour grub et le chargement du noyau et indiquer où est la nouvelle racine du systeme. A la fin du boot la partition /dev/sda3 ne sera pas montée.

Préparation de l'enviroment de travail

Pour bien faire il me faut un live USB qui contient le module phison.

Avec l'aide du soft : Fedora LiveUSB creator je crée donc une distrib fedora 15 avec une persistance des données.

Je boot dessus et j'intègre les dépôts RPM-fusion afin d'installer le kmod-staging.

Hop cela installe en même temps le dernier kernel, et à partir de maintenant le module phison est monté quand le ssd est présent au démarage.

Génaration de la racine SSD

Reboot sur liveUSB et préparation de la futur racine :

une fois booté sur le liveUSB je monte la racine SATA ( /dev/sda3 ) dans /source, et la futur racine SSD ( /dev/sdc1 ) dans /dest

Copie de la racine

cp -a /source/* /dest

Préparation au reboot

INITRD

Là un point important qu'il faut bien prendre en compte est que l'image initramfs-2.6.40.3-0.fc15.x86_64.img actuelle placer sur /dev/sda3 ne contient pas le module phison, donc de base le boot du kernel ne peut pas voir l'expressCard. Il faut donc créer un initramfs avec le module phison. Biensur cette image devra etre dans le répertoire /boot de /dev/sda3 ( actuelement monté dans /source)

 mkinitrd --preload phison -f /source/boot/initramfs-2.6.40.3-0.fc15.x86_64ssd.img 2.6.40.3-0.fc15.x86_64

Cette commande est donc composé de :

--preload phison : indique qu'un module complémentaire doit etre intégré à l'image.

-f /source/boot/initramfs-2.6.40.3-0.fc15.x86_64ssd.img : indique le nom de l'image à créer

2.6.40.3-0.fc15.x86_64 : indique la version du kernel à utiliser pour générer l'initrd.

Nous somme donc avec une image initrd contenant le module phison, et une image ne contenant pas ce module.

Je rajoute donc une nouvelle ligne dans le grub.conf de la partition /dev/sda3 (/source/boot/grub.conf) :

title Fedora SSD (2.6.40.3-0.fc15.x86_64)
        root (hd0,2)
        kernel /boot/vmlinuz-2.6.40.3-0.fc15.x86_64 ro root=UUID=6530d8a4-7406-4163-9735-64c4b9175b83 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=fr_FR.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=fr-latin9 rhgb quiet
        initrd /boot/initramfs-2.6.40.3-0.fc15.x86_64ssd.img

J'indique donc à grub que ses fichiers seront du hd0,2 (/dev/sda3) et que la racine du système n'est plus sur UUID du /dev/sda3, mais sur l'UUID de l'expresscard (/dev/sdb1).

Et biensur je lui dis d'utiliser le initrd contenant le module phison ( /boot/initramfs-2.6.40.3-0.fc15.x86_64ssd.img ).

FSTAB

Il faudra bien-sur modifier le fstab de la nouvelle racine ( actuellement monter dans /dest/etc/fstab) et changer l'UUID de /dev/sda3 pour celui de /dev/sdc1.

UUID=6530d8a4-7406-4163-9735-64c4b9175b83 /                       auto    defaults        1 1

SELINUX

Puis qu'on a effectué une simple copie de la racine SATA vers la racine SSD il faut obligatoirement préparer le premier boot en SSD pour que SELINUX relabèlise les fichiers de la nouvelle racine.

Dans le cas contraire le système de démarrera pas car SELINUX refusera de donner accès aux fichiers système ( une solution par très propre est de rajouter selinux=0 dans la ligne du kernel dans grub.conf A NE PAS FAIRE).

Pour cela il faut créer un fichier .autorelabel à la racine du du futur filesystem racine. donc ici :

touch /dest/.autorelabel

Lors du boot, selinux voyant se fichier, il tentera de relabéliser le filesystem, cela peut prendre un certain temps, et dans mon cas j'ai du rebooter 2 fois pour que la relabélisation soit complète.

résumer

On a donc copier la racine sur le ssd, générer un initrd spécifique avec le module phison ( prise en charge de l'expresscard) copier dans le /boot (de la partition SATA), ajouter une entré dans le grub.conf (de la partition SATA), modifier le fstab ( de la partition SSD), préparé la racine SSD pour que selinux relabélise le file system)

REBOOT

C'est le moment de prier crom, car on va rebooté le système. au reboot on indique bien à grub de booter sur l'entrée Fedora SSD (2.6.40.3-0.fc15.x86_64) et la magie s'opère.

Et le futur ?

La dificulté de tout cela sera dans les mise à jours du kernel (c'est pas tout les jours), et de grub ( c'est encore plus rare).

Pour les mise à jours du kernel il ne faudra simplement pas oublier de régénérer un initrd pour la nouvelle version de kernel, copie le nouveau kernel et l'initrd_ssd dans le repertoire /boot de la partition /dev/sad1. et modifier le grub.conf dans la partition /dev/sda3.

Pour les mise a jours de grub, je vois pas trop, à la limite je ne le metterais pas à jours.

Conclusion

temps de boot

voila mon temps de boot avant :

Sep  1 08:12:35 dellp2 systemd[1]: Startup finished in 1s 457ms 538us (kernel) + 7s 17ms 520us (initrd) + 38s 393ms 430us (userspace) = 46s 868ms 488us.

et après :

Sep  1 11:06:29 dellp2 systemd[1]: Startup finished in 1s 415ms 263us (kernel) + 11s 357ms 679us (initrd) + 20s 101ms 712us (userspace) = 32s 874ms 654us.

soit un gain de 14secondes. ce qui est bien mais pas top.

vitesse des disques

hdparm -Tt /dev/sda
/dev/sda:
 Timing cached reads:   3204 MB in  2.00 seconds = 1603.48 MB/sec
 Timing buffered disk reads: 224 MB in  3.04 seconds =  73.71 MB/sec

hdparm -Tt /dev/sdb
/dev/sdb:
 Timing cached reads:   3312 MB in  2.00 seconds = 1657.42 MB/sec
 Timing buffered disk reads: 328 MB in  3.02 seconds = 108.74 MB/sec

Soit un gain de 35MB/sec ce qui là n'est pas négligeable, et l'ouverture des applications est réellement plus rapide.

Pour rappelle l'expresscard Verbatim SSD 16Go sur mon pc est conecté en PCIexpress 1X !!

Donc cela m'ouvre la porte vers l'envie d'acheter un disque SATA SSD qui là donnera bien plus de performances.