更新启动分区表后无法启动进入 Windows

更新启动分区表后无法启动进入 Windows

我看到了一些有关硬盘驱动器格式化和/或分区的错误消息(即文件描述符错误、幻数不匹配错误),在查看 gdisk 时,我发现 GPT 分区中存在错误我的EFI系统分区。我的 EFI 分区是 500MB,驱动器是 500GB,但 gdisk 说我的 EFI 分区是 800GB。我认为加载备份 GPT 表不会有任何危害(通过 gdisk > r > c > w),所以我将备份 GPT 表写入主表,然后重新启动。

重新启动后,未检测到任何操作系统。我从实时 USB 启动,并重新安装了 grub。这导致出现许多“grub-install.real:警告”消息,指出存在不正确的嵌套分区“hostdisk //dev/nvme0n1,gpt1,msdos2”。重新启动后,未检测到操作系统。

我重新启动并通过 gparted 运行自动修复/检查分区(右键单击>检查)。这导致了一些似乎相关的消息:

FSINFO sector has bad magic number(s):  
   Offset 0: 0x20494645 != expected 0x4161525  
   Offset 484:0x000000000 != expected 0x61417272  
   Offset 510: 0x0000 != expected 0xaa55  
   Auto-correcting it 

此后,gdisk 输出对 GPT 不满意:

Caution! After loading partitions, the CRC doesn't check out!  
Warning! Main partition table CRC mismatch! Loaded backup partition table  
instead of main partition table!  

Warning! One or more CRCs don't match. You should repair the disk!

Partition table scan:  
  MBR: MBR only  
  BSD: not present  
  APM: not present  
  GPT: damaged  

但 grub 现在不会显示不正确嵌套的分区错误。更新 grub 后,我重新启动进入 linux,但似乎无法修复 Windows。

尽管我有 Windows 恢复和映像分区,但我目前无法访问任何 Windows 修复磁盘(此外,我的计算机没有 CD 驱动器)。

背景信息:具有 Windows 10 和 Linux Mint 双启动设置的 Dell XPS 15。

选择引导修复输出:

no valid partition table found
"blkid" output: ________________________________________________________________

Device           UUID                                   TYPE       LABEL

/dev/nvme0n1                                                       
/dev/nvme0n1p1   DE6C-05EA                              vfat       ESP
/dev/nvme0n1p2                                                     
/dev/nvme0n1p3   AADCA51FDCA4E6B3                       ntfs       OS
/dev/nvme0n1p4   1422A1A622A18CF4                       ntfs       WINRETOOLS
/dev/nvme0n1p5   02AEA20EAEA1FA75                       ntfs       Image
/dev/nvme0n1p6   9bfef4c0-4af2-4758-adb9-bb1c08256462   ext4       LinuxMint
/dev/nvme0n1p7   2c2ca336-a7eb-429b-b6ed-12b83750ed73   swap       

ls -l /dev/disk/by-id输出:

total 0
lrwxrwxrwx 1 root root 13 Jul 23 15:22 nvme-PM951_NVMe_SAMSUNG_512GB__S29PNXAG917208 -> ../../nvme0n1
lrwxrwxrwx 1 root root 15 Jul 23 15:22 nvme-PM951_NVMe_SAMSUNG_512GB__S29PNXAG917208-part1 -> ../../nvme0n1p1
lrwxrwxrwx 1 root root 15 Jul 23 15:22 nvme-PM951_NVMe_SAMSUNG_512GB__S29PNXAG917208-part2 -> ../../nvme0n1p2
lrwxrwxrwx 1 root root 15 Jul 23 15:22 nvme-PM951_NVMe_SAMSUNG_512GB__S29PNXAG917208-part3 -> ../../nvme0n1p3
lrwxrwxrwx 1 root root 15 Jul 23 15:23 nvme-PM951_NVMe_SAMSUNG_512GB__S29PNXAG917208-part4 -> ../../nvme0n1p4
lrwxrwxrwx 1 root root 15 Jul 23 15:23 nvme-PM951_NVMe_SAMSUNG_512GB__S29PNXAG917208-part5 -> ../../nvme0n1p5
lrwxrwxrwx 1 root root 15 Jul 23 15:22 nvme-PM951_NVMe_SAMSUNG_512GB__S29PNXAG917208-part6 -> ../../nvme0n1p6
lrwxrwxrwx 1 root root 15 Jul 23 15:22 nvme-PM951_NVMe_SAMSUNG_512GB__S29PNXAG917208-part7 -> ../../nvme0n1p7
lrwxrwxrwx 1 root root 13 Jul 23 15:22 nvme-eui.00253843591b4338 -> ../../nvme0n1
lrwxrwxrwx 1 root root 15 Jul 23 15:22 nvme-eui.00253843591b4338-part1 -> ../../nvme0n1p1
lrwxrwxrwx 1 root root 15 Jul 23 15:22 nvme-eui.00253843591b4338-part2 -> ../../nvme0n1p2
lrwxrwxrwx 1 root root 15 Jul 23 15:22 nvme-eui.00253843591b4338-part3 -> ../../nvme0n1p3
lrwxrwxrwx 1 root root 15 Jul 23 15:23 nvme-eui.00253843591b4338-part4 -> ../../nvme0n1p4
lrwxrwxrwx 1 root root 15 Jul 23 15:23 nvme-eui.00253843591b4338-part5 -> ../../nvme0n1p5
lrwxrwxrwx 1 root root 15 Jul 23 15:22 nvme-eui.00253843591b4338-part6 -> ../../nvme0n1p6
lrwxrwxrwx 1 root root 15 Jul 23 15:22 nvme-eui.00253843591b4338-part7 -> ../../nvme0n1p7

