
之前也是双系统,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 xaxb 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 楼可解 |