相关疑难解决方法(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万
查看次数

将 EFI 系统分区移动到另一个驱动器

我在硬盘上安装了 Windows 8,使用 UEFI 作为引导。HDD 具有以下 GPT 表:

DISKPART> list partition

Partizione ###   Tipo              Dim.     Offset
---------------  ----------------  -------  -------
Partizione 1     Ripristino         300 Mb  1024 Kb
Partizione 2     Sistema            100 Mb   301 Mb
Partizione 3     Riservato          128 Mb   401 Mb
Partizione 4     Primario           390 Gb   529 Mb
Partizione 5     Primario           540 Gb   390 Gb
Run Code Online (Sandbox Code Playgroud)

(我很抱歉它是意大利语,但翻译很简单)。

我最近买了一个 SSD 驱动器,连接它并安装了一个新的 Windows 8。现在我有一个工作双引导,但 UEFI 分区在 HDD 上而不是 SSD 上。这是SSD分区列表:

Partizione ###   Tipo              Dim.     Offset
---------------  ----------------  -------  -------
Partizione 1     Riservato          128 …
Run Code Online (Sandbox Code Playgroud)

ssd hard-drive partitioning uefi windows-8

18
推荐指数
2
解决办法
5万
查看次数

Parted 没有可用的“调整大小”命令

我正在尝试使用 parted 调整分区大小,但它没有可用的“调整大小”命令

gchain@archbogchain@archbook:~$ sudo parted /dev/sdb 
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help
  align-check TYPE N                        check partition N for TYPE(min|opt) alignment
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found …
Run Code Online (Sandbox Code Playgroud)

linux hard-drive arch-linux ext4

16
推荐指数
2
解决办法
3万
查看次数

将 LUKS 分区移至左侧并调整其大小

我有一个 LUKS 加密分区,它不属于 LVM 卷管理器。它位于硬盘驱动器的末尾,其大小为 250 GB,但我想再添加 50 GB。

我通常会使用 GParted 进行此类操作,但它不允许我对 LUKS 分区执行任何操作,甚至不能移动。

我怎样才能做到这一点而不丢失我的数据?(我没有其他地方可以备份)

这是我的(GUID)分区表:

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.
Disk /dev/sda: 976773168 sectors, 465.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): D630E573-66C0-4902-A4A2-A9D56AE54544
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 2048-sector …
Run Code Online (Sandbox Code Playgroud)

partitioning gpt luks

7
推荐指数
1
解决办法
9048
查看次数

标签 统计

hard-drive ×3

partitioning ×3

linux ×2

arch-linux ×1

ext4 ×1

gpt ×1

luks ×1

mbr ×1

ssd ×1

uefi ×1

windows-8 ×1