我的一块 SSD 出了问题。我已经有一段时间没用它了。我记不清它上面有什么了(可能是 Linux 发行版),我主要用它来尝试一些东西和启动随机计算机。
但现在,我无法让它正常工作。我将其插入 USB 3.0 适配器,但无法获得超过 1073MB 的数据(最初是 240GO,sandisk SDSSDA-240G,SN:153215405538)。
因此我仅设法使用 parted 创建了一个 1073MB 的分区。
分手:
sudo parted /dev/sdb
(parted) print
Model: ATA SM2246AA-8 (scsi)
Disk /dev/sdb: 1073MB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Number Start End Size File system Flags
1 0,00B 1073MB 1073MB ext4
磁盘管理
sudo fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x500780cc.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Expert command (m for help): m
Command action
b move beginning of data in a partition
c change number of cylinders
d print the raw data in the partition table
e list extended partitions
f fix partition order
g create an IRIX (SGI) partition table
h change number of heads
i change the disk identifier
m print this menu
p print the partition table
q quit without saving changes
r return to main menu
s change number of sectors/track
v verify the partition table
w write table to disk and exit
Command (m for help): x
Expert command (m for help): p
Disk /dev/sdb: 34 heads, 61 sectors, 1010 cylinders
Nr AF Hd Sec Cyl Hd Sec Cyl Start Size ID
1 00 0 0 0 0 0 0 0 0 00
2 00 0 0 0 0 0 0 0 0 00
3 00 0 0 0 0 0 0 0 0 00
4 00 0 0 0 0 0 0 0 0 00
Expert command (m for help): v
Remaining 2096639 unallocated 512-byte sectors
磁盘是否可能受到物理损坏?
谢谢
答案1
我最好的猜测是,rom 针脚短路,并且您的 ssd 已启动到 rom 模式(或者根据供应商的不同,可以将其命名为工程模式)。您看到的 1024 mb 不是实际的 hdd,而是 ssd 的闪存/固件区域。
型号:ATA SM2246AA-8 (scsi)
这意味着你的 ssd 使用的是安装了 8 个芯片的 SMI2246AA nand 控制器,只有在标准以外的状态(恢复、工程、安全模式??)下才会出现
要修复此问题,您需要更新 SSD 的固件或向其上传引导加载程序。
根据您提供的信息,您可以在这里找到一些免费的工具usbdev网站或者upantool.com修复硬件的闪存/固件。如果这些对您不起作用,您可以尝试使用 PC-3000 硬件。
为什么会发生这种情况?
除非你短路了一些跳线针脚,或者焊接了一个针脚,或者删除了固件故意,上述情况通常是通过电压尖峰发生的(如果您尚未更新固件,则 sm2246aa 控制器的旧版本固件中也存在一个已知错误,该错误后来在新版本中得到修复)。
答案2
使用该cfdisk
实用程序。cfdisk /dev/sdb
从 root shell 进入。
从那里您可以查看、删除和编辑分区,并轻松查看 Linux 认为的整个驱动器的真实容量。
如果cfdisk
告诉您它是 1073MByte SSD,请尝试以下操作:
它可能不是您的 USB 3.0 适配器,或者您的 USB 3.0 适配器有缺陷。连接到 SATA 端口时,它能正常工作吗?尝试将其重新连接到 SATA 端口,然后看看会
cfdisk
显示什么。如果可能的话,请尝试将固件更新应用于您的 USB 3.0 适配器(不太可能,但有可能)。USB 3.0 代中的任何产品出现驱动器容量问题都是很奇怪的(例如,一些较旧的产品不支持 >2TB 的磁盘)
如果您将其插入 SATA 端口,并且
cfdisk
仍然显示容量为 1073MB,请尝试更新 SSD 固件(如果 Sandisk 在其网站上有)。然后我会使用blkdiscard /dev/sdb
免责声明完全修剪驱动器:此时该磁盘上的任何数据都已消失,这些步骤可能会使其上的任何内容完全无法恢复。如果没有固件更新,请进行安全擦除
hdparm
,看看是否有帮助。还有各种其他低级重置选项hdparm
可供选择。
免责声明:在执行上述操作之前,请 100% 确保您了解 SSD 的设备,尤其是执行blkdiscard
或 hdparm
命令时。如果可以做到,最好刻录一张实时 CD,并仅使用通过 SATA 连接的该驱动器进行操作。
答案3
我听说过导致此类问题的原因有三个:
- 磁盘损坏-- 我听说过也见过 USB 闪存驱动器出现这种问题,结果实际上已经无法使用;我不知道如何修复它们。SSD 可能会遇到同样的问题。如果发生这种情况,您的 SSD 现在实际上已经无用(或几乎无用)。
- 假冒磁盘-- 一些不道德的团体出售的磁盘(主要是 USB 闪存驱动器)声称大小为 X,但实际上大小为 Y,其中 Y < X(差距很大)。迟早买家会尝试存储超过 Y 量的数据,这时就会出现疯狂的情况。听起来你已经拥有磁盘一段时间并且成功使用它了,所以这是大概对你来说不是这种情况,但为了完整性我想提一下。
- HPA 的使用-- 主机保护区 (HPA) 是磁盘中的一部分,您可以将其留作特殊用途。启用 HPA 后,磁盘看起来会比实际小。有时它会被意外激活,从而产生您所看到的问题。在 Linux 中,您可以键入
hdparm -N /dev/sdb
asroot
(或使用sudo
)来查看磁盘的 HPA 状态。您应该会看到扇区数和 HPA 已启用或禁用的报告。如果已启用,您可以使用选项传递一个新值-Np
,例如hdparm -Np 500000000 /dev/sdb
,它将可用扇区数设置为 500,000,000(精确地说是 256 GB)。您可能希望从原始命令中获取扇区总数hdparm
,以匹配磁盘的确切大小。
我怀疑你正在处理一个死盘;我见过一些报告称 HPA 问题出现而用户却不知道原因,但理论上他们应该仅当您一直在使用 Linux hdparm
(或其他操作系统中的某些等效的低级磁盘实用程序),并且您没有提到这样做时才会发生。