之前也是双系统,sdb 是 ubuntu,有一个 128M 的小分区,可能是 /boot,我用 dd 备份了出来。
现在 sdb 重新分区,换了 arch。我以为安装 grub 的时候会自动检测到 win7,但是没有。
现在无法进入 windows 了,应该怎么把 windows 加入 grub 的启动项呢?
sda 是 win7,sda1 是 C 盘,sdb 是 arch。
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 238.5G 0 disk
|-sda1 8:1 0 100G 0 part
|-sda2 8:2 0 1K 0 part
`-sda5 8:5 0 138.5G 0 part
sdb 8:16 0 931.5G 0 disk
|-sdb1 8:17 0 500M 0 part /boot
|-sdb2 8:18 0 200G 0 part /home
`-sdb3 8:19 0 731G 0 part /
# fdisk -l
Disk /dev/sda: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3cf86319
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 4096 209725496 209721401 100G 7 HPFS/NTFS/exFAT
/dev/sda2 209725497 500118191 290392695 138.5G f W95 Ext'd (LBA)
/dev/sda5 209725560 500118191 290392632 138.5G 7 HPFS/NTFS/exFAT
Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: EE31D1C0-6E51-404A-90FC-E1C7AEB1EACC
Device Start End Sectors Size Type
/dev/sdb1 2048 1026047 1024000 500M EFI System
/dev/sdb2 1026048 420456447 419430400 200G Linux filesystem
/dev/sdb3 420456448 1953525134 1533068687 731G Linux filesystem
1
tempdban 2018-08-02 15:05:51 +08:00 via Android
XP 是 htldr win10 就打扰了
|
2
alex8 2018-08-02 15:37:20 +08:00
arch 没用过,应该和 CentOS 同理
1. 安装 ntfs 分区支持工具 rpm -ivh ntfs-3g*.rpm 2. 更新 grub grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg 然后 Windows 启动项就有了 |
3
7654 2018-08-02 15:50:11 +08:00
UEFI 的启动都存在 ESP 分区下的 EFI 文件夹
用 PE 在 sdb1 下用 bcdboot 重建 |
4
tarekyoog 2018-08-02 16:00:17 +08:00 via Android
```
pacman -S ntfs-3g os-prober grub-mkconfig -o /boot/grub/grub.cfg ``` |
5
Oo0 2018-08-02 16:02:09 +08:00
ls 正解
|
6
lxy OP 问题的复杂性在于之前是 win7+ubuntu 双系统,直接启动是 ubuntu 的 uefi 模式,如果要进入 win7 可以通过选项引导到 win7 的 legacy 启动。以上这些估计都放在 ubuntu 的 /boot 分区,现在 ubuntu 的整个硬盘都被覆盖了,win7 完好。通常的自动化工具都是针对 windows 系统已有启动引导分区的情况,现在就是没有这个分区,只有引导到 arch 的。需要想办法加载系统 C 盘上的 bootmgr。
网上找的资料,win7 启动过程,估计在 bootmgr 之前的都没了。 BIOS –>MBR –>DPT –>PBR –> Bootmgr –>BCD –>Winload.exe 更悲剧的是,不知道为什么之前 dd 备份的 ubuntu /boot 分区其实是空文件,全是 0 填充。 |
7
swordspoet 2018-08-04 10:49:34 +08:00 via iPhone
@lxy 我之前也碰到过,解决的办法是弄一个 win 系统光盘,在安装过程中有一个“修复计算机”,点击修复一下就能把启动项添加进去,可以试试看。
|
8
zzsx1937 2018-08-04 12:11:01 +08:00 via Android
128mb 不應該是 gpt 分區表裝 windows 必須的 MSR 分區麽?沒這個分區基本無法引導 windows 吧。
|
9
pcmid 2018-08-05 01:55:00 +08:00 via Android
4 楼可解
|