在Windows之后安装了Centos 7并且无法启动到CentOS

在Windows之后安装了Centos 7并且无法启动到CentOS

我想为 Windows 7 和 CentOS 7 设置双启动

我有一台带有 500GB 磁盘的 Windows 7 机器。我缩小了 Windows 分区,为 CentOS 7 提供空间(大约 230GB)。我创建了一个 USB CentOS 7 网络安装棒并从它启动。我按照我所知道的最佳配置运行了安装,将 CentOS 7 安装到可用空间(而不是整个磁盘)。我进行了网络安装,一切似乎都很顺利,但是当它重新启动时,我又回到了 Windows,并且无法进入 CentOS。

我已经从 USB 重新启动并尝试使用(仔细)修复该情况cfdisk,例如选择我认为是 CentOS 启动分区,但它报告“缺少操作系统”。还说cfdisk当我用 CentOS 启动写入分区表时,它无法重新读取分区表,但cfdisk再次启动似乎显示标志已设置。

目前 USB CentOS 7 网络安装显示了磁盘上的以下分区:

## DATA  
/home 168GB centos-home  

## SYSTEM  
/boot 500MB sda3  
/ 51GB centos-root  
swap 3.85GB centos-swap  

“其他”Windows 分区是:

ntfs 100MB sda1  
ntfs 253GB sda2

这看起来不错,但是当我再次进入 CentOS 7 安装时,它告诉我必须为根分区创建挂载点。我最初没有这样做,因为我认为当我第一次安装时单击“单击此处自动创建它们”进行磁盘设置时,它会自动完成。

cfdisk使用“救援 CentOS 系统...”访问的分区表如下所示:

Unusable 1MB  
sda1 Primary ntfs 105MB    
sda2 Primary ntfs 265GB  
sda3 Boot Primary xfs 525MB    
sda5 NC Logical LVM2_member 235GB  
Logical Free space 0.03MB

如前所述,当我尝试使用此配置启动时,我得到“缺少操作系统”。如果我将启动标志更改回 sda1,那么它可以正常启动到 Windows 7。

更新#1

grub2我使用grub2-installnetinstall 进行(重新)安装/dev/sda,现在当我从磁盘启动时,我会收到grub提示。我可以使用它来链接加载到 Windows 中。然而,当我尝试启动 CentOS 7 时,我得到了某种跟踪/转储。

我用了:

linux  (hd0,msdos3)/vmlinuz-3... root=/dev/sda3
initrd (hd0,msdos3/initrd-plymouth...
boot

笔记:我相信linux是 CentOS 的主引导分区

尝试上面的方法只会崩溃。

更新#2

yum我使用EPEL 存储库安装了 NTFS-3G 和 NTFSPROGS 。

我运行grub2-mkconfig -o /boot/grub2/grub.cfg然后重新启动,在启动菜单中找到 Windows 7(加载程序)。但当我选择它时,我得到:

error: no such device 978778...
error: hd1 cannot get C/H/S values....

听起来不太好,但至少取得了一些进展。

我还应该说,我现在仅在内部驱动器上安装了 CentOS 7,并且我正在将此驱动器用作外部 USB 驱动器(因此/dev/sdb)。

有人可以帮我启动 Windows 吗?

我有 Unix 背景,但主要使用 Mac OS X。我总是在设置 Windows 和 Linux 双启动时陷入困境。

最后,我的 CentOS 6.5 系统在另一台机器上以及我的 Mac 上运行良好。

答案1

您可能安装了错误的 Windows 分区。

寻找 100 或 300MB 的小分区(引导分区Windows 的版本),安装它,然后再次运行该命令。

如果您仍然遇到问题,请将以下内容添加到末尾/etc/grub.d/40_custom

menuentry "Windows"{
    set root='(hd0,0)'
    chainloader +1
}

这是假设 Windows 启动分区是第一个硬盘的第一个分区。

别忘了奔跑grub2-mkconfig

答案2

挂载windows分区。 (如果无法mount安装ntfsprogs-2013.1.13-5.el7.x86_64.rpmntfs-3g-2013.1.13-5.el7.x86_64.rpm

以 root 身份运行grub2-mkconfig -o /boot/grub2/grub.cfg

答案3

重新安装 CentOS 引导加载程序(无论是 LILO 还是 GRUB)。引导加载程序安装程序应该识别您计算机中的操作系统,并在引导时自动向您显示操作系统选择。 CMIIW。

答案4

发现添加 File 11_windows/etc/grub.d更有帮助:

内容:

#!/bin/sh
cat << EOF
menuentry "WINDOWS"{
set root='(hd0,msdos1)' 
chainloader +1
}
EOF

然后在grub2-mkconfig保存备份后运行。grub.cfg/boot/grub2

结果包括在启动过程中在 grub 菜单中添加了“WINDOWS”条目。

我的情况是针对Windows10的,但应该是一样的。

相关内容