arch linux引导不启动_重装WIN7引发的双硬盘双系统ARCH LINUX无法引导问题

在UEFI-GPT环境下,Arch Linux与Win7构成双系统,重装Win7导致Arch Linux无法引导。通过Arch Linux安装U盘进入紧急shell,重新挂载分区并安装GRUB解决。错误尝试包括使用EASYbcd安装WinPE引导,但因BIOS和UEFI模式冲突失败。解决方案涉及GRUB配置及手动编辑引导菜单。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、环境介绍

UEFI-GPT

arch linux

/dev/sdb

BIOS-MBR

win7

/dev/sda

二、GHOST WIN7后现象:

ARCH LINUX已无法引导,无法找到系统。哪怕是把安装WIN7的SATA硬盘禁用掉,ARCH LINUX也无法引导启动。

WIN7系统无论从哪块硬盘都可以引导启动。(非常奇怪。GHOST的时候是在BIOS里面禁用ARCH LINUX所在SATA硬盘的)

三、排错过程

1、用ARCH LINUX安装U盘引导UEFI模式,进入arch emergency shell

查看磁盘分区信息

lsblk -f

直接挂载

mount /dev/sdb3 new_root

mount /dev/sdb1 /boot

安装GRUB

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

grub-mkconfig -o /boot/grub/grub.cfg

2、如果进入的是GRUB>提示符模式,请按如下操作恢复引导

find (hd1,0)/vmlinuz-(找到内核所在分区。按TAB键补齐命令,若能补齐命令,则内核在此分区)

root (hd1,0)

kernel /vmlinuz-按TAB键补齐命令

initrd /initramfs-按TAB键补齐命令

boot

或者

set root=(hd1,2)

linux (hd1,0)/vmlinuz-按TAB键补齐命令 root=/dev/sdb3

initrd (hd1,0)/initramfs-按TAB键补齐命令

boot

进入系统后

查看磁盘分区信息

lsblk -f

mount /dev/sdb3 /mnt/

mount /dev/sdb1 /mnt/boot

arch-chroot /mnt

重装GRUB

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

grub-mkconfig -o /boot/grub/grub.cfg

reboot

—————-

错误的步骤:

EASYbcd安装WINPE双系统引导程序

a、添加新条目——操作系统——LINUX/BSD——添加条目

b、编辑引导菜单——USE METRO BOOTloader(去掉打勾选项)——保存设置

重启电脑,卡在GRUB>提示符,因为BIOS未强制使用UEFI引导,所以efivar-tester的时候报错UEFI variables not supported on this machine

截止此处已无解。毕竟ARCH LINUX是在UEFI+GTP下面安装使用的,而WINDOWS是BIOS+MBR。

===========================

PS:创建ARCH安装U盘

1、找到U盘的盘符

lsblk -f

2、若U盘自动挂载了,请卸载

umount /xxx/udisk

3、做启动U盘

sudo dd bs=4M if=/home/xxx/Downloads/archlinux-2020.02.01-x86_64.iso of=/dev/sdc status=progress && sync

————-

BTW:双系统引导菜单

所有版本的 Windows 都不支持 BIOS 引导 GPT 分区上的 Windows 或 UEFI 引导 MBR 分区上的 Windows.目前官方 (Microsoft) 没有在 UEFI-MBR 或 BIOS-GPT 上运行 Windows 的方法.因此 Windows 只支持 UEFI-GPT 或 BIOS-MBR 启动.参阅 http://support.microsoft.com/kb/2581408

安装在 BIOS 模式下的 Arch Linux 的启动管理器也无法加载位于另一个 UEFI-GPT 硬盘上的 Windows.反之亦然

win7菜单引导archlinux

arch linux shell

dd if=/dev/sdb1 of=/mnt/archboot.bin bs=512 count=1

win7 cmd

新建启动菜单,生成{ID}

bcdedit /create /d “arch” /application bootsector

bcdedit /set {ID} device partition=c:

bcdedit /set {ID} path c:\archboot.bin

加入启动菜单

bcdedit /displayorder {ID} /addlast

bcdedit /timeout 3

删除启动菜单项

bcdedit /delete {ID}

————-

若想ARCH自动生产GRUB双系统引导菜单,就使用如下命令

pacman -S os-prober

mount /dev/sda1 /mnt

os-prober

grub-mkconfig -o /boot/grub/grub.cfg

若不想安装os-prober,那么就直接编辑GRUB菜单

vi /boot/grub/custom.cfg

if [ “${grub_platform}” == “pc” ]; then

menuentry “Microsoft Windows Vista/7/8/8.1/10 BIOS/MBR” {

insmod part_msdos

insmod ntfs

insmod ntldr

search –no-floppy –fs-uuid –set=root –hint-bios=hd0,msdos1 –hint-efi=hd0,msdos1 –hint-baremetal=ahci0,msdos1 XXXXXXXXXXXXXXXX

ntldr /bootmgr

}

fi

XXXXXXXXXXXXXXXX是指文件系统的 UUID,可以通过 lsblk –fs 命令查看,或者用blkid查看

赞过:

赞 正在加载……

相关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值