逻辑扇区大小的变化取决于它是通过USB还是直接SATA连接的


3

我有一个3TB WD磁盘(位于My Book Essential外部驱动器中。)我在Linux下使用parted对其进行了分区,并使用GPT磁盘标签进行了分区,并通过USB电缆从笔记本电脑中加载了数据。然后,我将其打开并切换为另一台计算机(台式机)上的内部SATA驱动器。

Linux(两台计算机上均为Fedora 14)无法识别该磁盘。分开表示无法识别的磁盘标签。它还报告逻辑扇区大小为512字节:“扇区大小(逻辑/物理):512字节/ 4096字节。当我通过USB将其连接到笔记本电脑时,报告为4096/4096。

我试图通过将所有扇区偏移量乘以8来对其进行重新分区,但是它仍然无法识别数据。(并不是我很惊讶。)

如果我切换到台式机上的USB连接,它将切换回4096字节的逻辑扇区。因此,似乎是USB控制器板使它使用了4096字节的逻辑扇区。老实说,考虑到这是硬件扇区大小,所以4096对我来说更有意义,但是有没有办法使USB或SATA使用另一个值?

Answers:


6

已经晚了一点,但是在我的IOMEGA硬盘盒的USB端口断开后,我遇到了类似的问题。我切换到另一个USB-2-SATA机箱,只是发现无法挂载EXT4分区。由于某种原因,IOMEGA案例报告的逻辑扇区大小为4096,但我的新案例表示仅为512字节。这拧紧了MS-DOS分区表。

这让我发疯了,因为testdisk在更改扇区大小时,借助于我的帮助,我可以访问分区,但是我发现无法更改整个系统的扇区大小。事实证明,这不是必需的,因为EXT4并不关心扇区大小,您只需找到要访问的分区的开始即可。

快速修复:使用回送设备移至分区的正确位置。

永久修复:相应地重写分区表。

就我而言,受影响的驱动器是/dev/sdb

我的快速修复相对容易,因为我在扇区63处只有一个分区。

$ sudo sfdisk -d /dev/sdb
# partition table of /dev/sdb
unit: sectors

/dev/sdb1 : start=       63, size=623708785, Id=83

现在,当扇区大小仍为4096字节时,我们必须计算分区的位置:

63 sectors * 4096 bytes = 258048 bytes

并与使用losetup

$ sudo losetup /dev/loop0 /dev/sdb -o 258048
$ sudo mount /dev/loop0 /mnt

您的分区现在应该挂载在/mnt

对于长期修复,我过去sfdisk经常转储分区布局:

$ sudo sfdisk -d /dev/sdb > sdb.partitions.sfdisk.text

通过在适当的位置乘以8开头的扇区来固定分区表-在这里,我意识到我的分区表从一开始就有点搞砸了。

我使用以下命令编辑了分区表转储nano sdb.partitions.sfdisk.text

/dev/sdb1 : start=       63, size=623708785, Id=83

至:

/dev/sdb1 : start=      504, size=623708785, Id=83

然后扩展该分区以使用所有可用空间(我通过其他方式确定):

/dev/sdb1 : start=      504, size=625141944, Id=83

最后一步是使用以下方法写回分区表:

$ sudo sh -c 'cat sdb.partitions.sfdisk.text | sfdisk /dev/sdb'

2

获得临时访问权限的另一种方法(实际上是此处提到的改进)是使用losetupkpartx。这是我所做的:

losetup -f /dev/sdl
kpartx -a /dev/loop2

现在我们可以使用/dev/mapper/loop2pX代替/dev/sdlX


1

这是当今大容量(> = 512 GB)外部硬盘驱动器的常见功能。扇区大小由外部硬盘驱动器外壳中的USB板转换,此技巧似乎用于允许与多种操作系统(例如旧的Windows XP)兼容。

Saikee对此进行了彻底的测试和描述:http ://forums.justlinux.com/showthread.php?153881-3TB-hard-disk-used-as-external-USB-connection-or-internal-Sata-connection

关于您的第二个问题,即使在理论上似乎可行的情况下,我也没有找到任何人可以更改和解决此问题,但驱动器只是不接受写入。


0

像WD品牌这样的新外部HDD使用预定义的格式。因此,不能以任何方式保证结果。如果您仍然想尝试,我建议使用低级格式。这可能会或可能不会


低级格式会做什么?不会通过两个接口之一(准确地)报告磁盘上当前位模式中编码的任何逻辑扇区大小。我想,如果一个准确的报告,然后我可以格式化为其他,只是让他们会同意。另一方面,USB只是用于首先加载数据。我真的只在乎SATA连接。
user12404'4

3
低级格式在过去10或15年左右不起作用。磁盘驱动器只是不支持它。
whitequark 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.