Bonjour,
Mon SSD vient de me lâcher :(
Hier durant toute la journée, les applications se plaignaient qu’il n’y avait plus d’espace disponible, alors que df
ou encore btrfs fi df /
étaient tout bons (20–30 Go disponibles sur 110 et quelques). Je pense entre autres à un problème avec BTRFS, je lance des commandes du style (trouvées sur le net à l’arrache et appliquées après vérification sommaire des pages man correspondantes) :
sudo mount -o remount,clear_cache /
btrfs balance blabla
La dernière était une très mauvaise idée car un problème d’accès disque a définitivement mis en vrac mon système de fichiers : le système remonte le bazar en lecture seule, et moi comme un couillon je ne fais pas de sauvegarde mais redémarre l’ordinateur.
Impossible de booter, car impossible de monter la partition racine. Pas cool du tout :(
Bon heureusement j’ai une sauvegarde qui date de quelques jours. Mais j’aimerais tout de même récupérer quelques fichiers texte (dont je connais le chemin grâce à la sauvegarde) et un dirmail
géré par Dovecot.
Depuis ma Raspberry toute fraîche comme base de repli (reçue hier, il faut avoir un pot monstrueux :) ) je tente vaguement de récupérer quelques fichiers modifiés depuis ma dernière sauvegarde.
$ sudo mount -t btrfs -o ro /dev/sda2 /mnt/dd
mount: wrong fs type, bad option, bad superblock on /dev/sda2,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
$ dmesg
... blabla ...
[ 3938.534117] btrfs: device fsid af5e0d31-64bc-4153-b504-c183bef7a2df devid 1 transid 2120931 /dev/sda2
[ 3938.557216] btrfs bad tree block start 0 25806331904
[ 3938.559128] btrfs bad tree block start 0 25806331904
[ 3938.597924] btrfs: open_ctree failed
$ sudo btrfsck /dev/sda2
Check tree block failed, want=25806331904, have=0
Check tree block failed, want=25806331904, have=0
Check tree block failed, want=25806331904, have=0
Check tree block failed, want=25806331904, have=0
Check tree block failed, want=25806331904, have=0
read block failed check_tree_block
Couldn't setup extent tree
Critical roots corrupted, unable to fsck the FS
$ sudo btrfs-restore /dev/sda2 /backup/restore/
Check tree block failed, want=25806331904, have=0
Check tree block failed, want=25806331904, have=0
Check tree block failed, want=25806331904, have=0
Check tree block failed, want=25806331904, have=0
Check tree block failed, want=25806331904, have=0
read block failed check_tree_block
Couldn't setup extent tree
btrfs-restore: extent_io.c:602: free_extent_buffer: Assertion `!(eb->refs < 0)' failed.
C’est la merde comme vous pouvez le constater.
Quelqu’un a une idée, pour tenter une récupération de tout ce qui pourrait être récupérable ? Pour du texte, y’a moyen d’attaquer directement le périphérique bloc /dev/sda comme une brute ?
Première question subsidiaire : 2–3 ans de durée de vie pour un SSD, je trouve ça court, c’est ce que vous constatez aussi ?
Seconde question subsidiaire : avant de chercher une résolution logicielle à mon problème d’espace insuffisant, j’avais tout de même tenté de vérifier qu’il ne s’agissait pas d’un problème matériel, pourtant la commande smartctl
ne m’indiquait rien de bien concluant, et dmesg
ne m’indiquait rien à propos du disque. Y’a moyen de savoir quand un disque SSD va vous lâcher ? (à priori je suppose que le contrôleur interne a viré pas mal de secteurs défectueux, mais ça aurait été cool qu’il me prévienne…)
Pour info, mon disque a trois partitions, sdx1 pour le boot, sdx3 pour le swap, sdx2 pour le système. La partition sdx2 est en btrfs avec deux sous-volume : root qui est monté comme racine de mon système de fichier /, et home qui est monté comme /home. Notez que sdx1 n’a aucun problème, mais cette partition n’a quasiment jamais travaillé durant toute la durée de vie du disque (remplacement du noyau à chaque nouvelle version), normal qu’elle soit encore saine.
PS : c’est que je l’ai pas mal stressé le pauvre, durant toute la semaine, pour préparer le système sur la carte Raspberry (ceci expliquant cela), avec pas mal de compilations croisées (que je fais habituellement sur un tmpfs) et l’extraction d’un système Gentoo complet sur le SSD, à plusieurs reprises en plus. C’est d’ailleurs l’extraction des tar gentoo (stage3-xxx.tar.bz2 et portage-latest.tar.bz2 pour ceux à qui ça cause) qui m’a la première révélé un no space left on device
ou un truc du genre).
# Smart
Posté par Renault (site web personnel) . Évalué à 4.
Arg horreur ! Un SSD n'est pas un disque ou assimilable. ;)
C'est court oui, maintenant ils arrivent à faire du 5 ans et à les garantir sur une telle durée. Mais il est vrai que les progrès dans ce domaine sont assez récents. Est-ce que tu avais des options sur le système de fichiers pour limiter les accès ? Est-ce que ton modèle était haut ou bas de gamme ? Est-ce que le constructeur était réputé ? Tout ceci peut influencer.
Après ce dont tu décris est étonnant, tu n'as pas eu un avertissement des données smart comme quoi ton SSD allait te lâcher ou avait des problèmes majeurs ? Tu n'as pas moyen de vérifier ce qu'il dit sur son état actuel ?
[^] # Re: Smart
Posté par Pierre Roc . Évalué à 1.
Fort heureusement j’ai modifié mon post initial pour enlever cet horrible « disque ». ;) Et j’ai ajouté un « PS » qui précise un peu mon usage du disque (je faisais pas trop gaffe aux accès en écriture ces derniers temps, et cette semaine il s’en est pris plein la gueule).
C’est un Intel SSD 320 Series, 2.5", 120 GB acheté environ 120 €.
Malheureusement, smart à travers un accès USB me renvoie une erreur, faut que je creuse, mais là j’ai pas le temps. Je posterai plus tard.
[^] # Re: Smart
Posté par TheBreton . Évalué à 1.
Pour avoir des infos sur l'état du ssd il faudrait le brancher sur un pc win et lancé l'utilitaire intel ,désolé je ne l'ait pas trouvé pour linux.
Mais je ne pense pas que le disque en lui même soit mort, je pense que le fs l'est par contre, peut être une situation ou l'overprovisionning n'est plus suffisant (ou le trim n'était pas actif/ou en cours et les commandes effectué ont aggravées la crise )(ou le firmware du ssd n'était pas a jours et tu est tombé sur un bug).
[^] # Re: Smart
Posté par Marotte ⛧ . Évalué à 2.
(pas de t, c'est je le sujet)
Trouvé (mais pas testé…)
http://www.intel.com/support/ssdc/hpssd/sb/CS-032995.htm
https://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=18363&lang=eng&wapkw=ssd+firmware+update
C'est une image ISO de 32MB, j'imagine qu'il faut créer un média bootable avec…
[^] # Re: Smart
Posté par Pierre Roc . Évalué à 1.
J’avais lancé trois tests avant de perdre mon
disqueSSD, deuxshort
et unlong
si je ne m’abuse (mais tous prenaient 1′). Si y’a besoin d’une autre commande SMART, je peux l’exécuter sans problèmes.# no space left on device
Posté par xcomcmdr . Évalué à 2.
As tu essayé fstrim ? Le TRIM était activé dans les options de montage ?
"Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)
[^] # Re: no space left on device
Posté par Pierre Roc . Évalué à 1. Dernière modification le 29 août 2014 à 18:19.
J’avais ça dans mon fstab :
Je ne connaissais pas du tout fstrim, mais en cherchant un peu sur le net je suis tombé sur ça :
Donc si j’ai bien compris mon option “discard”, même si elle n’est pas optimale (et je me demande si elle est réellement utile, vu que l’option ssd juste avant doit l’activer par défaut selon toute vraisemblance), fait le job correctement.
[^] # Re: no space left on device
Posté par TheBreton . Évalué à 1.
D’après le wiki de btrfs
# Photorec
Posté par Marotte ⛧ . Évalué à 6. Dernière modification le 29 août 2014 à 10:56.
PhotoRec ?
Avant toute chose le mieux serait de faire un dump de ton disque (dd conv=noerror if=/dev/sda of=/quelque/part/ou/il/y/a/de/la/place/disk.img), tu pourras ensuite lancer photorec sur ce dump. Au cas où ton SSD continuerait à se dégrader…
[^] # Re: Photorec
Posté par Pierre Roc . Évalué à 2. Dernière modification le 29 août 2014 à 14:24.
Oui, c’est ce que je vais faire.
Je comptais acheter un disque dur externe de >=1To parce que ça commence à me manquer. Mes dd actuels sont deux internes à 250 Go que j’utilise avec un espèce de truc bizaroïde qui permet d’enficher tout ce qui a un port SATA et qui a des ports usb, e-sata, firewire au cul (c’est grâce à ce truc que je peux connecter mon SSD interne sur la raspberry).
Au moins ça me permettra de savoir si c’est un problème hard ou soft, je suis convaincu que c’est du hard et que ça a foutu mon fs en vrac, mais je n’exclus pas à priori l’autre hypothèse.
Ce que je vais faire c’est réinstaller un système sur le futur disque USB de 1 To (ça me fait une bonne excuse pour son achat :) ) durant le week-end, y placer aussi l’image de mon ssd pour être tranquille, puis tenter avec ma machine principale de booter sur l’USB tout en enfichant le SSD dans son SATA à elle. Je vais pouvoir poster les logs smartctl sur le forum (j’avoue ne pas trop savoir les lire, les explications sur le web ne sont pas très claires je trouve). Ensuite formatage. Si le
dd
et le formatage se passent bien, qu’on me confirme que les logs smartctl semblent ok, alors je garde mon SSD en priant, sinon c’est le porte-monnaie qui va pleurer (raspberry + disque dur + SSD, c’est la fête !). Bon, y’en a pour le week-end. Merci à toi et aux autres de m’avoir répondu.Après tout ça je pourrai récupérer tranquillement les données les plus récentes du SSD avec photorec.
[^] # Re: Photorec
Posté par jben . Évalué à 4.
Vu les options de montage que tu as posté dans une autre réponse, tes extends sont compressés avec lzo (si ils sont compressibles).
Je pense que photorec ne va pas te permettre de récupérer les fichiers associés à ces extends. Et comme ce sont des fichiers textes que tu veux récupérer, données hautement compressibles, je pense que ça va échouer.
[^] # Re: Photorec
Posté par Pierre Roc . Évalué à 1.
Effectivement j’ai rien pu récupérer :'( Tout le travail de la semaine dernière à refaire.
# c'est pas le disque qui est mort, c'est le FS
Posté par NeoX . Évalué à 5.
les erreurs que tu as disent que c'est les "tree block" de btrfs qui sont foirés, pas le disque en lui meme.
apres je ne connais pas assez btrfs pour te depanner :(
[^] # Re: c'est pas le disque qui est mort, c'est le FS
Posté par Pierre Roc . Évalué à 1.
Il semblerait que vous ayez raison. Je l’utilise depuis quelques jours sans problèmes. Je vais voir à l’usage, en le remplissant à ras-bord, ce que ça va donner.
Un problème de fragmentation pourrait être une explication satisfaisante à mon problème originel, non ? J’aurai du commencer par là en fait…
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.