如果这个帖子在 Ubuntu 论坛上发布效果会更好,请告诉我。
标题是我的问题,经过大量研究和笔记后,我有一个假设的解决方案,但我想问一下那些比我更了解这些事情的人,它是否可行或者有什么更好的解决方案。
基本上我安装了两个操作系统:Windows-7 Home Premium 和 Xubuntu 14.04 (Trusty)。
每个都安装在自己的驱动器上:Win-7 安装在 120 GB OCZ SSD 上,Linux 安装在 1 TB WD HDD 上。
现状:
我的主板是技嘉GA-Z77X-UD3H(rev-1),安装在几年前购买的自装机上,没有安装任何操作系统。
两个驱动器都是 GPT 格式的,并且我要求主板仅在 UEFI 模式下启动(在 UEFI 屏幕中将“CSM 支持”设置为从不)。
安全启动和快速启动已被禁用。
我的主板(UEFI)显示三个启动驱动器选项:
ubuntu -> 运行良好,安装在第二个驱动器上
WDC WDC1002FAEX-00Y9A0 -> 不起作用,仅仅是因为它指向的(第二个驱动器,HDD)ESP 是空的
Windows 启动管理器 -> 不起作用,安装在第一个驱动器上
每个驱动器上都有一个 ESP:
- sda5,fat32(GRUB/Linux 正在使用的)
- sdb1,fat32(空)
我知道驱动器的第 5 个分区对于 ESP 来说是一个奇怪的位置,请参阅下面“解决方案”部分中的我的评论。
我的 GRUB 菜单乱糟糟的:总共有 9 个选项,其中 4 个名称中包含“Windows”,但都不起作用。我知道其中一些是由“Boot Repair”创建的,当我更有信心时,我会删除它们。尽管如此,GRUB 中的“ubuntu”条目仍然可用。我现在正在使用它(Xubuntu),已经用了几个星期了。
我不会深入讨论我的机器是如何变成这种状态的,除非有人问。这篇文章太长了。我只能说我使用过 Windows 和 Xubuntu,将 Xubuntu 从 12.04 升级到 14.04,后来出现了问题,BIOS 固件更新和其他问题。现在我正在使用 Xubuntu,但由于“区域设置”问题,我不得不重新安装它,我无法修复。对我来说重要的一切都已经备份在通过 USB 连接的外部硬盘上。
我提出的解决方案:
首先,我想将 EFI 系统分区的内容从一个驱动器复制到另一个驱动器,以便保留和使用它们。当然,我的意思不是同时使用它们。我的意思是,当第一个驱动器在 UEFI 的屏幕选项中被选为第一个驱动器时,使用第一个驱动器上的 EFI 系统分区,当另一个驱动器是第一个驱动器时,使用另一个驱动器上的 EFI 系统分区。如果可能的话,如果这可以解决我的问题,我会在之后更新 GRUB,以便它反映所做的更改。
最后,我希望在每个驱动器 sda1 和 sdb1 中都有一个 ESP,换句话说,这是一种常规设置,但如果它太复杂,或者最好只为两个驱动器/操作系统设置一个 ESP,我希望它位于我的 Linux 驱动器上(第二个,1 TB HDD)。我想在物理上将 Linux 与 Windows 隔离。对我来说,Linux 是我的工作室,而 Windows 是一个玩具,我主要在上面玩游戏,而且只在本地玩游戏,我读过很多关于 Windows 安装搞砸了 Linux 安装的帖子,还有少数关于相反情况的帖子。
关于我的第一个驱动器(SSD,Windows 系统所在的位置)上活跃/使用的 ESP:
我多次读到过,ESP 应该位于驱动器的开头附近。虽然分区的“顺序”在 SSD 上的含义肯定与在 HDD 上的含义不同,但我想将其移动到 sda1,但我可以稍后再做,可能在重新格式化整个 SSD 之后,在重新安装 Windows 之前。也许我会尝试使用 PMagic 之类的程序移动我现有的分区,看看它是否有效。我不太在乎我当前的 Windows 设置,但如果我可以通过不重新安装所有内容来节省一个下午的时间,那可能是值得的。
另一个问题是,我很确定任何 ESP 分区都应该设置“启动标志”,而不是“/boot”分区,但我想确认一下,特别是我不确定一台计算机是否应该一次只设置一个,就像我的情况一样,有两个驱动器,每个驱动器都有自己的操作系统。由于 MBR 与 GPT 的问题,我在阅读过程中对很多东西感到困惑,这台机器是我第一台双启动机器。
我已经有一个 bootinfoscript 输出文件,如果需要的话可以将其添加到此处。
提前感谢任何评论/建议。
Boot Info Script 0.61 [1 April 2012]
============== Boot Info Summary: ================
=> No boot loader is installed in the MBR of /dev/sda.
=> No boot loader is installed in the MBR of /dev/sdb.
sda1: __________________________________________________________________________
File system: ntfs
Boot sector type: Windows Vista/7: NTFS
Boot sector info: No errors found in the Boot Parameter Block.
Operating System: Windows 7
Boot files: /Windows/System32/winload.exe
sda2: __________________________________________________________________________
File system: ntfs
Boot sector type: Windows Vista/7: NTFS
Boot sector info: No errors found in the Boot Parameter Block.
Operating System:
Boot files:
sda3: __________________________________________________________________________
File system: ext4
Boot sector type: -
Boot sector info:
Operating System:
Boot files:
sda4: __________________________________________________________________________
File system: ext4
Boot sector type: -
Boot sector info:
Operating System:
Boot files:
sda5: __________________________________________________________________________
File system: vfat
Boot sector type: Windows 7: FAT32
Boot sector info: No errors found in the Boot Parameter Block.
Operating System:
Boot files:
sda6: __________________________________________________________________________
File system:
Boot sector type: -
Boot sector info:
Mounting failed: mount: unknown filesystem type ''
sdb1: __________________________________________________________________________
File system: vfat
Boot sector type: FAT32
Boot sector info: No errors found in the Boot Parameter Block.
Operating System:
Boot files:
sdb2: __________________________________________________________________________
File system: ext4
Boot sector type: -
Boot sector info:
Operating System:
Boot files: /grub/grub.cfg
sdb3: __________________________________________________________________________
File system: ext4
Boot sector type: -
Boot sector info:
Operating System: Ubuntu 14.04.3 LTS
Boot files: /etc/fstab
sdb4: __________________________________________________________________________
File system: swap
Boot sector type: -
Boot sector info:
sdb5: __________________________________________________________________________
File system: ntfs
Boot sector type: Windows Vista/7: NTFS
Boot sector info: No errors found in the Boot Parameter Block.
Operating System:
Boot files:
sdb6: __________________________________________________________________________
File system: ext4
Boot sector type: -
Boot sector info:
Operating System:
Boot files:
sdb7: __________________________________________________________________________
File system: ntfs
Boot sector type: Windows Vista/7: NTFS
Boot sector info: No errors found in the Boot Parameter Block.
Operating System:
Boot files:
=================== Drive/Partition Info: =====================
Drive: sda _____________________________________________________________________
Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
Partition Boot Start Sector End Sector # of Sectors Id System
/dev/sda1 1 234,441,647 234,441,647 ee GPT
GUID Partition Table detected.
Partition Start Sector End Sector # of Sectors System
/dev/sda1 4,096 65,835,007 65,830,912 Data partition (Windows/Linux)
/dev/sda2 65,835,008 150,996,991 85,161,984 Data partition (Windows/Linux)
/dev/sda3 150,996,992 152,020,991 1,024,000 Data partition (Windows/Linux)
/dev/sda4 152,020,992 193,230,847 41,209,856 Data partition (Windows/Linux)
/dev/sda5 193,230,848 193,435,647 204,800 EFI System partition
/dev/sda6 193,435,648 193,697,791 262,144 Microsoft Reserved Partition (Windows)
Drive: sdb _____________________________________________________________________
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
Partition Boot Start Sector End Sector # of Sectors Id System
/dev/sdb1 1 1,953,525,167 1,953,525,167 ee GPT
GUID Partition Table detected.
Partition Start Sector End Sector # of Sectors System
/dev/sdb1 4,096 409,599 405,504 EFI System partition
/dev/sdb2 409,600 7,925,759 7,516,160 Data partition (Linux)
/dev/sdb3 7,925,760 69,365,759 61,440,000 Data partition (Linux)
/dev/sdb4 89,845,760 110,325,759 20,480,000 Swap partition (Linux)
/dev/sdb5 110,325,760 929,525,759 819,200,000 Data partition (Windows/Linux)
/dev/sdb6 1,093,365,760 1,421,045,759 327,680,000 Data partition (Linux)
/dev/sdb7 1,421,045,760 1,830,645,759 409,600,000 Data partition (Windows/Linux)
"blkid" output: ________________________________________________________________
Device UUID TYPE LABEL
/dev/sda1 1C2E866C1128BCD3 ntfs Win-7_System
/dev/sda2 5E2256D51B201E21 ntfs Win-7_Profile-Apps
/dev/sda3 906e461a-1473-4f4f-a365-d0ce199765aa ext4 Linux-SSD BOOT
/dev/sda4 81201b69-edac-4c7a-b878-79c6d487f569 ext4 Linux-SSD root
/dev/sda5 6A2D-CF9D vfat EFI_SYSTEM
/dev/sdb1 6047-DBE8 vfat EFI_system
/dev/sdb2 dbba209a-c585-42f7-a408-17d6f8a587f8 ext4 boot_part
/dev/sdb3 a3eb9fbe-e91e-44ed-b826-071814a1be79 ext4 ROOT_part
/dev/sdb4 9e26bed2-0448-4ff9-af08-b469676e0ee1 swap
/dev/sdb5 1AC8D5D5590C4FCC ntfs AUDIO
/dev/sdb6 ac50468e-aeba-4fd2-8f9b-a728bc2cdb04 ext4 HOME
/dev/sdb7 1292A3272D072EC3 ntfs DOCS
=============== Mount points: ================
Device Mount_Point Type Options
/dev/sda5 /boot/efi vfat (rw)
/dev/sdb2 /boot ext4 (rw)
/dev/sdb3 / ext4 (rw,errors=remount-ro)
/dev/sdb5 /mnt/ntfs-int_AUDIO fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
/dev/sdb6 /home ext4 (rw)
/dev/sdb7 /mnt/ntfs-int_DOCS fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
=============== sdb2/grub/grub.cfg: ================
--------------------------------------------------------------------------------
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function recordfail {
set recordfail=1
if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod ext2
set root='hd1,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt3 --hint-efi=hd1,gpt3 --hint-baremetal=ahci1,gpt3 a3eb9fbe-e91e-44ed-b826-071814a1be79
else
search --no-floppy --fs-uuid --set=root a3eb9fbe-e91e-44ed-b826-071814a1be79
fi
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=en_US
insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
set timeout=30
else
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=10
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=10
fi
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
set gfxpayload="${1}"
if [ "${1}" = "keep" ]; then
set vt_handoff=vt.handoff=7
else
set vt_handoff=
fi
}
if [ "${recordfail}" != 1 ]; then
if [ -e ${prefix}/gfxblacklist.txt ]; then
if hwmatch ${prefix}/gfxblacklist.txt 3; then
if [ ${match} = 0 ]; then
set linux_gfx_mode=keep
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=keep
fi
else
set linux_gfx_mode=text
fi
export linux_gfx_mode
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-a3eb9fbe-e91e-44ed-b826-071814a1be79' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
insmod part_gpt
insmod ext2
set root='hd1,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2 dbba209a-c585-42f7-a408-17d6f8a587f8
else
search --no-floppy --fs-uuid --set=root dbba209a-c585-42f7-a408-17d6f8a587f8
fi
linux /vmlinuz-3.16.0-53-generic.efi.signed root=UUID=a3eb9fbe-e91e-44ed-b826-071814a1be79 ro quiet splash $vt_handoff
initrd /initrd.img-3.16.0-53-generic
}
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-a3eb9fbe-e91e-44ed-b826-071814a1be79' {
menuentry 'Ubuntu, with Linux 3.16.0-53-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-53-generic-advanced-a3eb9fbe-e91e-44ed-b826-071814a1be79' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
insmod part_gpt
insmod ext2
set root='hd1,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2 dbba209a-c585-42f7-a408-17d6f8a587f8
else
search --no-floppy --fs-uuid --set=root dbba209a-c585-42f7-a408-17d6f8a587f8
fi
echo 'Loading Linux 3.16.0-53-generic ...'
linux /vmlinuz-3.16.0-53-generic.efi.signed root=UUID=a3eb9fbe-e91e-44ed-b826-071814a1be79 ro quiet splash $vt_handoff
echo 'Loading initial ramdisk ...'
initrd /initrd.img-3.16.0-53-generic
}
menuentry 'Ubuntu, with Linux 3.16.0-53-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-53-generic-recovery-a3eb9fbe-e91e-44ed-b826-071814a1be79' {
recordfail
load_video
insmod gzio
insmod part_gpt
insmod ext2
set root='hd1,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2 dbba209a-c585-42f7-a408-17d6f8a587f8
else
search --no-floppy --fs-uuid --set=root dbba209a-c585-42f7-a408-17d6f8a587f8
fi
echo 'Loading Linux 3.16.0-53-generic ...'
linux /vmlinuz-3.16.0-53-generic.efi.signed root=UUID=a3eb9fbe-e91e-44ed-b826-071814a1be79 ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /initrd.img-3.16.0-53-generic
}
menuentry 'Ubuntu, with Linux 3.16.0-52-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-52-generic-advanced-a3eb9fbe-e91e-44ed-b826-071814a1be79' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
insmod part_gpt
insmod ext2
set root='hd1,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2 dbba209a-c585-42f7-a408-17d6f8a587f8
else
search --no-floppy --fs-uuid --set=root dbba209a-c585-42f7-a408-17d6f8a587f8
fi
echo 'Loading Linux 3.16.0-52-generic ...'
linux /vmlinuz-3.16.0-52-generic.efi.signed root=UUID=a3eb9fbe-e91e-44ed-b826-071814a1be79 ro quiet splash $vt_handoff
echo 'Loading initial ramdisk ...'
initrd /initrd.img-3.16.0-52-generic
}
menuentry 'Ubuntu, with Linux 3.16.0-52-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-52-generic-recovery-a3eb9fbe-e91e-44ed-b826-071814a1be79' {
recordfail
load_video
insmod gzio
insmod part_gpt
insmod ext2
set root='hd1,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2 dbba209a-c585-42f7-a408-17d6f8a587f8
else
search --no-floppy --fs-uuid --set=root dbba209a-c585-42f7-a408-17d6f8a587f8
fi
echo 'Loading Linux 3.16.0-52-generic ...'
linux /vmlinuz-3.16.0-52-generic.efi.signed root=UUID=a3eb9fbe-e91e-44ed-b826-071814a1be79 ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /initrd.img-3.16.0-52-generic
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/20_memtest86+ ###
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/25_custom ###
menuentry "Windows UEFI bootmgfw.efi" {
search --fs-uuid --no-floppy --set=root 6A2D-CF9D
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
menuentry "Windows Boot UEFI loader" {
search --fs-uuid --no-floppy --set=root 6A2D-CF9D
chainloader (${root})/EFI/Boot/bkpbootx64.efi
}
menuentry "EFI/ubuntu/MokManager.efi" {
search --fs-uuid --no-floppy --set=root 6A2D-CF9D
chainloader (${root})/EFI/ubuntu/MokManager.efi
}
menuentry "efi/EFI/Boot/bkpbootx64.efi" {
search --fs-uuid --no-floppy --set=root dbba209a-c585-42f7-a408-17d6f8a587f8
chainloader (${root})/efi/EFI/Boot/bkpbootx64.efi
}
menuentry "efi/EFI/ubuntu/MokManager.efi" {
search --fs-uuid --no-floppy --set=root dbba209a-c585-42f7-a408-17d6f8a587f8
chainloader (${root})/efi/EFI/ubuntu/MokManager.efi
}
### END /etc/grub.d/25_custom ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (on /dev/sda5)' --class windows --class os $menuentry_id_option 'osprober-efi-6A2D-CF9D' {
insmod part_gpt
insmod fat
set root='hd0,gpt5'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt5 --hint-efi=hd0,gpt5 --hint-baremetal=ahci0,gpt5 6A2D-CF9D
else
search --no-floppy --fs-uuid --set=root 6A2D-CF9D
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
set timeout=10
fi
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
### END /etc/grub.d/30_uefi-firmware ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
#
# ME: I added what follows today, August 15 , 2015, when my Win-7 did't show
# in the list of "boot items" in my UEFI screen, neither MBR nor EFI. I have
# not yet re-installed Xubuntu 14.04. I can't write French, accents not
# working in "mousepad" or "ted". Also I never solved my "locale" problem
# and the "perl" error messages in terminal when I play with apt-get and
# other packages/repositories related stuff. ALL CSM STUFF NOW DISABLED,
# CAN BOOT OK IN XUBUNTU ONLY.
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
menuentry "Windows x86_64 UEFI-GPT" {
search --fs-uuid --no-floppy --set=root UUID
**chainloader (${root})/efi/Microsoft/Boot/bootmgfw.efi**
}
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
========== sdb2: Location of files loaded by Grub: =========
GiB - GB File Fragment(s)
============== sdb3/etc/fstab: ===============
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sdb3 during installation
UUID=a3eb9fbe-e91e-44ed-b826-071814a1be79 / ext4 errors=remount-ro 0 1
# /boot was on /dev/sdb2 during installation
UUID=dbba209a-c585-42f7-a408-17d6f8a587f8 /boot ext4 defaults 0 2
# /boot/efi was on /dev/sda5 during installation
#UUID=6A2D-CF9D /boot/efi vfat defaults 0 1
# /home was on /dev/sdb6 during installation
UUID=ac50468e-aeba-4fd2-8f9b-a728bc2cdb04 /home ext4 defaults 0 2
# swap was on /dev/sdb4 during installation
UUID=9e26bed2-0448-4ff9-af08-b469676e0ee1 none swap sw 0 0
#
# /dev/sdb5: LABEL="AUDIO" MOI: "not mounted during installation"
UUID=1AC8D5D5590C4FCC /mnt/ntfs-int_AUDIO ntfs-3g dmask=003,fmask=113,uid=1000,gid=1000,relatime,nls=utf8,x-gvfs-show 0 0
#
# /dev/sdb7: LABEL="DOCS" MOI: not mounted during installation
UUID=1292A3272D072EC3 /mnt/ntfs-int_DOCS ntfs-3g defaults,uid=1000,gid=1000,relatime,nls=utf8,x-gvfs-show,umask=002 0 0
UUID=6A2D-CF9D /boot/efi vfat defaults 0 1
======== sdb3: Location of files loaded by Grub: ========
GiB - GB File Fragment(s)
=============== StdErr Messages: ==============
cat: /tmp/BootInfo-eh5KWy4g/Tmp_Log: No such file or directory
cat: /tmp/BootInfo-eh5KWy4g/Tmp_Log: No such file or directory
当我选择任何名称中包含“Windows”的 Grub 启动选项时出现错误消息:
“Widows 无法启动...
1. 安装 Windows 安装光盘并重新启动... 2. 选择语言...
3. 单击“修复计算机”。...
文件:\EFI\Microsoft\Boot\BCD 状态:0xc000000d
信息:尝试读取启动配置数据时发生错误。”
当我通过选择“Windows 启动管理器”作为第一个启动设备来更改主板的 UEFI 屏幕中的启动选项/顺序时,会出现相同的消息。
答案1
首先介绍简单的东西:GPT 磁盘上的 ESP 的分区类型代码为 C12A7328-F81F-11D2-BA4B-00A0C93EC93B。这个代码太长太复杂,不适合人类使用,因此程序使用各种简写来引用此代码。在 GPT fdisk(gdisk
、cgdisk
和sgdisk
)中,它是“EF00”。在大多数基于 libparted 的工具(parted
、GParted 等)中,它是一个“启动标志”。不幸的是,libparted 开发人员从 MBR 启动标志(又名“活动标志”)中“劫持”了“启动标志”命名法,这与 ESP 类型代码完全无关,尽管存在模糊的概念关系。这造成了混淆,因为在 MBR 中,启动标志通常设置在保存第二阶段引导加载程序代码的分区上,在 Linux 中通常是/boot
或根(/
)分区;但在 GPT 下,“启动标志”应该设置仅有的在 ESP 上。我建议您不要考虑 ESP 磁盘上的“启动标志”,因为这是 libparted 特有的识别 ESP 的方式。相反,请考虑分区类型(即分区是 ESP,还是 Linux 文件系统分区,还是 Windows 文件系统分区等),并知道 libparted 将 ESP 标识为具有“启动标志”。
至于其余部分,启动信息脚本输出确实会有所帮助。我真正的问题是 Windows 启动过程哪里出错了。您报告的“无法正常工作”不准确,因此很难提出解决方案。选择 Windows 选项时的具体症状是什么?Windows 条目是什么grub.cfg
?(启动信息脚本将显示此详细信息。)
以下是一些大胆的建议:
- 下载并准备我的 USB 闪存驱动器或 CD-R 版本的rEFInd 启动管理器。然后,您可以尝试使用它进行启动。rEFInd 通常比 GRUB 更能检测 Windows 引导加载程序并启动它,因此这可能会让您进入 Windows;但是,如果 Windows 引导加载程序丢失或损坏,rEFInd 将无济于事。尝试这种方法的一个优点是风险非常低;除非您将其安装到磁盘上,否则 rEFInd 不会破坏您当前的启动配置,即使它无法提供帮助。如果它做帮助,您可以将 rEFInd 安装到您的硬盘上,并且可以确信它在以这种方式启动时可以像从外部介质启动时一样正常工作。
- 跑过引导修复工具。这更像是一种信念的飞跃;它要么有效,要么无效,如果无效,那么很有可能会让事情变得更糟。
- 运行 Windows 修复工具。如果问题是 Windows 引导加载程序文件丢失或损坏,此选项可能会有所帮助。如果您需要帮助,您可能应该在 Windows 论坛上提问。
是否要运行基于 Linux 的修复(例如 Boot Repair)或基于 Windows 的修复,很大程度上取决于确定 Windows 启动问题是 GRUB 配置错误还是 Windows 启动文件丢失或损坏。您可以手动查找这些文件 - 它们应该出现在EFI/Microsoft/Boot/bootmgfw.efi
您的某个 ESP 上(以及同一目录中的其他文件)。如果这些文件完全丢失,请尝试 Windows 修复。如果文件存在,则您的 GRUB 配置混乱或 Windows 文件已损坏。(请注意,“损坏”可能包括“被 GRUB 替换”。某些工具(包括 Boot Repair)有时会尝试通过使用另一个 GRUB 副本替换 Windows 引导加载程序来修复 Linux 启动问题,通常会将 Windows 文件重命名为其他名称以使其可访问。)