Bad magic number in superblock

Salut,
J’ai cassé une partition…

J’ai fait un changement ext3 > ext4 ce matin. Ce n’est pas la cause du crach, car tout s’est bien passé, j’ai bien redémarré.

J’ai voulu ensuite déplacer la partition (c’est /usr) avec gparted (je sais…) et le processus s’est arrété avant la fin du déplacement.

Résultat :

[code]# e2fsck /dev/sda5
e2fsck 1.41.12 (17-May-2010)
e2fsck: Superbloc invalide, tentons d’utiliser les blocs de sauvetage…
e2fsck: Bad magic number in super-block lors de la tentative d’ouverture de /dev/sda5

Le superbloc n’a pu être lu ou ne contient pas un système de fichiers
ext2 correct. Si le périphérique est valide et qu’il contient réellement
un système de fichiers ext2 (et non pas de type swap, ufs ou autre),
alors le superbloc est corrompu, et vous pourriez tenter d’exécuter
e2fsck avec un autre superbloc :
e2fsck -b 8193 <périphérique>[/code]

[code]# fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc8239e28

Device Boot Start End Blocks Id System
/dev/sda1 * 1 1502 12064783+ 83 Linux
/dev/sda2 1503 60801 476319217+ 5 Extended
/dev/sda5 1503 3033 12289725 83 Linux
/dev/sda6 8261 8579 2562336 83 Linux
/dev/sda7 8580 60801 419473183+ 83 Linux
/dev/sda8 7496 8260 6144831 82 Linux swap / Solaris
/dev/sda9 4428 7495 24643678+ 83 Linux

Partition table entries are not in disk order
[/code]

La partition devait être déplacée de 8Mo vers la gauche et être agrandie.
Elle est bien déplacée (selon gparted) mais n’a pas été agrandie.
Elle n’est plus reconnue.

Je crois qu’avec testdisk je dois pouvoir récupérer ça, mais je ne sais pas comment faire…

Si vous aviez un petit mode d’emploi, ce serait cool, je n’ai pas envie de me retaper un installation à cause de /usr…
En fait je dois pouvoir juste changer ça :

/dev/sda5 1503 3033 12289725 83 Linux

Le 1503 n’est pas bon, il faudrait que ça commence 8Mo plus loin…

C’est plutôt fsck.ext4 /dev/sda5 non?

Salut,

Sachant que sda1 va jusqu’en 1502 sda2 ne peut commencer avant 1503 :slightly_smiling:

J’ai rien dit, au temps pour moi, mais c’est le àgauche qui m’a trompé :slightly_smiling:

Oui,
J’avais fini par trouver la commande, mais pas trop de succès apparement…

[code]root@sidux:~# fsck.ext4 /dev/sda5
e2fsck 1.41.12 (17-May-2010)
fsck.ext4: Superbloc invalide, tentons d’utiliser les blocs de sauvetage…
fsck.ext4: Bad magic number in super-block lors de la tentative d’ouverture de /dev/sda5

Le superbloc n’a pu être lu ou ne contient pas un système de fichiers
ext2 correct. Si le périphérique est valide et qu’il contient réellement
un système de fichiers ext2 (et non pas de type swap, ufs ou autre),
alors le superbloc est corrompu, et vous pourriez tenter d’exécuter
e2fsck avec un autre superbloc :
e2fsck -b 8193 <périphérique>

root@sidux:~# mke2fs -n /dev/sda5
mke2fs 1.41.12 (17-May-2010)
Étiquette de système de fichiers=
Type de système d’exploitation : Linux
Taille de bloc=4096 (log=2)
Taille de fragment=4096 (log=2)
« Stride » = 0 blocs, « Stripe width » = 0 blocs
768544 i-noeuds, 3072431 blocs
153621 blocs (5.00%) réservés pour le super utilisateur
Premier bloc de données=0
Nombre maximum de blocs du système de fichiers=3149922304
94 groupes de blocs
32768 blocs par groupe, 32768 fragments par groupe
8176 i-noeuds par groupe
Superblocs de secours stockés sur les blocs :
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

root@sidux:~# e2fsck -b 32768 /dev/sda5
e2fsck 1.41.12 (17-May-2010)
e2fsck: Bad magic number in super-block lors de la tentative d’ouverture de /dev/sda5

Le superbloc n’a pu être lu ou ne contient pas un système de fichiers
ext2 correct. Si le périphérique est valide et qu’il contient réellement
un système de fichiers ext2 (et non pas de type swap, ufs ou autre),
alors le superbloc est corrompu, et vous pourriez tenter d’exécuter
e2fsck avec un autre superbloc :
e2fsck -b 8193 <périphérique>
[/code]
J’ai essayé les autres superblocks de “secours” pas mieux…

Essaye 4427 à la place de 3033, tu es sur de ton 8M, ça n’est pas 8G par hasard soit 1000 blocs, ça serait dans ce cas 1603 au lieu de 1503 sinon lance testdisk pour voir ce qu’il trouve comme table de partition (tu le lances et tu dis de chercher).

Re,
D’abord merci :blush:

[code]Disk /dev/sda - 500 GB / 465 GiB - CHS 60801 255 63
Current partition structure:
Partition Start End Size in sectors

