相关疑难解决方法(0)

如何更正 4096 字节扇区磁盘上的 512 字节扇区 MBR?

最终更新:

我已经知道我需要做什么来解决这个问题;我只是不知道该怎么做。我希望有一些现成的工具可以自动执行此操作 - 但找不到任何工具。我接受 Rod 的回答,因为尽管没有直接解决我的问题,但它为扇区大小问题提供了非常好的背景,并使我相信该问题确实是分区对齐和寻址。对于那些遇到同样问题的人,在做任何事情之前,请彻底仔细地阅读它,包括评论。


在一开始的时候

我有一台电脑,需要更多空间,我买了一个新的 500GB 驱动器和一个 USB 外壳。很快我就注意到,如果我对机箱上的驱动器进行分区并将其移动到计算机上,它就无法识别这些分区(反之亦然)。我认为这是外壳的问题,并没有担心。

那么,悲剧

美好的一天,我的电脑决定不再打开。结果发现主板(没有品牌,只是上面印着一个很大的 MADE IN CHINA)已经死了。我一直将它用作文件服务器,而那个 500GB 的驱动器现在充满了我不能丢失的数据。我现在破产了,买不起新电脑,所以我唯一的希望是“有缺陷的”USB 外壳。

调查

配备了几个 Linux 发行版、一台笔记本电脑、VirtualBox 和机箱,我对这个问题进行了取证分析。dmesg 报告分区大小超出驱动器末端。所以我查看了硬盘数据表,从头开始计算扇区数,用 dd 手动测试驱动器边界,一切看起来都很好,直到我启动 fdisk 并说:

    Note: Sector size is 4096 (not 512).
Run Code Online (Sandbox Code Playgroud)

多么谦虚的fdisk。这个“笔记”是所有问题的根源。经过一番折腾,得出了以下结论:

  • USB 外壳没有缺陷。

  • 至少现在已经死了的主板上的 SATA 控制器是一个“奇怪的”控制器。它没有向操作系统报告 4096 字节的扇区,因此操作系统愉快地使用 512 字节的扇区地址创建了 MBR。

  • 现在,当我尝试访问分区时,操作系统会尝试在 4096 字节的扇区驱动器上使用基于 512 字节的地址,当然,这是行不通的。

问题

  • 那么,除了在十六进制编辑器上手动编辑 MBR 之外,如何更正 MBR 中的地址,使它们在 4096 字节扇区大小上有效,以及

  • 分区未针对 4096 字节扇区对齐。除了复制进出另一个驱动器之外,还有一些工具可以用来对齐它们吗?(我没有备用驱动器),或者我是否需要创建一些工具将数据一次“转移”到一边一小块?分区是ext3。

谢谢!

更新:

我发现有一种聪明的方法可以使用 dd 在这个问题中就地移动分区How to move a partition in GNU/Linux? …

linux hard-drive mbr partitioning

24
推荐指数
1
解决办法
4万
查看次数

Windows 不挂载 USB NTFS 超级软盘

我有一个 Transcend Storejet 外置 USB 硬盘。这不是SSD,而是带有旋转板的机械磁盘。我已将整个磁盘格式化为 NTFS,没有分区。我mkntfs在 Linux 下使用过工具。

当插入 Linux 机器时,系统会看到一个带有两个分区的驱动器 ( /dev/sdc /dev/sdc1 /dev/sdc2)。但是,我知道它是一个无分区磁盘,我可以挂载整个设备 ( mount -t ntfs /dev/sdc /mnt) 并且它可以正常工作。

当插入 MS Windows XP 机器时,系统会看到一个带有两个未格式化分区的磁盘,它既不会为整个磁盘分配驱动器号,也不会为任何分区分配驱动器号。

有谁知道如何让 MS Windows 将我的磁盘安装为 NTFS 超级软盘?

我已经尝试使用“DriveCleanup”删除旧的 USB 安装点和残留设备。它没有帮助。

顺便说一句,我还有一个外置的金士顿USB SSD,也格式化为NTFS超级软盘,没有分区。但是,MS Windows 可以正常识别并安装此程序。

windows usb ntfs partitioning external-hard-drive

3
推荐指数
1
解决办法
1252
查看次数