mSATA 尺寸不匹配和无法访问的分区异常

mSATA 尺寸不匹配和无法访问的分区异常

尝试从 Acer 笔记本电脑的 mSATA SSD 上进行数据恢复...Kingston SMSR150S3/256GB

第一个症状就是 Windows 无法启动。

从购买笔记本电脑时(大约一年前)开始,磁盘的早期历史记录是

1)预装了一个大的 Windows 分区(256 GB 的大部分)以及宏碁通常会安装的其他小型 EFI、休眠和/或工厂恢复分区

2) 大 Windows 分区缩小到大约 128 GB,并添加了大约 128 GB 的第二个 (d:) Windows 分区。(用户不记得这是使用分区魔术师完成的还是使用 Windows 内置工具完成的)

最近,当磁盘停止启动时,用户制作了一个 Windows 可启动 USB 并从中启动,并尝试将 Windows 重新安装到 c: 分区。此操作无效,并显示错误“安装 Windows 的驱动器已锁定”。因此,我们认为这不会影响 c: 分区,更不可能影响 d: 分区,但我没有 100% 的信息来了解用户在尝试重新安装时可能做出的每个选择。

无论如何,我们要从 d: 分区恢复数据。现在,我已将其与 USB-SATA 设备(带有 SATA-mSATA 适配器)连接到台式 Linux 机器上,以进行故障排除...

现在奇怪的是,有些工具报告整个原始磁盘只有 128 GB,而我知道它是 256 GB。dmesg、/proc/partitions、fdisk、parted、gdisk 的输出如下:

# dmesg
...
[245835.332028] usb 1-4: new high-speed USB device number 5 using ehci-pci
[245835.464878] usb 1-4: New USB device found, idVendor=152d, idProduct=2338
[245835.464883] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=5
[245835.464887] usb 1-4: Product: USB to ATA/ATAPI bridge
[245835.464890] usb 1-4: Manufacturer: JMicron
[245835.464894] usb 1-4: SerialNumber: 50026B7E33A0
[245835.465412] usb-storage 1-4:1.0: USB Mass Storage device detected
[245835.466222] scsi4 : usb-storage 1-4:1.0
[245836.464540] scsi 4:0:0:0: Direct-Access     KINGSTON  SMSR150S3256G        PQ: 0 ANSI: 5
[245836.464873] sd 4:0:0:0: Attached scsi generic sg3 type 0
[245836.471036] sd 4:0:0:0: [sdc] 250069680 512-byte logical blocks: (128 GB/119 GiB)
[245836.472167] sd 4:0:0:0: [sdc] Write Protect is off
[245836.472172] sd 4:0:0:0: [sdc] Mode Sense: 28 00 00 00
[245836.473919] sd 4:0:0:0: [sdc] No Caching mode page found
[245836.473927] sd 4:0:0:0: [sdc] Assuming drive cache: write through
[245836.478656] sd 4:0:0:0: [sdc] No Caching mode page found
[245836.478663] sd 4:0:0:0: [sdc] Assuming drive cache: write through
[245836.486808]  sdc: sdc1 sdc2 sdc3 sdc4 sdc5
[245836.491399] sd 4:0:0:0: [sdc] No Caching mode page found
[245836.491404] sd 4:0:0:0: [sdc] Assuming drive cache: write through
[245836.491409] sd 4:0:0:0: [sdc] Attached SCSI disk

# cat /proc/partitions
major minor  #blocks  name

   8        0  488386584 sda
   8        1    1951744 sda1
   8        2  242187264 sda2
   8        3  244245504 sda3
  11        0    1048575 sr0
   8       16  488386584 sdb
   8       17    1951744 sdb1
   8       18  242187264 sdb2
   8       19  244245504 sdb3
   9        0  242056000 md0
   9        1  244114240 md1
   8       32  125034840 sdc
   8       33     409600 sdc1
   8       34     307200 sdc2
   8       35     131072 sdc3
   8       36  121234432 sdc4
   8       37     358400 sdc5

# fdisk -l /dev/sdc

WARNING: GPT (GUID Partition Table) detected on '/dev/sdc'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sdc: 128.0 GB, 128035676160 bytes
256 heads, 63 sectors/track, 15505 cylinders, total 250069680 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
Disk identifier: 0x2831909f

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1  4294967295  2147483647+  ee  GPT

# parted /dev/sdc
GNU Parted 2.3
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print                                                            
Error: Can't have a partition outside the disk!                           
(parted) quit           

# gdisk /dev/sdc
GPT fdisk (gdisk) version 0.8.8

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Warning! Secondary partition table overlaps the last partition by
250049905 blocks!
You will need to delete this partition or resize it in another utility.

Command (? for help): print
Disk /dev/sdc: 250069680 sectors, 119.2 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): BE504BB0-CF3A-4920-AD67-C6EDF9E10E94
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 250069646
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          821247   400.0 MiB   2700  Basic data partition
   2          821248         1435647   300.0 MiB   EF00  EFI system partition
   3         1435648         1697791   128.0 MiB   0C01  Microsoft reserved part
   4         1697792       244166655   115.6 GiB   0700  Basic data partition
   5       244166656       244883455   350.0 MiB   2700  
   6       244883456       470161407   107.4 GiB   0700  Basic data partition
   7       470163456       500119551   14.3 GiB    2700  Basic data partition

Command (? for help): quit

# mkdir d
# mount -t ntfs -o ro /dev/sdc1 d
NTFS signature is missing.
Failed to mount '/dev/sdc1': Invalid argument
The device '/dev/sdc1' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?

显然,内核只能看到 gdisk 中显示的 7 个分区中的 1 到 5 个分区,但我需要的是分区 6。据推测这与 parted 错误“错误:不能有磁盘外的分区!”和 gdisk 错误“警告!辅助分区表与最后一个分区重叠 250049905 个块!”有关。上面尝试的 mount 命令对所有分区 sdc1 到 5 都给出了相同的错误。

是否有人经历过或了解我所看到的尺寸不匹配问题?如果是,您能解决这个问题吗?如何解决?抱歉发了这么长的帖子,但我想展示我迄今为止调查的内容。

答案1

我有一台装有此硬盘的 Acer S7。它实际上不是单个 256G 硬盘——而是两个 128G 硬盘,采用硬件 raid-0 配置。

当我尝试将此驱动器与 USB 转 mSATA 适配器一起使用时,只能看到其中一个驱动器。同样,我在另一台计算机上安装了该驱动器,也只能看到其中一个驱动器。

我认为最好的办法是将设备放回 S7 中——这是我迄今为止发现的唯一一款可以识别设备上两个驱动器的硬件。S7 可以与 Ubuntu 配合使用,并且 raid-0 设备可以正确显示。

相关内容