![使以前加密的硬盘再次正常使用](https://linux22.com/image/886438/%E4%BD%BF%E4%BB%A5%E5%89%8D%E5%8A%A0%E5%AF%86%E7%9A%84%E7%A1%AC%E7%9B%98%E5%86%8D%E6%AC%A1%E6%AD%A3%E5%B8%B8%E4%BD%BF%E7%94%A8.png)
我的旧笔记本电脑昨天早上坏了,但是硬盘仍能运行。
当我哥哥安装 Ubuntu 时,他选择加密文件home
夹。因此,每当我尝试在另一台计算机上使用硬盘时,它都会询问我硬盘密码。我已经问过我哥哥了,但他不知道旧密码在哪里(已经 3 年了)。
我的问题:
有没有办法完全清除硬盘或将其格式化以便可以用于其他安装?
如果这不可能的话,有什么硬件技巧或 BIOS 技巧可以用来解锁驱动器吗?
一些有用的信息:
如果我尝试该命令,sudo mount /dev/sdb /mnt/hd2
它会给出以下错误:
mount: /dev/sdb: can't read superblock
如果我尝试使用以下命令查看分区表sudo fdisk -l /dev/sdb
:
fdisk: cannot open /dev/sdb: Input/output error
我无法确定是否存在任何 BIOS 级别的密码。
该sudo fsck /dev/sdb
命令给出以下输出:
fsck from util-linux 2.28.1
e2fsck 1.43.1 (08-Jun-2016)
fsck.ext2: Attempt to read block from filesystem resulted in short read while trying to open /dev/sdb
Could this be a zero-length partition?
就物理问题而言,如果我插入硬盘,它不会出现任何问题/dev
,也没有咔嗒声,输出dmesg | tail
如下:
[11267.246656] sd 51:0:0:0: [sdb] tag#0 CDB: Read(10) 28 00 00 00 00 02 00 00 02 00
[11267.246659] blk_update_request: critical medium error, dev sdb, sector 2
[11267.246665] Buffer I/O error on dev sdb, logical block 1, async page read
[11267.265418] sd 51:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[11267.265426] sd 51:0:0:0: [sdb] tag#0 Sense Key : Medium Error [current]
[11267.265431] sd 51:0:0:0: [sdb] tag#0 Add. Sense: Unrecovered read error
[11267.265436] sd 51:0:0:0: [sdb] tag#0 CDB: Read(10) 28 00 00 00 00 04 00 00 04 00
[11267.265440] blk_update_request: critical medium error, dev sdb, sector 4
[11267.265445] Buffer I/O error on dev sdb, logical block 2, async page read
[11267.265449] Buffer I/O error on dev sdb, logical block 3, async page read
我认为大多数这些错误与系统无法读取设备的分区表有关,因为它已被加密。
最后,如果有任何区别的话,该驱动器中还有一个 Windows 分区。
如果需要更多信息,我很乐意提供。我还可以说,在这种情况下恢复个人数据不是我的首要任务,它更关系到能否再次使用该驱动器。此外,我对我的英语错误或格式不正确表示歉意。
更新 1
完成后dd
,我遇到了一个奇怪的问题。该磁盘是一个 500GB 驱动器,即使使用 对其进行格式化后,也显示为 2GB gparted
。此外,即使格式化后,当我在 GUI 中显示它时gparted
,它显示如下:
更新2
dd
报告写了2GB,我猜这是引导扇区或类似的东西。
sudo fdisk -l /dev/sdb
输出:
Disk /dev/sdb: 1,9 GiB, 1994428416 bytes, 3895368 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
lsblk /dev/sdb
输出:
lsblk: /dev/sdb: not a block device
sudo parted /dev/sdb print
输出:
Error: /dev/sdb: unrecognised disk label
Model: (file)
Disk /dev/sdb: 1994MB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
sudo hdparm -I /dev/sdb
输出:
/dev/sdb:
HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device
我唯一能猜到的是,驱动器在安装过程中卸载dd
后又很快重新安装,这搞砸了一些东西。不过,我还是不知道到底发生了什么。我应该再试dd
一次吗?
更新 3
根据要求,file /dev/sdb
给出以下输出:
/dev/sdb: data
更新 4
我想我可能找到了一些有助于理解正在发生的事情的东西。这是dd
插入驱动器后的屏幕截图:
下面是物理拔下驱动器后的情况:
如您所见,没有关于/dev/sdb
不再存在的错误,并且它仍然在 ls 中列出,如下面的屏幕截图所示:
我还注意到出现了不同的颜色sdb
,即使插入驱动器也是如此。
据我了解,这个“幽灵”设备是造成dd
问题的原因,有什么办法可以摆脱它吗?
更新 5
我曾经rm
删除过“幽灵”文件,但我仍然不知道它是怎么到那里的。现在,如果我运行dd
,它不会告诉我它写入了 2GB,正如您所见,在快速运行和中断后,磁盘会“正确”显示在gparted
:
但即便如此,打开时gparted
还是会出现很多这样的错误窗口:
如果我尝试创建新的分区表或在驱动器中创建新的分区,则会出现类似的窗口。这是否意味着我必须dd
在整个设备中运行,或者驱动器有物理损坏?需要注意的一件事是,我status=progress
在dd
命令上添加了选项,运行一段时间后(不总是相同大小)没有更多的进度更新,我不确定是否dd
卡在坏扇区或类似的东西中。我现在使用的命令是sudo dd if=/dev/zero of=/dev/sdb bs=4M status=progress
。
更新 6
因此,gnome-disks
它没有给我选项(至少没有启用)来对驱动器进行自检。不过,我尝试使用gsmartcontrol
,结果如下:
如果我尝试使用此工具执行自我测试,就会出现此错误。
通过使用命令行版本,运行sudo smartctl /dev/sdb -a
应该会给我 SMART 信息,并且由于输出很长,我将它粘贴在 pastebin 上,因为我不确定这篇文章是否太大。
根据输出,有很多错误,但我不确定这些错误是否由于加密驱动器问题而发生。
最后更新
由于驱动器中存在 BIOS 级密码,而旧电脑已坏,因此除了购买新驱动器外,没有其他办法。我将这篇文章标记为已解决。感谢所有参与并提出意见的人。
答案1
因此,每当我尝试在另一台计算机上使用硬盘时,它都会询问我硬盘密码。
仔细阅读。您的硬盘已加密。也许您的 Ubuntu 主文件夹也是加密的,但硬盘本身也已加密。通常,如果您有密码,可以在 BIOS 中启用和禁用加密。如果您非常不幸,驱动器是通过旧计算机上的 TPM 芯片加密的,您无论如何都无法恢复密码。阅读硬盘曾经所在的系统的文档。
这就是为什么智能声称如此多的错误,每个 sata 命令都被忽略,因为驱动器首先需要授权。