我有两个固态,分别装着Windows和manjaro。现在的问题是在开机默认启动的grub里显示Windows然而不能引导,点一下就黑一下屏,然后就无事发生了。还有UEFI菜单里进入grub却两个都能引导,这是什么原因,新人求教。
此前我其实已经成功过了,但是听说refind比较高级就想试试,然后就成现在这样了
之后我把两个系统都重装了一遍,然而并没有用
我有两个固态,分别装着Windows和manjaro。现在的问题是在开机默认启动的grub里显示Windows然而不能引导,点一下就黑一下屏,然后就无事发生了。还有UEFI菜单里进入grub却两个都能引导,这是什么原因,新人求教。
此前我其实已经成功过了,但是听说refind比较高级就想试试,然后就成现在这样了
之后我把两个系统都重装了一遍,然而并没有用
所以到底是grub还是refind呢?bootctl命令的输出看看?
现在是懒得搞refind了,下面是输出
System:
Firmware: n/a (n/a)
Firmware Arch: x64
Secure Boot: disabled
TPM2 Support: yes
Measured UKI: no
Measured OS: no
Boot into FW: supported
Platform Lang: zh_CN.UTF-8
Current Boot Loader:
Product: GRUB 2.14
Features: ✗ Boot counting
✗ Menu timeout control
✗ One-shot menu timeout control
✗ Default entry control
✗ One-shot entry control
✗ Support for XBOOTLDR partition
✗ Support for passing random seed to OS
✗ Load drop-in drivers
✗ Support Type #1 sort-key field
✗ Support @saved pseudo-entry
✗ Support Type #1 devicetree field
✗ Enroll SecureBoot keys
✗ Retain SHIM protocols
✗ Menu can be disabled
后边应该还有?
额,确实,第一次见这种输出,不知道能往下翻...
System:
Firmware: n/a (n/a)
Firmware Arch: x64
Secure Boot: disabled
TPM2 Support: yes
Measured UKI: no
Measured OS: no
Boot into FW: supported
Platform Lang: zh_CN.UTF-8
Current Boot Loader:
Product: GRUB 2.14
Features: ✗ Boot counting
✗ Menu timeout control
✗ One-shot menu timeout control
✗ Default entry control
✗ One-shot entry control
✗ Support for XBOOTLDR partition
✗ Support for passing random seed to OS
✗ Load drop-in drivers
✗ Support Type #1 sort-key field
✗ Support @saved pseudo-entry
✗ Support Type #1 devicetree field
✗ Enroll SecureBoot keys
✗ Retain SHIM protocols
✗ Menu can be disabled
✗ Multi-Profile UKIs are supported
✗ Loader reports network boot URL
✗ Support Type #1 uki field
✗ Support Type #1 uki-url field
✗ Loader reports active TPM2 PCR banks
✗ Loader reports firmware keyboard layout
lines 1-33/63 55%
✗ Loader measures SMBIOS information
Partition: /dev/disk/by-partuuid/afeee102-2730-4b2c-8a11-4c7992d1bc6c
Random Seed:
System Token: not set
Exists: no
Available Boot Loaders on ESP:
ESP: /boot/efi (/dev/disk/by-partuuid/afeee102-2730-4b2c-8a11-4c7992d1bc6c)
File: └─/boot/efi//EFI/BOOT/bootx64.efi
Boot Loaders Listed in EFI Variables:
Title: Manjaro
ID: 0x0002
Status: active, boot-order
Partition: /dev/disk/by-partuuid/afeee102-2730-4b2c-8a11-4c7992d1bc6c
File: └─/boot/efi//EFI/Manjaro/grubx64.efi
Title: Windows Boot Manager
ID: 0x0001
Status: active, boot-order
Partition: /dev/disk/by-partuuid/d022db68-90ca-42c6-bfa5-7de13e6264b3
File: └─/boot/efi//EFI/Microsoft/Boot/bootmgfw.efi
Boot Loader Entry Locations:
ESP: /boot/efi (/dev/disk/by-partuuid/afeee102-2730-4b2c-8a11-4c7992d1bc6c, $BOOT)
config: /boot/efi//loader/loader.conf: 没有那个文件或目录
token: manjaro
0 entries, no entry could be determined as default.
你进入的应该是主板的启动菜单(Boot menu),不是grub。
看看/boot/efi/grub/grub.cfg文件的内容?
[ 目录“/boot/efi/grub”不存在 ]
我可以确定我进的是grub,我是在boot menu里点击UEFI-manjaro这个选项进入了grub,这个grub是两个系统都能正常进的(至少这俩界面是一样的,也都标注自己是grub了,我应该不能认错
诶?但是你看上去只有一个grub啊,难道bootctl的输出不可靠?那你看看efibootmgr的输出。
另外你知道你的grub.cfg在哪里吗?也看看。
然后lsblk -o+FSTYPE,FSSIZE,PARTLABEL,LABEL,UUID,PARTTYPENAME看看你是不是有多个ESP。
efibootmgr如下
BootCurrent: 0002
Timeout: 0 seconds
BootOrder: 0002,0001,0004,0007,0005,0006,0008
Boot0001* Windows Boot Manager HD(1,GPT,d022db68-90ca-42c6-bfa5-7de13e6264b3,0x800,0x64000)/\EFI\Microsoft\Boot\bootmgfw.efi57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300630031002d006600330032006200330034003400640034003700390035007d00000000000100000010000000040000007fff04000400000049535048
Boot0002* Manjaro HD(3,GPT,afeee102-2730-4b2c-8a11-4c7992d1bc6c,0x800,0xfa000)/\EFI\Manjaro\grubx64.efi0400000049535048
Boot0004* Wi-Fi IPV4 Network PciRoot(0x0)/Pci(0x14,0x3)/MAC(58ce2ae5dbca,1)/Wi-Fi(00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00)/IPv4(0.0.0.0,0,DHCP,0.0.0.0,0.0.0.0,0.0.0.0)4eac0881119f594d850ee21a522c59b20000000049535048
Boot0005* Wi-Fi IPV6 Network PciRoot(0x0)/Pci(0x14,0x3)/MAC(58ce2ae5dbca,1)/Wi-Fi(00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00)/IPv6([::],0,Static,[::],[::],64)4eac0881119f594d850ee21a522c59b20000000049535048
Boot0006* IPV4 Network - Realtek PCIe GBE Family Controller PciRoot(0x0)/Pci(0x1c,0x0)/Pci(0x0,0x0)/MAC(5c60badbe807,0)/IPv4(0.0.0.0,0,DHCP,0.0.0.0,0.0.0.0,0.0.0.0)4eac0881119f594d850ee21a522c59b20000000049535048
Boot0007* IPV6 Network - Realtek PCIe GBE Family Controller PciRoot(0x0)/Pci(0x1c,0x0)/Pci(0x0,0x0)/MAC(5c60badbe807,0)/IPv6([::],0,Static,[::],[::],64)4eac0881119f594d850ee21a522c59b20000000049535048
Boot0008* Kingston DataTraveler 3.0 60A44C3FAC2DB35119990034 PciRoot(0x0)/Pci(0x14,0x0)/USB(12,0)4eac0881119f594d850ee21a522c59b20980010049535048
Boot000C USB NETWORK BOOT: PciRoot(0x0)/Pci(0x0,0x0)/IPv4(0.0.0.0,0,DHCP,0.0.0.0,0.0.0.0,0.0.0.0)4eac0881119f594d850ee21a522c59b21b08020049535048
Boot000D USB NETWORK BOOT: PciRoot(0x0)/Pci(0x0,0x0)/IPv6([::],0,Static,[::],[::],0)4eac0881119f594d850ee21a522c59b21b10020049535048
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 ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${env_block}" ] ; then
set env_block="(${root})${env_block}"
export env_block
load_env -f "${env_block}"
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
if [ "${env_block}" ] ; then
save_env -f "${env_block}" next_entry
else
save_env next_entry
fi
set boot_once=true
else
set default="${saved_entry}"
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}"
if [ "${env_block}" ] ; then
save_env -f "${env_block}" saved_entry
else
save_env saved_entry
fi
fi
}
function load_video {
if [ x$grub_platform = xefi ]; then
insmod efi_gop
insmod efi_uga
elif [ 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
}
set menu_color_normal=light-gray/black
set menu_color_highlight=green/black
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root d5c7056b-cbd1-4806-84aa-dd6f76285ce7
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=zh_CN
insmod gettext
fi
terminal_input console
terminal_output gfxterm
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root d5c7056b-cbd1-4806-84aa-dd6f76285ce7
insmod gfxmenu
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_12.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_14.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_16.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_24.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_48.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_bold_16.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_mono_12.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-12.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-14.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-16.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-18.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-b12.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-b14.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-b16.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-b18.pf2
insmod png
set theme=($root)/usr/share/grub/themes/manjaro/theme.txt
export theme
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=hidden
set timeout=5
# Fallback hidden-timeout code in case the timeout_style feature is
# unavailable.
elif sleep --interruptible 5 ; then
set timeout=0
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Manjaro Linux' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-d5c7056b-cbd1-4806-84aa-dd6f76285ce7' {
savedefault
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root d5c7056b-cbd1-4806-84aa-dd6f76285ce7
linux /boot/vmlinuz-6.18-x86_64 root=UUID=d5c7056b-cbd1-4806-84aa-dd6f76285ce7 rw quiet splash udev.log_priority=3
initrd /boot/intel-ucode.img /boot/amd-ucode.img /boot/initramfs-6.18-x86_64.img
}
submenu 'Manjaro Linux 的高级选项' $menuentry_id_option 'gnulinux-advanced-d5c7056b-cbd1-4806-84aa-dd6f76285ce7' {
menuentry 'Manjaro Linux (Kernel: 6.18.39-1-MANJARO x64)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.18.39-1-MANJARO x64-advanced-d5c7056b-cbd1-4806-84aa-dd6f76285ce7' {
savedefault
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root d5c7056b-cbd1-4806-84aa-dd6f76285ce7
linux /boot/vmlinuz-6.18-x86_64 root=UUID=d5c7056b-cbd1-4806-84aa-dd6f76285ce7 rw quiet splash udev.log_priority=3
initrd /boot/intel-ucode.img /boot/amd-ucode.img /boot/initramfs-6.18-x86_64.img
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/15_ostree ###
### END /etc/grub.d/15_ostree ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/25_bli ###
if [ "$grub_platform" = "efi" ]; then
insmod bli
fi
### END /etc/grub.d/25_bli ###
### BEGIN /etc/grub.d/30_os-prober ###
# This menu entry is supported only on EFI platforms.
if [ "$grub_platform" = "efi" ]; then
menuentry 'Windows Boot Manager (位于 /dev/nvme0n1p1)' --class windows --class os $menuentry_id_option 'osprober-efi-94C6-5D83' {
savedefault
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root 94C6-5D83
chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
fi
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 ###
if [ "$grub_platform" = "efi" ]; then
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
fwsetup
}
fi
### END /etc/grub.d/30_uefi-firmware ###
### BEGIN /etc/grub.d/35_fwupd ###
### END /etc/grub.d/35_fwupd ###
### 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.
### 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 ###
### BEGIN /etc/grub.d/41_snapshots-btrfs ###
### END /etc/grub.d/41_snapshots-btrfs ###
### BEGIN /etc/grub.d/60_memtest86+ ###
if [ "${grub_platform}" == "pc" ]; then
menuentry "Memory Tester (memtest86+)" --class memtest86 --class gnu --class tool {
search --fs-uuid --no-floppy --set=root d5c7056b-cbd1-4806-84aa-dd6f76285ce7
linux16 /boot/memtest86+/memtest.bin
}
fi
### END /etc/grub.d/60_memtest86+ ###
### BEGIN /etc/grub.d/60_memtest86+-efi ###
if [ "${grub_platform}" == "efi" ]; then
menuentry "Memory Tester (memtest86+)" --class memtest86 --class gnu --class tool {
if loadfont unicode ; then
set gfxmode=1024x768,800x600,auto
set gfxpayload=800x600,1024x768
terminal_output gfxterm
fi
search --fs-uuid --no-floppy --set=root d5c7056b-cbd1-4806-84aa-dd6f76285ce7
linux /boot/memtest86+/memtest.efi
}
fi
### END /etc/grub.d/60_memtest86+-efi ###
这是lsblk的输出
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS FSTYPE FSSIZE PARTLABEL LABEL UUID PARTTYPENAME
sda 8:0 1 28.9G 0 disk
├─sda1
│ 8:1 1 28.9G 0 part exfat Ventoy Ventoy B8EA-82F7 Microsoft basic data
└─sda2
8:2 1 32M 0 part vfat VTOYEFI VTOYEFI 7F97-3D1F Microsoft basic data
nvme1n1
│ 259:0 0 476.9G 0 disk udf PCHA_X64FREO_ZH-CN_DV9 81c480004d532055
├─nvme1n1p1
│ 259:1 0 200M 0 part vfat Basic data partition 94C6-5D83 EFI System
├─nvme1n1p2
│ 259:2 0 16M 0 part Microsoft reserved partition Microsoft reserved
├─nvme1n1p3
│ 259:3 0 124.3G 0 part ntfs Basic data partition B45CC6CE5CC68B16 Microsoft basic data
├─nvme1n1p4
│ 259:4 0 351.6G 0 part ntfs Basic data partition 新加卷 0616E8E116E8D2AB Microsoft basic data
└─nvme1n1p5
259:5 0 841M 0 part ntfs A2CE6BD4CE6B9F73 Windows recovery environment
nvme0n1
│ 259:6 0 238.5G 0 disk
├─nvme0n1p1
│ 259:7 0 84G 0 part / ext4 82.1G d5c7056b-cbd1-4806-84aa-dd6f76285ce7 Linux filesystem
├─nvme0n1p2
│ 259:8 0 154G 0 part /home ext4 150.5G b690bc49-5fef-4ef4-93c5-d98f3d4f9978 Linux filesystem
└─nvme0n1p3
259:9 0 500M 0 part /boot/efi vfat 499M 422B-355E EFI System
你有两个ESP:一个Manjaro的,一个Windows的,分别位于两块硬盘上。这本身没什么问题。
这里还有一个位于默认位置的引导项,和你的「Manjaro」引导项位于同一个ESP上,但是是另外的文件。
推测这个bootx64.efi也是grub的,但是和当前安装到ESP的grub版本不匹配,从而引导出现问题。建议删掉这个文件,改成UEFI变量里写的那个grub;负面影响是这块硬盘插到机器上之后不能直接引导、需要写入UEFI变量。不是移动硬盘的话无所谓。
没有使情况变得更好,目前状况与操作前完全相同,不清楚是否是我操作的问题
大不了把引导什么删掉重装
确实,但我已经重装两边了。每次都是先win后manjaro,但是不清楚什么原因,此前成功过一次,但现在还是这样
这个好像表述的不太清楚,”然而没有用“指的是我整refind又把系统整坏之后又重装了一遍系统,然后还是坏着
补充一个信息,不能进win的那个grub连命令行都打不开
啊,不应该把引导分区抹掉,再重装grub。重装系统?
症状对得上。你找到所有的bootx64.efi并把它删掉吧。
感谢建议,但好像不是因为这个。刚刚把快速引导关了,然后就一切正常了。碰碰运气结果真碰对了。。。 ![]()