如何将 Windows XP 添加到 GRUB2 菜单

如何将 Windows XP 添加到 GRUB2 菜单

我有一台配备 Pentium D 820 的 Dell Dimension 5150(我知道它已经过时了,但我从朋友那里收到了它作为圣诞礼物。)

我在这个台式机上有2个硬盘:

  1. 安装了 Clover EFI 的 500GB 2.5' 笔记本电脑硬盘(GPT BIOS 设置)

  2. 80GB 3.5' 台式机硬盘(正常 MBR BIOS 设置)

分区布局

笔记本硬盘

https://i.stack.imgur.com/yDRC2.png

sda1:Ubuntu MATE 16.04
sda2:Windows 10
sda3:Phoenix OS
sda4:DATA(备份存储分区)
sda5:PARTIMG(分区映像存储)
sda6:ESP(EFI 系统分区)

(我以前使用过一台笔记本电脑,所有数据都在里面,但是它坏了,而这个硬盘还可以使用。)

台式机硬盘

https://i.stack.imgur.com/ZMKIW.png

sdb1:戴尔系统实用程序(OEM 分区)
sdb2:Windows XP SP3 家庭版
sdb3:Ubuntu XFce 18.04

如何将位于第二块硬盘的第二个分区上的 Windows XP 添加到 Ubuntu MATE 16.04 LTS 的 GRUB2 菜单项?

我已尝试过:

  1. insmod part_msdos
    insmod ntfs
    set root=(hd1,msdos2)
    chainloader +1
    
    error: Invalid EFI file path
    
  2. insmod part_msdos
    insmod ntfs
    set root=(hd1,msdos2)
    chainloader /ntldr
    
    error: cannot load image
    
  3. insmod part_msdos
    insmod ntldr
    insmod ntfs
    ntldr (hd1,msdos2)/ntldr
    
    error: ntldr.mod not found
    
  4. insmod part_msdos
    insmod chain
    drivemap hd0 hd1
    chainloader (hd1,msdos2)+1
    
    error: drivemap command not found
    
  5. insmod part_msdos
    insmod ntfs
    insmod search_fs_uuid
    search --fs-uuid --set=root --hint-bios=hd1,msdos2 --hint-efi=hd1,msdos2 --hint-baremetal=ahci1,msdos2 2ABF87DC395CFC02
    drivemap (hd1,msdos2) (hd0,msdos1)
    chainloader /ntldr
    
    error: cannot load image
    

我观察到的情况:

我确实尝试过它是否可以读取 NTFS 分区。它可以毫无问题地读取它。ls (hd1,msdos2)/ 返回硬盘上的一堆文件,包括启动文件(boot.ini、ntldr、AUTOEXEC.COM)

drivemap 仅在 i386-pc 包中可用,而不是 x86_64-efi 包中可用

这不是启动文件的问题,因为如果我断开第一个硬盘,它就能正常启动(它能正常启动到 Windows XP)。

os-prober 和 update-grub 无法检测 Windows XP 分区(即使已安装)。它仅检测第二个驱动器上的第一个分区(Dell System Utility)。

相关内容