SSD moribundo encontrado por LSPCI pero no por LSBLK: ¿cómo montarlo?

SSD moribundo encontrado por LSPCI pero no por LSBLK: ¿cómo montarlo?

Planteamiento del problema

Mi SSD claramente se está muriendo y quiero hacer algunas cosas antes de una RMA.

Observaciones

Cuando inicio, UEFI detecta la unidad como presente. El arranque se bloquea durante unos 60 segundos mientras se agotan los intentos de montar la unidad. De dmseg:

[    2.845959] usb 1-4: SerialNumber: 01.00.00
[   62.536052] nvme nvme1: I/O 25 QID 0 timeout, disable controller
[   62.644219] nvme nvme1: Device shutdown incomplete; abort shutdown
[   62.660279] nvme nvme1: Removing after probe failure status: -4
[   62.677854] r8169 0000:02:00.0 enp2s0: renamed from eth0
[   62.683678] usb-storage 2-1:1.0: USB Mass Storage device detected

Puedo encontrar el disco con lspci:

$ lspci | grep memory
03:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd Device a80c
05:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983

así como la unidad NVMe en funcionamiento. Sin embargo, no puedo encontrarla a través de lsblk, fdisko similar:

$ lsblk
NAME                   MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
loop0                    7:0    0     4K  1 loop  /snap/bare/5
loop1                    7:1    0 148.4M  1 loop  /snap/chromium/2295
loop2                    7:2    0    62M  1 loop  /snap/core20/1587
loop3                    7:3    0  63.3M  1 loop  /snap/core20/1778
loop4                    7:4    0    55M  1 loop  /snap/cups/872
loop5                    7:5    0 163.3M  1 loop  /snap/firefox/1635
loop6                    7:6    0 400.8M  1 loop  /snap/gnome-3-38-2004/112
loop7                    7:7    0 346.3M  1 loop  /snap/gnome-3-38-2004/119
loop8                    7:8    0  91.7M  1 loop  /snap/gtk-common-themes/1535
loop9                    7:9    0  49.8M  1 loop  /snap/snapd/17950
sda                      8:0    1     0B  0 disk  
nvme0n1                259:0    0 931.5G  0 disk  
├─nvme0n1p1            259:1    0   512M  0 part  /boot/efi
├─nvme0n1p2            259:2    0   1.7G  0 part  /boot
└─nvme0n1p3            259:3    0 929.3G  0 part  
  └─nvme0n1p3_crypt    253:0    0 929.3G  0 crypt 
    ├─vgkubuntu-root   253:1    0 927.4G  0 lvm   /
    └─vgkubuntu-swap_1 253:2    0   1.9G  0 lvm   [SWAP]

Esto significa que no tengo puntos de montaje. No sé si tengo suficiente a qué agarrarme fsck.

Otros intentos fallidos

  • Si intento arrancar solo desde la unidad agonizante, me envían de regreso al BIOS, ya que no hay suficiente sistema de archivos disponible para lograrlo initramfs.
  • Usar un adaptador USB para NVMe no funciona. El dongle intenta conectarse durante aproximadamente 60 segundos antes de darse por vencido. El dispositivo NO se encuentra en la lspcilista.
  • La conexión del USB a una caja de Windows también falla, pero Windows detecta que hay una unidad de 0 bytes conectada en ese punto.
  • Horneé el disco por si acaso la soldadura estaba suelta, pero nada cambió.

La pregunta

¿Qué puedo hacer para montar temporalmente esta unidad el tiempo suficiente para extraer algunos archivos? Mi copia de seguridad tiene una semana de desactualización y me gustaría recuperar esa semana de datos. ¿Puedo forzar el montaje desde algo que no sea un /dev/camino?

EDITAR - Nuevas observaciones

Actualmente he montado la unidad con el soporte USB, pero la unidad tiene 0 bytes. De dmesg:

