Archives quotidiennes :

Recréer une partition de Swap sous Linux (Mandriva 2009.0)

Je profite d’avoir rédigé un article pour le Blog du service technique de PMSIpilot pour le proposer ici aussi 🙂 Voici quelques jours nous avons eu l’appel d’un contact rencontrant un souci sur son serveur. En effet alors qu’il appliquait une mise à jour à travers un applicatif, cela échouait sans plus de raisons. En nous connectant en VPN nous avons dans un premier abord été surpris. En effet les fichiers de logs ne contenaient pas beaucoup d’informations pour nous aider. A force de creuser nous avons enfin trouvé une première trace dans le log de MySQL qui redémarrait par manque de mémoire. Cela nous a surpris car ce serveur avait normalement 1 Go de RAM et 2 Go de Swap. En vérifiant avec la commande free nous avons obtenu la réponse suivante :

[root@pmsipilot ~]# free
total used free shared buffers cached
Mem: 1034548 206192 828356 0 11888 91500
-/+ buffers/cache: 102804 931744
Swap: 0 0 0
[root@pmsipilot ~]#

Et là surprise, pas de Swap ! Nous avons ensuite vérifié que la partition existait bien avant de vérifier le contenu du fichier fstab pour voir si nous demandions bien à la partition de se monter et surprise elle était bien présente :

[root@pmsipilot ~]# fdisk -l /dev/sda

Disque /dev/sda: 42.9 Go, 42949672960 octets
255 heads, 63 sectors/track, 5221 cylinders
Units = cylindres of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Périphérique Amorce Début Fin Blocs Id Système
/dev/sda1 * 1 660 5301418+ 83 Linux
/dev/sda2 661 5221 36636232+ 5 Extended
/dev/sda5 661 928 2152678+ 82 Linux swap / Solaris
/dev/sda6 929 2246 10586803+ 83 Linux
/dev/sda7 2247 5221 23896656 83 Linux
[root@pmsipilot ~]#

[root@pmsipilot ~]# cat /etc/fstab
# Entry for /dev/sda1 :
UUID=f2e0dc3e-ca0c-11de-9505-9532f1d0a000 / ext3 relatime 1 1
# Entry for /dev/sda6 :
UUID=058c0c64-ca0d-11de-84a0-39a75bb193a6 /home ext3 relatime 1 2
/dev/cdrom /media/cdrom auto umask=0,users,iocharset=utf8,noauto,ro,exec 0 0
/dev/fd0 /media/floppy auto umask=0,users,iocharset=utf8,noauto,exec,flush 0 0
none /proc proc defaults 0 0
# Entry for /dev/sda7 :
UUID=1bc24804-ca0d-11de-b77f-27219b1234fe /var ext3 relatime 1 2
# Entry for /dev/sda5 :
UUID=057d5d9a-ca0d-11de-ba57-83515a19edff swap swap defaults 0 0
[root@pmsipilot ~]#

Enfin en vérifiant dans /proc/swaps nous nous apercevions que aucune swap n’était listée.

[root@pmsipilot ~]# cat /proc/swaps
Filename Type Size Used Priority

Et en vérifiant l’UUID de cette partition, elle semblait bien correspondre :

[root@pmsipilot ~]# ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 2009-11-06 13:29 057d5d9a-ca0d-11de-ba57-83515a19edff -> ../../sda5
lrwxrwxrwx 1 root root 10 2009-11-06 13:29 058c0c64-ca0d-11de-84a0-39a75bb193a6 -> ../../sda6
lrwxrwxrwx 1 root root 10 2009-11-06 13:29 1bc24804-ca0d-11de-b77f-27219b1234fe -> ../../sda7
lrwxrwxrwx 1 root root 10 2009-11-06 13:29 f2e0dc3e-ca0c-11de-9505-9532f1d0a000 -> ../../sda1
[root@pmsipilot ~]#

Nous avons alors tenté de monter manuellement la partition de Swap avec la commande swapon :

[root@pmsipilot ~]# swapon /dev/sda5
[root@pmsipilot ~]# free
total used free shared buffers cached
Mem: 1034548 207324 827224 0 11984 91688
-/+ buffers/cache: 103652 930896
Swap: 2152668 0 2152668
[root@pmsipilot ~]#

Comme on peut le constater cela fonctionnait et nous n’avions aucun retour en erreur que ce soit sur le prompt ou dans les fichiers de logs. Nous avons alors redémarré le serveur (qui bien sûr est à plus de 500 km pour faire simple 😉 ) et avons eu la désagréable surprise de constater que la swap ne s’était pas remontée d’elle même. Après avoir pris conseil auprès de Mandriva, nous avons pu constater que certains logs suggéraient que la swap pouvait être corrompue, et l’avons donc reformatée :

[root@pmsipilot ~]# mkswap /dev/sda5
Setting up swapspace version 1, size = 2152672 KiB
pas d’étiquette, UUID=bbc600ee-4350-452f-894d-349fb915927b
[root@pmsipilot ~]#

Une fois cette partition recréée, il a bien sûr fallu modifier le fichier /etc/fstab afin de tenir compte du nouvel UUID.

[root@pmsipilot ~]# vi /etc/fstab
[root@pmsipilot ~]# cat /etc/fstab
# Entry for /dev/sda1 :
UUID=f2e0dc3e-ca0c-11de-9505-9532f1d0a000 / ext3 relatime 1 1
# Entry for /dev/sda6 :
UUID=058c0c64-ca0d-11de-84a0-39a75bb193a6 /home ext3 relatime 1 2
/dev/cdrom /media/cdrom auto umask=0,users,iocharset=utf8,noauto,ro,exec 0 0
/dev/fd0 /media/floppy auto umask=0,users,iocharset=utf8,noauto,exec,flush 0 0
none /proc proc defaults 0 0
# Entry for /dev/sda7 :
UUID=1bc24804-ca0d-11de-b77f-27219b1234fe /var ext3 relatime 1 2
# Entry for /dev/sda5 :
UUID=bbc600ee-4350-452f-894d-349fb915927b swap swap defaults 0 0
[root@pmsipilot ~]#

Suite à cette modification, un redémarrage pour vérifier et là Eureka la Swap est bien montée au démarrage, mission accomplie et problème réglé 🙂

Gaël Duperrey & Samuel Verschelde