gpt/bios grub2 启动问题、诊断和工具

gpt/bios grub2 启动问题、诊断和工具

抱歉,问题太长了

我有一个 200 gb 的 ssd,格式化为 gpt,带有保护性 bios 和 grub2(kubuntu 1404 在 2014 年就这样做了)

带有 uefi bios 的 amd 8 核主板

一年前,将一个 clonzilla 从此 ssd 复制到第二个 ssd(相同类型),并通过 clonezilla 克隆或复制启动和 mbr,导致无法启动

无法启动,但一位朋友帮我修复了 grub2 问题……不记得他做了什么,但之后一切正常

现在再次使用 clonezilla,结果相同...无法启动...朋友没有用,所以我开始研究它

我从 rescatux / super-grub usb 启动并进行了以下测试

分区

sda1 500 mb ext2 (我的 /boot) sda4 2 mb 未知 sda2 200 gb ext2 (我的 /root 和 home 以及 usr/local) sda3 11 gb 未知

最初我运行了 boot-info,它抱怨在 sda1 和 sda2 上无法在 xxxxxxx 找到 core.img 文件

从 kubuntu live 1604(不是 1404)启动,我挂载了 sda2 /mnt 和 sda1 /mnt/boot,然后按照指示挂载了一堆 mount --bind xxx,然后 chroot sudo grub-install /dev/sda,成功了注意:我的 kubuntu 是 64 位的,但是 grub-install 是 i-386 风格的??? ctrl-D 退出 chroot 卸载所有之前的挂载并重新启动

没有成功

再次从 rescatux 启动

现在 boot-info 不再显示“无法在 xxxxx 处找到 core.img”,对于分区 sda1 /boot sda2 /root 仍然显示无法找到 core.img

将 sda2 的前 512 个字节清零,使用 dd 占用 mbr 空间

现在启动信息不再寻找 sda2 /root 上的映像

尝试在 sda1 /boot 和/或 sda1 之后的第二个未知 2mb 分区上使用 boot、esp 或 bios-rub 标志,但无法启动

再次从 rescatux 启动

在 sda1 /boot 和 sda2 /root 上运行 fsck,结果为“干净”

使用 wxhexeditor 查看

ssd(全局)并在前 512 个字节上显示 mbr 映像

ssd.part1 假设 sda1 /boot 并显示数据(可能是 core.img),其中包含“loading”和“Geom Read Error”作为前 500 个字节内的可读部分

ssd.part2 假设 2mb 未知分区包含 0s...如果这应该是 core.img 的话,那就太可怕了

ssd.part3 假设 sda2 /root 所有 0 都被 dd 512 字节清除

ssd.part4 假设 ssd 末尾有 11 gb 未知格式,包含与 ssd.part1 /boot ??? core.img 惊人的相同签名

此外,启动信息显示启动扇区类型:Grub2 的 core.img 位于 SSD 末端这个未知的文件系统分区上...不知道它是怎么到那里的...也许是在一年前朋友第一次修复 grub 时

我将在启动信息的最后部分包含

启动尝试症状:

bios splash -> f2 -> f8 进入启动菜单,进入后选择 ssd 电脑似乎断电了,风扇也转了……几秒钟后又一次又一次地启动

如果我从 rescatux 或 kubuntu life 启动,我可以挂载两个分区并可以访问所有文件,因为它看起来像是使用 fsck 卸载分区的“干净”结果

我不知道还有什么可以获得更多诊断信息

我也不知道如何检查 gpt 分区信息和/或 mbr 内容的有效性和正确链接

还有几个问题

1)grub-install 在 64 位 kubuntu 操作系统中安装 i-386 grub2 是否合法

1a) 在 1404 安装上从 1604 磁盘恢复 grub2 是否存在问题

2)SSD 显示以下分区

sda 似乎显示了一个有效的 mbr,如 wxhexeditor 所示...不知道还有其他工具可以查看扇区内容

sda1 500 mb ext2 (/boot) ... 似乎前 512 字节可能有 core.img

sda4 2 mb 未知(紧随 sda1,这是否应该保存 core.img)...显示 0s...我没有碰过它

sda2 200 gb ext2 (/root 和所有其他) ... 前 512 个字节为 0,已清除我的 dd

sda3 11 gb 未知(ssd 的剩余部分)似乎也包含 core.img,可能是一年前第一次 grub 启动修复时出现的

