![如何让 grub2 启动另一个驱动器 MBR?](https://linux22.com/image/1409364/%E5%A6%82%E4%BD%95%E8%AE%A9%20grub2%20%E5%90%AF%E5%8A%A8%E5%8F%A6%E4%B8%80%E4%B8%AA%E9%A9%B1%E5%8A%A8%E5%99%A8%20MBR%EF%BC%9F.png)
我的笔记本电脑(DELL Vostro 3350)有两个硬盘:1- /dev/sda,带有 Ubuntu14.04 的 ssd,grub2 安装到此 MBR。安装在普通硬盘托架上 2- /dev/sdb,库存硬盘(带有恢复分区等)用适配器代替 DVD 驱动器
我不知道如何从 grub2 启动 Windows。过去我记得(可能使用 grub1)我可以指向第二个磁盘 mbr,然后 Windows 正常启动。
所以我的配置是:
Disk /dev/sda: 128.0 GB, 128035676160 bytes
255 testine, 63 settori/tracce, 15566 cilindri, totale 250069680 settori
Unità = settori di 1 * 512 = 512 byte
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificativo disco: 0x0007d87d
Dispositivo Boot Start End Blocks Id System
/dev/sda1 * 2048 175781887 87889920 83 Linux
/dev/sda2 175783934 250068991 37142529 5 Esteso
/dev/sda5 175783936 246163455 35189760 83 Linux
/dev/sda6 246165504 250068991 1951744 82 Linux swap / Solaris
Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 testine, 63 settori/tracce, 60801 cilindri, totale 976773168 settori
Unità = settori di 1 * 512 = 512 byte
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificativo disco: 0xb3e7a9bf
Dispositivo Boot Start End Blocks Id System
/dev/sdb1 2048 206847 102400 de Dell Utility
/dev/sdb2 206848 30926847 15360000 7 HPFS/NTFS/exFAT
/dev/sdb3 * 30926848 167600175 68336664 7 HPFS/NTFS/exFAT
/dev/sdb4 167604160 976768064 404581952+ f W95 Esteso (LBA)
/dev/sdb5 167606208 976768064 404580928+ 7 HPFS/NTFS/exFAT
这是我的/boot/grub/grub.cfg
os-prober 部分
menuentry 'Windows 7 (loader) (su /dev/sdb2)' --class windows --class os $menuentry_id_option 'osprober-chain-CC70378A703779F2' {
insmod part_msdos
insmod ntfs
set root='hd1,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos2 --hint-efi=hd1,msdos2 --hint-baremetal=ahci1,msdos2 CC70378A703779F2
else
search --no-floppy --fs-uuid --set=root CC70378A703779F2
fi
parttool ${root} hidden-
chainloader +1
}
menuentry 'Windows 7 (loader) (su /dev/sdb3)' --class windows --class os $menuentry_id_option 'osprober-chain-AC7C4EC27C4E86D4' {
insmod part_msdos
insmod ntfs
set root='hd1,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos3 --hint-efi=hd1,msdos3 --hint-baremetal=ahci1,msdos3 AC7C4EC27C4E86D4
else
search --no-floppy --fs-uuid --set=root AC7C4EC27C4E86D4
fi
parttool ${root} hidden-
chainloader +1
}
如果我在启动菜单上选择它们,它们都会显示此消息:
error: no such device: CC70378A703779F2 (or AC7C4EC27C4E86D4)
error: hd1 cannot get C/H/S values
最后,但并非最不重要的一点是,从我的 BIOS 中无法更改硬盘启动优先级所以没有办法/dev/sdb
先启动。
编辑:
这是我的blkid
/dev/sda1: UUID="1597fe18-faf5-48a5-b80f-4cbb7f8b896e" TYPE="ext4"
/dev/sda5: UUID="ea6548f1-3004-49ff-8d1d-4c84dfed3a6a" TYPE="ext4"
/dev/sda6: UUID="e24dbc3b-d2da-4a63-97ce-7430cfce9fce" TYPE="swap"
/dev/sdb1: SEC_TYPE="msdos" LABEL="DELLUTILITY" UUID="3030-3030" TYPE="vfat"
/dev/sdb2: LABEL="Recovery" UUID="CC70378A703779F2" TYPE="ntfs"
/dev/sdb3: LABEL="OS" UUID="AC7C4EC27C4E86D4" TYPE="ntfs"
/dev/sdb5: LABEL="VostroHD" UUID="01CCBB70E50A71E0" TYPE="ntfs"
编辑:我运行了bootinfo
脚本。这里结果
EDIT2:顶部的 PC 配置
答案1
虽然您使用的是 Ubuntu 而不是 Arch Linux(并且没有指定您使用的 Windows 版本),但这可能会对您有所帮助。
https://wiki.archlinux.org/index.php/GRUB#Dual-booting