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

编程知识 更新时间:2023-04-19 14:10:05

一、环境介绍

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/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查看

赞过:

赞 正在加载……

相关

更多推荐

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

本文发布于:2023-04-15 05:58:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/688234cf823f8129bdee9642323fecb4.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:重装   双系统   双硬盘   arch   linux

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 77696文章数
  • 14阅读数
  • 0评论数