更新啟動分區表後無法啟動到 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 修復磁碟(此外,我的電腦沒有 CD 驅動器),但我確實有 Windows 恢復和映像分區。
背景資訊:具有 Windows 10 和 Linux Mint 雙引導設置的戴爾 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 boot.repair@gmail.com nvme0n1 (nvme0n1) has unknown type. Please report this message to boot.repair@gmail.com 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 分區被
diskpart
.重新啟動到 ubuntu 後,我還注意到 windows 保留分區 2 似乎有問題。我從分區中複製了 EFI 文件,將驅動器格式化為 ext4,然後返回到 fat32,然後重新復製文件。這修復了保留分區 2 上的錯誤標誌,並且 Windows 在重新啟動時完美啟動。
我認為您首先閱讀了這個論壇。
- 您可以使用帶有 EFI 的 Windows 10 Installation Pendrive 恢復 Windows 啟動。
- 然後,您只能在 Windows 上啟動。
- 在具有管理權限的 Windows 中鍵入以下命令。
bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
您必須修改它以適合您的系統,因此在嘗試恢復 Windows 引導之前,您必須在紙上寫下您的 EFI 安裝位置。
- 然後,您可以使用 Linux mint 啟動。
- (它可能是可選的)將 EFI 引導位置移動到其他位置。請參閱本文以了解與您的問題相關的內容。
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=mint
(但是,上面的文章說 Mint 和 Ubuntu 雙啟動之間的崩潰)
文章說;
完成安裝後,如果您碰巧禁用了 Windows 8 的啟動功能並且它只能啟動到 Ubuntu,請不要擔心。在 Ubuntu 中啟動後,通過打開終端並鍵入以下內容在 Ubuntu 中安裝 Boot-Repair:sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update sudo apt-get install boot-repair boot-repair Boot Repair 會提到我們有一些 GRUB 錯誤,我們有一個 EFI 系統並且 Ubuntu 很糟糕。由於 Ubuntu 搖擺不定(如果 Ubuntu 不搖擺,它就不起作用!^^),只需點擊應用,啟動修復即可修復所有問題。現在重新啟動,您應該可以並排看到 Windows 8 和 Ubuntu。對於罕見的引導問題、分區或在較新主機板上使用舊硬碟驅動器的情況,您的解決方案可能是檢查 FixParts,它可以解決未對齊的分區和其他分區類型問題。
第二條說;
不幸的是,這仍然不能解決 Ubuntu/Mint 案例中的問題,因為正如我上面提到的,似乎有一些硬編碼的東西指向名稱“ubuntu”。實際發生的是它似乎可以工作,這意味著創建了新的 EFI 引導目錄,並且看起來它包含正確的文件……事實上,當您將引導配置更改為指向這個新目錄時,系統看起來像它的作品。