URL: https://linuxfr.org/users/itstimetogo/journaux/mkswap-est-dangereux Title: mkswap est dangereux ! Authors: itstimetogo Date: 2004年12月11日T04:38:16+01:00 Tags: Score: 0 mkswap est dangereux ! Man mkswap : _The Linux kernel does not look at partition Id’s_ Donc mkswap peut écrire sur tout. "Mais", comme le dit la man-page : _but many installation scripts will assume that partitions of hex type 82 (LINUX_SWAP) are meant to be swap partitions._ Sauf que Mandrake 10.1 ne le fait pas bien. J'avais downloadé mdk 10.1 Official il y a quelques jours et ce soir je me suis dit que j'allais tester. C'est la version Official "rock solid" qui a bénéficié du debuggage via community, etc ... tout le baratin et toussa. Donc, pas de précautions particulières pour l'installation. Je boote. Pour indiquer où installer je demande "utilisation partition existante", etc. C'est simple. A la fin de la configuration des partitions, j'ai un message d'erreur. Le message d'erreur est quelque chose comme : - "mkswap(hde2) : no such device" Et là j'ai failli mourir... hde2 fait parti d'une partition pour un périphérique raid logique (hde2 + hdg2). J'acquitte le message d'erreur et l'installeur me renvoie au premier panneau pour configurer les partitions. Grosse respiration, je contiens une envie de gueuler dans la nuit (histoire de ne pas me fâcher avec les voisins, l'heure est tardive). Je regarde les autres consoles et je vois : - "mkswap /dev/hde2" Mon périphérique raid est salopé, la soirée commence bien... Je fais "fdisk -l /dev/hde" et j'ai : _/dev/hde2 2432 9925 60186672 fd Linux raid autodetect_ "Linux raid autodetect" et pas "swap". Alors pourquoi ce mkswap ? Je retourne dans l'installeur et demande "partitionnement manuel". Et là je vois que drak_je_ne_sais_pas_quoi voit /dev/hde2 comme une partition swap. Donc mkswap est réalisé et réussi (normal, il n'y a pas de contrôle). swapon plante (heureusement) car swapon vérifie le type de la partition. hde2 n'est pas une partition swap, par contre la partition hda2 est une partition swap. L'installeur doit se mélanger les crayons. En fait j'ai trois partitions swap : hda2 hde3 hdg3. => Reset. Dans mon malheur, j'ai de la change car hde2 est la seconde partition du périphérique raid et j'ai donc un superblock de sûr (celui sur le block 0 du périphérique raid). Donc e2fsck doit se lancer sans douleur (c-à-d ne pas planter au bout de 0,001 milli-seconde) . Imaginez un "newbi" si le superblock 0 est pourri... Je reboote mon système mais pas sur la partition raid qui a été salopée (histoire de ne pas aggraver la situation). $ e2fsck -n -f /dev/md0 : _ e2fsck 1.35 (28-Feb-2004) big_fs contains a file system with errors, check forced. Pass 1: Checking inodes, blocks, and sizes Inode 7 has illegal block(s). Clear? no Illegal block #33801 (1465057280) in inode 7. IGNORED. Illegal block #33802 (1347637313) in inode 7. IGNORED. Illegal block #33803 (843400001) in inode 7. IGNORED. Inode 7, i_blocks is 122888, should be 122904. Fix? no_ J'ai de la chance il n'y a pas grand chose de cassé. Il faut que je regarde si mkswap n'a pas bousillé d'autres trucs mais pas visible à e2fsck. Je me tapes le source de mkswap. mkswap ne fait pas grand chose. Il écrit seulement sur le premier block. Un petit coup de debugfs pour voir par qui est utilisé le block 32 de la partition raid (c'est le block 0 de hde2, c'est claire ?). Le block écrasé par mkswap c'est utilisé par le inode 7 qui n'est pas inutilisé. Bref, pas de dégât, je peux faire un e2fsck les yeux fermés. Pour des raisons évidentes, je n'ai pas envi de confirmer ce bug... En faisant un coup de google je n'ai trouvé d'autres personnes qui ont vécu ce problème. Conclusion : même quand vous testez une distribution "rock solid", débranchez vos plus importants disques. PS : oui oui, le md5sum des iso est bon.