1 * Linux 0 1 1 1501 254 63 24129567
2 E extended 1502 0 1 60800 254 63 952638435
No EXT2, JFS, Reiser, cramfs or XFS marker
5 L Linux 1502 1 1 3032 0 63 24579450
5 L Linux 1502 1 1 3032 0 63 24579450
X extended 8260 0 1 8578 254 63 5124735
6 L Linux 8260 1 1 8578 254 63 5124672
X extended 8579 0 1 60800 254 63 838946430
7 L Linux 8579 1 1 60800 254 63 838946367
X extended 7495 0 1 8259 254 63 12289725
8 L Linux Swap 7495 1 1 8259 254 63 12289662
X extended 4427 0 1 7494 254 63 49287420
[/code]
Je viens de lancer un “quicksearch”

Je me demandais… Puisque c’est juste /usr, il ne serait pas possible de récuperer le /usr d’une autre Lenny et de refaire une nouvelle partition ? Trop de risques de différences ?

Edit: Oui, je suis sur de mon 8Mo. C’est pour ça que j’ai déplacé, ça m’énervait d’avoir ce “trou”…

Le quicksearch :

[code]Disk /dev/sda - 500 GB / 465 GiB - CHS 60801 255 63
Partition Start End Size in sectors

  • Linux 0 1 1 1501 254 63 24129567
    P Linux 1503 0 1 2110 254 63 9767520
    L Linux 2284 1 1 2332 254 63 787122
    L Linux 2333 1 1 3224 254 63 14329917
    L Linux 4427 1 1 7494 254 63 49287357
    L Linux Swap 7495 1 1 8259 254 63 12289662
    L Linux 8260 1 1 8308 254 63 787122
    L Linux 8388 1 1 8436 254 63 787122
    L Linux 8579 1 1 60800 254 63 838946367
    [/code]

C’est très facile de refaire ton /usr surtout si tu as de la place quezlque part: Voilà comment procéder:

  1. Tu récupères les paquets installés sur ta machine. Tu dois les avoir dans /var/cache/apt/archives si tu n’as pas fait de clean. Mais tu en as peux être de redonadant.

  2. Ensuite si ces paquets sont dans /repertoire, tu te trouves un gros disque sous /tempo et tu fais

[code]# cd /tempo

ls /repertoire/*.deb | awk ‘{print “dpkg-deb -x “$1” .”}’ | sh[/code]

et tu vas prendre un café (déca si tu es nerveux)

  1. tu reviens, tu montes ton /usr correctement et tu recopies le’ contenu de /tempo/usr dans /usr

En effet, il n’y pas de configuration /usr, les seules chose pouvant coincés sont

  • Les paquets python (les .pyc sont non crées)
  • Emacs (compilation)

Tu peux faire un apt-get install --reinstall de ces paquets.

Top!
Merci. Ça pris 5 minutes à peine.
Même pas le temps d’aller m’envoyer un whisky (c’est l’apéro chez moi…).

C’est plus simple.
J’ai essayé avec les valeurs retournées par testdisk, mais sans succès…

Pour info le message “fatal” de gparted :

Pas très explicite. Ça m’arrive quasiment à chaque fois avec gparted depuis quelques temps. Je crois que je vais cesser de l’utiliser… :wink:

Merci. Ce n’est pas résolu, mais contourné avec panache (grace à toi)!

Salut,

[quote]
Edit: Oui, je suis sur de mon 8Mo. C’est pour ça que j’ai déplacé, ça m’énervait d’avoir ce “trou”…[/quote]

Et si maintenant que tout est rentré dans l’ordre tu en faisais autant pour les partitions, moi çà m’énerverait :laughing:

[quote=“ggoodluck47”]Salut,

[quote]
Edit: Oui, je suis sur de mon 8Mo. C’est pour ça que j’ai déplacé, ça m’énervait d’avoir ce “trou”…[/quote]

Et si maintenant que tout est rentré dans l’ordre tu en faisais autant pour les partitions, moi çà m’énerverait :laughing:[/quote]

:mrgreen: :mrgreen: :mrgreen:

Je ne touche plus à rien…

Je suis en train de me retaper l’installation de toutes les bibliothèques et autres programmes qui déconnent… J’en ai pour la soirée, mais c’est plus simple que de chercher des superblocks à la noix…

dpkg -l | grep “^ii” | awk ‘{print "apt-get install --reinstal "$2}’ | sh

1 J'aime

Normal, le noyau ne recharge pas la table de partition d’un disque si des partitions de ce disque sont actuellement montées.

Re,

Elle retourne quoi cette commande en principe ?

Normal, le noyau ne recharge pas la table de partition d’un disque si des partitions de ce disque sont actuellement montées.[/quote]
C’est bien ça le problème avec ce foutu gparted… A chaque opération il remonte toutes les partitions du disque, et ça se termine par une erreur. Je n’ai pas trouvé d’option pour qu’il ne monte pas automatiquement les partitions.

La commande proposée par François extrait la liste des paquets installés et force leur réinstallation. Je trouve que c’est bien plus fiable que d’extraire les fichiers des .deb qui sont encore dans le cache d’APT. Ne pas oublier que les paquets installés depuis un support “local” (disque local ou montage réseau, CD-ROM) ne sont pas copiés dans le cache APT, seuls ceux téléchargés depuis un miroir le sont.

Merci,

Il me sort ça…

[...] E: L'option --reinstal de la ligne de commande n'est pas reconnue [...]

Vu…
il manque un “l” à reinstal… :wink:

Oups

Non, quand même! T’exagère…

C’est donc surtout l’occasion de te remercier :smiley:
Ce sujet est maintenant dans mes favoris, c’est plus qu’indispensable d’avoir ce genre de commandes sous la main en cas de pépin.

J’aurais trouvé plus élégant de récupérer ma partition, mais faute de merles…

Merci de m’avoir fait gagner autant de temps! :038