标准错误消息:

File descriptor 9 (/proc/3448/mounts) leaked on lvs invocation. Parent PID 26812: bash
File descriptor 63 (pipe:[39653]) leaked on lvs invocation. Parent PID 26812: bash

附加信息:

2017-07-23__15h21 启动修复日志:

boot-repair version : 4ppa40
boot-sav version : 4ppa40
glade2script version : 3.2.3~ppa1
boot-sav-extra version :
File descriptor 9 (/proc/3448/mounts) leaked on lvs invocation. Parent PID 5297: /bin/sh
Warning: failed to translate partition name
Warning: failed to translate partition name
boot-repair is executed in installed-session (Linux Mint 18.1 Serena, serena, LinuxMint, x86_64)
CPU op-mode(s):        32-bit, 64-bit
BOOT_IMAGE=/boot/vmlinuz-4.8.0-58-generic root=UUID=9bfef4c0-4af2-4758-adb9-bb1c08256462 ro quiet splash crashkernel=384M-:128M vt.handoff=7
nvme0n1 (nvme0n1) has unknown type. Please report this message to [email protected]
nvme0n1 (nvme0n1) has unknown type. Please report this message to [email protected]
mount: /dev/nvme0n1 is already mounted or /mnt/boot-sav/nvme0n1 busy
mount /dev/nvme0n1 : Error code 32
mount -r /dev/nvme0n1 /mnt/boot-sav/nvme0n1
mount: /dev/nvme0n1 is already mounted or /mnt/boot-sav/nvme0n1 busy
mount -r /dev/nvme0n1 : Error code 32

1 disks with OS, 2 OS : 1 Linux, 0 MacOS, 1 Windows, 0 unknown type OS.

mount: /dev/nvme0n1 is already mounted or /mnt/boot-sav/nvme0n1 busy
mount /dev/nvme0n1 : Error code 32
mount -r /dev/nvme0n1 /mnt/boot-sav/nvme0n1
mount: /dev/nvme0n1 is already mounted or /mnt/boot-sav/nvme0n1 busy
mount -r /dev/nvme0n1 : Error code 32
Windows not detected by os-prober on nvme0n1p3.

更新: 解决方案:

启动 Windows 10 恢复 USB 后,我注意到 EFI 分区被 列为 RAW 格式diskpart

重新启动进入 ubuntu 后,我还注意到 Windows 保留分区 2 似乎有问题。我将 EFI 文件从分区复制下来,将驱动器格式化为 ext4,然后再格式化回 fat32,然后将文件复制回来。这修复了保留分区 2 上的错误标志,并且 Windows 在重新启动时完美启动。

答案1

我认为你读过这个论坛第一的。

  1. 您可以使用带有 EFI 的 Windows 10 Installation Pendrive 来恢复 Windows 启动。
  2. 然后,您只能在 Windows 上启动。

  3. 在具有管理权限的 Windows 中键入以下命令。

    bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
    

您必须修改它以适合您的系统,因此您必须在尝试恢复 Windows 启动之前在纸上写下您的 EFI 安装位置。

  1. 然后,你就可以用 Linux mint 启动了。
  2. (可能是可选的)将 EFI 启动位置移至其他位置。参考这篇文章与您的问题相关。

    grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=mint
    

    (但是,上面的文章说 Mint 和 Ubuntu 双启动之间发生崩溃)

文章说;

安装完成后,如果您碰巧 Windows 8 无法启动并且只能启动到 Ubuntu,请不要担心。在 Ubuntu 中启动后,通过打开终端并输入以下命令来安装 Boot-Repair: sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update sudo apt-get install boot-repair boot-repair引导修复会提到我们有一些 GRUB 错误,我们有一个 EFI 系统并且 Ubuntu 很稳定。由于 Ubuntu 很稳定(如果 Ubuntu 不稳定,它就不起作用!^^),只需单击“应用”即可启动修复修复所有问题。现在重新启动,您应该会并排看到 Windows 8 和 Ubuntu。对于罕见的启动问题、分区或在较新的主板上使用旧硬盘驱动器的情况,您的解决方案可能是检查 FixParts,它可以解决分区未对齐和其他分区类型问题。

第二条说;

不幸的是,这仍然不能解决 Ubuntu/Mint 情况下的问题,因为正如我上面提到的,似乎有一些硬编码的东西指向名称“ubuntu”。实际发生的情况是它似乎可以工作,这意味着创建了新的 EFI 引导目录,并且看起来它包含正确的文件......事实上,当您更改引导配置以指向这个新目录时,系统看起来可以工作。

相关内容