Erreur au boot : "xz-compressed data is corrupt system halted"

Tags: #<Tag:0x00007f2c9928d490>

Bonjour à toutes et tous,

Mon ordinateur principal ne démarre plus. Au boot, il m’affiche cette erreur :
« xz-compressed data is corrupt system halted »

Description de la bête :

C’est un ordinateur Dell Precision Tower 3420. Il est installé avec une Regolith sur Debian Bookworm et tournait magnifiquement bien jusqu’à hier.

Il n’y a pas eu de coupure de courant ou de manipulation particulière.

Je vois deux possibilités :

  • Une panne matérielle
  • Une mise à jour qui coincerait ?

J’ouvre ici un sujet pour écrire mes investigations (ça peut aider d’autres personnes un jour). Si vous avez des idées de choses à tester, n’hésitez pas ! :slight_smile:

Première investigation : Démarrage avec un autre noyau

Le noyau actuel est le 6.1.0-28-amd64

Au démarrage, on peut choisir de démarrer « normalement » ou de choisir une option avancée. J’ai essayé de démarrer avec le 6.1.0-28-amd64 en mode recovery. Ça n’a pas marché.

J’ai ensuite essayé de démarrer avec le 6.1.0-27-amd64 et là, ça marche! :star_struck:

Et maintenant, qu’est-ce qu’on fait ? Je dois attendre qu’il y ait un 6.1.0-29 qui sorte ? Où est-ce que je peux signaler le problème que je rencontre ? En attendant, est-ce que je peux « fixer » le démarrage avec le noyau 6.1.0-27 ? (Il faut que ça « juste marche » pour les autres membres de la famille.)

Est-ce que c’est le noyau 6.1.0-28-amd64 qui pose problème ou le fichier sur le disque qui contient l’image du noyau?

Pistes d’analyses complémentaires

  • test complet du disque
  • boot sur le même noyau via un autre suppor (clé usb, cd, autre partition)

Es-tu sur de ne pas avoir une erreur matérielle? comme un problème de détection de la DRAM par ta carte mère?

Tu n’as pas toucher au hardware ni au BIOS récemment?

As-tu oublié de préciser si tu venais de changer de noyau avant reboot ? Ou pas.
Tu peux essayer l’option nosmp du noyau:

nosmp   [SMP,EARLY] Tells an SMP kernel to act as a UP kernel,
         and disable the IO APIC.

Je viens de lire vos réponses et je suis pas sûr de comprendre concrètement ce que je peux tester et comment le faire. :sweat_smile:

@PmGs : Pour le test complet du disques, tu penses à smartctl ?

Comment je peux faire pour booter sur le même noyau via un autre support, concrètement ?

@Zargos : L’ordinateur semble très bien fonctionner sur le noyau 6.1.0-27, c’est tout ce que je peux dire pour l’instant. Je n’ai pas creusé plus loin. Si tu as des pistes de choses à vérifier/endroits à regarder, je suis curieux de creuser.

@Verner : Je n’ai rien fait de particulier pour changer de noyau. Juste les mises à jours classiques. Je ne saurais pas dire s’il y a eu une mise à jour du noyau récemment…

Où est-ce que j’ajoute cette option nosmp ?

et e2fsck qui sont complémentaires.

En multi-boot* ou via un live cd/usb.
*idéalement via un disque déjà partitionné (ce que je fais toujours) voire un disque usb externe pour un essai pontuel.

Pour juste un essai, au boot, tu arrêtes grub, et tu édites la ligne linux du noyau 6.1.0-28-amd64 en ajoutant nosmp à la fin de la ligne.

@Verner : J’ai tenté d’ajouter nosmp mais ça plante avec la même erreur.

Photo :
IMG_20241222_130618

Je regarde pour les autres trucs à tester.

@PmGs : J’ai démarré l’ordi avec le noyau 2.1.0-27, j’ai installé smartmontools :

$ sudo apt install smartmontools 

J’ai repéré le disque avec :

$ sudo fdisk -l
Disque /dev/sda : 447,13 GiB, 480103981056 octets, 937703088 secteurs
Modèle de disque : SanDisk SSD PLUS
(...)

Et j’ai lancé smartctl :

$ sudo smartctl -a /dev/sda
smartctl 7.3 2022-02-28 r5338 [x86_64-linux-6.1.0-27-amd64] (local build)
Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Marvell based SanDisk SSDs
Device Model:     SanDisk SSD PLUS 480GB
Serial Number:    193613804505
LU WWN Device Id: 5 001b44 8b8f1d9e3
Firmware Version: UG2204RL
User Capacity:    480.103.981.056 bytes [480 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Form Factor:      2.5 inches
TRIM Command:     Available, deterministic
Device is:        In smartctl database 7.3/5319
ATA Version is:   ACS-3, ACS-2 T13/2015-D revision 3
SATA Version is:  SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Sun Dec 22 13:29:31 2024 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00)	Offline data collection activity
					was never started.
					Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0)	The previous self-test routine completed
					without error or no self-test has ever 
					been run.