[ 5748.864308] usb 3-1.3.2: new high-speed USB device number 8 using xhci_hcd
[ 5748.979686] usb 3-1.3.2: New USB device found, idVendor=0bda, idProduct=9210, bcdDevice=20.01
[ 5748.979692] usb 3-1.3.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 5748.979694] usb 3-1.3.2: Product: RTL9210
[ 5748.979695] usb 3-1.3.2: Manufacturer: Realtek
[ 5748.979696] usb 3-1.3.2: SerialNumber: 012345678904
[ 5748.982535] usb-storage 3-1.3.2:1.0: USB Mass Storage device detected
[ 5748.982663] usb-storage 3-1.3.2:1.0: Quirks match for vid 0bda pid 9210: 800000
[ 5748.982687] scsi host1: usb-storage 3-1.3.2:1.0
[ 5749.997797] scsi 1:0:0:0: Direct-Access     Realtek  RTL9210 NVME     1.00 PQ: 0 ANSI: 6
[ 5749.997933] sd 1:0:0:0: Attached scsi generic sg1 type 0
[ 5750.003699] sd 1:0:0:0: [sdb] Read Capacity(10) failed: Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[ 5750.003705] sd 1:0:0:0: [sdb] Sense Key : Illegal Request [current] 
[ 5750.003707] sd 1:0:0:0: [sdb] Add. Sense: Invalid command operation code
[ 5750.003710] sd 1:0:0:0: [sdb] 0 512-byte logical blocks: (0 B/0 B)
[ 5750.003712] sd 1:0:0:0: [sdb] 0-byte physical blocks
[ 5750.005449] sd 1:0:0:0: [sdb] Test WP failed, assume Write Enabled
[ 5750.007179] sd 1:0:0:0: [sdb] Asking for cache data failed
[ 5750.007182] sd 1:0:0:0: [sdb] Assuming drive cache: write through
[ 5750.013190] sd 1:0:0:0: [sdb] Read Capacity(10) failed: Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[ 5750.013196] sd 1:0:0:0: [sdb] Sense Key : Illegal Request [current] 
[ 5750.013198] sd 1:0:0:0: [sdb] Add. Sense: Invalid command operation code
[ 5750.016690] sd 1:0:0:0: [sdb] Attached SCSI disk

Intentos de leer los datos SMART:

$ sudo smartctl /dev/sdb -a
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.15.0-58-generic] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

Read NVMe Identify Controller failed: scsi error unsupported scsi opcode

y

$ sudo smartctl /dev/sdb -d scsi -a
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.15.0-58-generic] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               Realtek
Product:              RTL9210 NVME
Revision:             1.00
Compliance:           SPC-4
LU is fully provisioned
Logical Unit id:      0x3001237923792379
Serial number:        0000000000000000
Device type:          disk
Local Time is:        Mon Jan 30 20:41:09 2023 CST
SMART support is:     Unavailable - device lacks SMART capability.

=== START OF READ SMART DATA SECTION ===
Current Drive Temperature:     0 C
Drive Trip Temperature:        0 C

Error Counter logging not supported

Device does not support Self Test logging

Sugerimos que sólo se monte el puerto SCSI del chipset RTL9210 en lugar de la unidad propiamente dicha.

Según lsblk, el variador está montado en /dev/sdb:

NAME                   MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
[...]
sdb                      8:16   0     0B  0 disk

Las comprobaciones de sistemas de archivos no son útiles:

$ sudo dumpe2fs /dev/sdb
dumpe2fs 1.46.5 (30-Dec-2021)
dumpe2fs: Invalid argument while trying to open /dev/sdb
Couldn't find valid filesystem superblock.
$ sudo fsck /dev/sdb
fsck from util-linux 2.37.2
e2fsck 1.46.5 (30-Dec-2021)
fsck.ext2: Invalid argument while trying to open /dev/sdb

The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem.  If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>
 or
    e2fsck -b 32768 <device>

Tampoco puedo utilizar el mkfstruco para adivinar dónde debería estar el siguiente superbloque:

$ sudo mkfs.ext4 -n /dev/sdb
mke2fs 1.46.5 (30-Dec-2021)
mkfs.ext4: Device size reported to be zero.  Invalid partition specified, or
        partition table wasn't reread after running fdisk, due to
        a modified partition being busy and in use.  You may need to reboot
        to re-read your partition table.

De todos modos, ¿podría flashear el controlador NVMe?

información relacionada