Linux 出现错误“GPT PMBR 大小不匹配将通过 w(rite) 进行纠正。”
错误消息远非不言自明。这是否意味着如果我挂载并尝试写入磁盘,Linux 将(尝试)调整 GPT 分区边界的大小?如果是这样……它如何尝试做到这一点?它是否知道 512e / 4k 扇区大小模拟的问题?
遇到此问题的其他用户已成功手动重写了分区表:
逻辑扇区大小会根据是通过 USB 还是直接 SATA 连接而变化
但如果 Linux 自动执行此操作,那就更好了(并且不容易出现用户输入错误)。我使用的是 Debian Stretch,带有后移植的 4.17 Linux 内核。
如果重要的话,上下文如下:
我有一个外置硬盘,我把它拆下来(拆掉硬盘),然后把它连接到主板上的内置 SATA 端口。但是,它已经格式化,并且上面有来自之前的 SATA 磁盘控制器的数据。
显然这与 512e 4k 扇区大小模拟有关。磁盘报告逻辑扇区大小 512/物理大小 4096 字节。
当然,我的数据已经备份。我只是不想重新格式化然后重写 7TB,因为那会花很长时间。
谢谢。
答案1
Ubuntu 论坛上的一个回答对我有帮助:
https://ubuntuforums.org/showthread.php?t=2277232&p=13280872#post13280872
Fdisk 以前在 gpt 分区驱动器上根本不起作用,它只是报告驱动器是 gpt 分区。最好使用 parted、gparted 或 gdisk。Gdisk 一直是 gpt 驱动器的命令行工具。
发布这些内容:
sudo parted -l
或者
sudo parted /dev/sda unit s print
或者
sudo gdisk -l /dev/sda
答案2
当我将 SATA 磁盘移至 USB 适配器时,也遇到了类似的问题。启动时fdisk
:
GPT PMBR size mismatch (1953525167 != 1953525166) will be corrected by write.
The backup GPT table is corrupt, but the primary appears OK, so that will be used.
使用 w(rite) 命令不能解决这个问题,它只会抱怨设备上没有剩余空间。
我通过重新创建 gpt 磁盘标签解决了该问题:
- 开始
fdisk
p
显示当前分区g
创建一个新的 gpt 磁盘标签n
添加此磁盘上先前存在的每个分区。对于First sector
和Last sector
,输入先前命令输出的值p
。不要删除分区签名。w
如果保持所有起始和结束扇区相同,则不会丢失数据。
答案3
这是否意味着如果我安装并尝试写入磁盘,Linux 将(尝试)调整 GPT 分区边界的大小?
不。它的意思是像@Maze 的回答那样写。
工具分开提供对同一问题进行自动修复。如果您运行parted -l
(如果您只有一个磁盘)或parted /dev/sda
(如果您有多个磁盘,只需将 /dev/sda 更改为您的磁盘)。然后它会询问您是否要修复或忽略该问题。回答Fix
让 parted 应用修复。
Parted 非常适合轻松增加分区大小。当我看到与楼主相同的 fdisk 警告消息时,我手头上的任务就是这个。