Total time to complete Offline 
data collection: 		(  120) seconds.
Offline data collection
capabilities: 			 (0x11) SMART execute Offline immediate.
					No Auto Offline data collection support.
					Suspend Offline collection upon new
					command.
					No Offline surface scan supported.
					Self-test supported.
					No Conveyance Self-test supported.
					No Selective Self-test supported.
SMART capabilities:            (0x0003)	Saves SMART data before entering
					power-saving mode.
					Supports SMART auto save timer.
Error logging capability:        (0x01)	Error logging supported.
					General Purpose Logging supported.
Short self-test routine 
recommended polling time: 	 (   2) minutes.
Extended self-test routine
recommended polling time: 	 (  83) minutes.

SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0032   100   100   000    Old_age   Always       -       4
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       16245
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       1118
165 Total_Write/Erase_Count 0x0032   100   100   000    Old_age   Always       -       1775
166 Min_W/E_Cycle           0x0032   100   100   ---    Old_age   Always       -       12
167 Min_Bad_Block/Die       0x0032   100   100   ---    Old_age   Always       -       25
168 Maximum_Erase_Cycle     0x0032   100   100   ---    Old_age   Always       -       28
169 Total_Bad_Block         0x0032   100   100   ---    Old_age   Always       -       311
170 Unknown_Marvell_Attr    0x0032   100   100   ---    Old_age   Always       -       4
171 Program_Fail_Count      0x0032   100   100   000    Old_age   Always       -       0
172 Erase_Fail_Count        0x0032   100   100   000    Old_age   Always       -       0
173 Avg_Write/Erase_Count   0x0032   100   100   000    Old_age   Always       -       12
174 Unexpect_Power_Loss_Ct  0x0032   100   100   000    Old_age   Always       -       119
184 End-to-End_Error        0x0032   100   100   ---    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   100   ---    Old_age   Always       -       0
194 Temperature_Celsius     0x0022   069   052   000    Old_age   Always       -       31 (Min/Max 10/52)
199 SATA_CRC_Error          0x0032   100   100   ---    Old_age   Always       -       0
230 Perc_Write/Erase_Count  0x0032   100   100   000    Old_age   Always       -       1287 552 1287
232 Perc_Avail_Resrvd_Space 0x0033   100   100   005    Pre-fail  Always       -       98
233 Total_NAND_Writes_GiB   0x0032   100   100   ---    Old_age   Always       -       6315
234 Perc_Write/Erase_Ct_BC  0x0032   100   100   000    Old_age   Always       -       21970
241 Total_Writes_GiB        0x0030   100   100   000    Old_age   Offline      -       7570
242 Total_Reads_GiB         0x0030   100   100   000    Old_age   Offline      -       12980
244 Thermal_Throttle        0x0032   000   100   ---    Old_age   Always       -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%         5         -
# 2  Short offline       Completed without error       00%         1         -
# 3  Short offline       Completed without error       00%         1         -
# 4  Short offline       Self-test routine in progress 80%         1         -
# 5  Short offline       Self-test routine in progress 90%         1         -

Selective Self-tests/Logging not supported

« No errors logged », j’imagine que c’est plutôt bon signe.

J’allais lancer e2fsck mais en cherchant à comprendre quelle commande utiliser, j’ai trouvé cet avertissement sur linode.com :

Important
Unmount the target disk first. You risk corrupting your file system and losing data if you run fsck on an active disk.

J’imagine qu’il vaut mieux booter sur une clé usb en live pour tester du coup. Idéalement avec un noyau 6.1.0-28 pour vérifier si ça boote. :sweat_smile:

J’ai quand même fait un test de la RAM :

$ sudo memtester 1G 1
memtester version 4.6.0 (64-bit)
Copyright (C) 2001-2020 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffffffffffff000
want 1024MB (1073741824 bytes)
got  1024MB (1073741824 bytes), trying mlock ...locked.
Loop 1/1:
  Stuck Address       : ok         
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok         
  Block Sequential    : ok         
  Checkerboard        : ok         
  Bit Spread          : ok         
  Bit Flip            : ok         
  Walking Ones        : ok         
  Walking Zeroes      : ok         
  8-bit Writes        : ok
  16-bit Writes       : ok

Done.

Ça semble OK également.

Le disque NE DOIT PAS être monté, tu peux effectivement booter sur un autre support, avec le même noyau pour faire l’autre test OU choisir le mode « recovery » dans le menu de démarrage qui va te donner accès à un root minimal (donc autre noyau) sans avoir monté le disque.

Il y a pas mal de fichiers compressés avec xz notamment les modules et peut être même l’initrd. On peut envisager une simple erreur sur un de ces fichiers qui empêcherait le boot (impossibilité de charger le module). Personnellement je réinstallerais le noyau concerné, je pense que ça fonctionnera après. Le disque ne donne pas de signe de fatigue (pas de réallocation, pas d’erreurs, pas de bad blocs, pas de fails comptabilisé, bref ça a l’air de rouler).
Si ça se reproduit, il faudra effectivement chercher plus loin.