总结:
- 我把装有 SSD 的笔记本电脑掉在地上
- 该驱动器不再可安装或无法进行 fsck(可怕的输入/输出错误)
- 但是,磁盘仍然完好无损/可以正常工作,可以读取分区表并检查加密密码
- 如果通过 USB 外部连接,驱动器将完全不可见,根本无法识别
- 发生了什么?
- 有什么办法可以解决这个问题吗?
详细信息:
我有一台 2012 年的旧 ThinkPad T420。我运行的是 Ubuntu 20.04,主分区已加密。几天前我把它摔了。它立即关机,并且无法再启动到主驱动器。
主启动驱动器是 SSD(三星 870 EVO),它通过托架连接到笔记本电脑,该托架可使驱动器适应光驱托架。
虽然 SSD 或适配器没有明显损坏,但我的第一个想法是损坏的是连接器/适配器,或者类似的东西已经损坏或松动。因此,我从笔记本电脑中取出 SSD,并将其连接到SATA 到 USB 适配器。这完全失败了。我将其插入几台不同的计算机,驱动器似乎完全不可见(没有新设备/dev
,没有条目lsusb
)。(当我用不同的硬盘测试它时,SATA 到 USB 适配器本身工作正常。)
但是,如果我将 SSD 放回其原始位置/托盘并通过 USB 启动到 Linux,则驱动器并非完全不可见,但似乎也无法实际使用。
我可以看到该驱动器的分区表:
ubuntu@ubuntu:~$ sudo fdisk -l /dev/sda
Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: Samsung SSD 870
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe62c1c13
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1050623 1048576 512M b W95 FAT32
/dev/sda2 1052670 976771071 975718402 465.3G 5 Extended
/dev/sda5 1052672 2549759 1497088 731M 83 Linux
/dev/sda6 2551808 976771071 974219264 464.5G 83 Linux
该驱动器已加密,因此我不能直接安装它,而是需要先经过一些繁琐的程序:
ubuntu@ubuntu:~$ sudo cryptsetup open /dev/sda6 ssd
Enter passphrase for /dev/sda6:
如果我输入了错误的密码,它会拒绝我:
Warning: keyslot operation could fail as it requires more than available memory.
No key available with this passphrase.
但如果我输入正确的密码,它就会让我进入,并且设备/dev/mapper/ssd
也会按预期出现。
现在还有一步繁琐的程序。命令是sudo vgchange -ay
,它应该会导致设备/dev/vgubuntu/root
出现。当我第一次尝试时,这个命令有效,但目前,它不再起作用(随着时间的推移,情况越来越糟,见下文)。
此时,您应该能够挂载/dev/vgubuntu/root
,但mount
会因一般的“输入/输出错误”而失败(目前没有确切的错误)。fsck
还会因“输入/输出错误”和第二个错误(例如“未找到超级块”)而失败。
目前我正在运行ddrescue
以查看可以恢复什么:
sudo ddrescue --idirect /dev/sda /media/ubuntu/whatever/rescue.img /media/ubuntu/whatever/rescue.log
它确实似乎在做一些事情,但是进展非常缓慢而且我有点怀疑它是否真的会成功。
另外需要注意的是:驱动器插入的时间越长,问题似乎就越严重,错误也越多。例如,最初你可以使用sudo fdisk -l /dev/sda
上面所示的命令读取分区表。但是,最终它将停止工作:
ubuntu@ubuntu:~$ sudo fdisk -l /dev/sda
fdisk: cannot open /dev/sda: Invalid argument
但是,如果您弹出驱动器并再次放回去,它将再次开始工作。
磁盘出了什么问题?有什么办法可以恢复它吗?