3)我假设 sda 前 512 个字节上的 mbr 包含一个有效的 mbr...不知道有什么工具可以验证有效性和链接

我不知道如何验证或获取有关 mbr 链接的信息以便继续

4)sda1(第一个分区)的前 512 个字节包含类似 core.img 的内容...提醒“清除”fsck

5)如果 sda4 2 mb 未知(第二个分区...是 0s)这是否应该保存 core.img

6)sda2 200 gb ext2(第三个分区,前 512 字节为 0,似乎没问题,因为 fsck 指示“清除”)

7)如果 ssd 前 512 字节的 mbr 正确,它链接到哪里以及如何验证或更改它

8)第一个分区 ext2(启动)的前 512 个字节是否包含 core.img

9) core.img 是否应该包含在以下 2mb 分区中,当前分区大小为 0s,是否有任何工具可以将 core.img 放到该分区中,因为它的大小为 0s

10)第三个分区 ext2 包含 /root 和其他所有内容,其前 512 个字节为 0,这是正确的吗?

很难找到有关磁盘架构、链接地址和工具来验证和更正或更改设置的上述 loq 级别问题的答案

非常感谢您的帮助,谢谢 EinHexenMeister

gdisk 打印输出

GPT fdisk (gdisk) 版本 0.8.10

分区表扫描:MBR:保护 BSD:不存在 APM:不存在 GPT:存在

找到具有保护性 MBR 的有效 GPT;使用 GPT。磁盘 /dev/sda:468862128 个扇区,223.6 GiB 逻辑扇区大小:512 字节 磁盘标识符 (GUID):02FA083F-9F81-4010-9DAC-B92B681C64E6 分区表最多可容纳 128 个条目 第一个可用扇区为 34,最后一个可用扇区为 468862094 分区将在 2048 扇区边界上对齐 总可用空间为 3181 个扇区(1.6 MiB)

编号 起始(扇区) 结束(扇区) 大小 代码 名称 1 2048 1001471 488.0 MiB EF00 2 1005568 444370943 211.4 GiB 8300 3 444370944 468860927 11.7 GiB 8200 4 1001472 1005567 2.0 MiB 8300

引导信息部分

============================== 启动信息摘要: =================================

=> Grub2 (v1.99) 安装在 /dev/sda 的 MBR 中,并在同一硬盘的 2048 扇区中查找 core.img。core.img 位于此位置。=> libparted MBR 引导代码安装在 /dev/sdb 的 MBR 中。=> libparted MBR 引导代码安装在 /dev/sdc 的 MBR 中。=> /dev/sdd 的 MBR 中未安装已知的引导加载程序。

sda1:______________________________________________________________________

File system:       ext2
Boot sector type:  Grub2's core.img
Boot sector info:
Operating System: 
Boot files:        /grub/grub.cfg /grub/i386-pc/core.img

sda2:________________________________________________________________________

File system:       ext2
Boot sector type:  -
Boot sector info:
Operating System:  Ubuntu 14.04.5 LTS
Boot files:        /etc/fstab

sda3:______________________________________________________________________

File system:      
Boot sector type:  -
Boot sector info:
Mounting failed:   mount: unknown filesystem type ''

sda4:______________________________________________________________________

File system:      
Boot sector type:  Grub2's core.img
Boot sector info:
Mounting failed:   mount: unknown filesystem type ''

挂载:未知的文件系统类型''

答案1

我希望我回答自己的问题是正确的,因为我在 oldfred 的帮助下解决了这个问题

结论 :

我在 sda 上设置了 gpt/bios,从 parted 打印输出中可以看到

型号:ATA INTEL SSDSC2BW24 (scsi) 磁盘 /dev/sda:240GB 扇区大小(逻辑/物理):512B/512B 分区表:gpt 磁盘标志:

编号 起始 结束 大小 文件系统 名称 标志 1 1049kB 513MB 512MB ext2 4 513MB 515MB 2097kB bios_grub 2 515MB 228GB 227GB ext2 3 228GB 240GB 12.5GB

我最初没有设置此标志,它需要在 grub-install 过程之前设置

在这个未格式化的 2 mb 分区上设置这个 bios_grub 标志后,我按照下面的链接使用 mounts 和 chroot 进行了 grub 安装

http://opensource-sidh.blogspot.com/2011/06/recover-grub-live-ubuntu-cd-pendrive.html

令我惊喜的是,一切正常......再次启动:)

相关内容