Windows之后安装了Centos 7,无法启动到CentOS


11

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

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

我已经从USB重新启动,并尝试使用来(认真)解决问题cfdisk,例如,选择我认为是CentOS的启动分区,但它报告“缺少操作系统”。也cfdisk说,它无法重新读取分区表,当我在CentOS启动写,但开始cfdisk似乎再次显示该标志已设置。

当前,USB CentOS 7 netinstall在磁盘上显示以下分区:

## 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从“ Rescue CentOS system ...” 访问的分区表如下所示:

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

我从netinstall开始grub2使用(重新)安装,现在从磁盘启动时,出现提示。我可以使用它来链接加载到Windows。但是,当我尝试启动到CentOS 7时,会得到某种跟踪/转储。grub2-install/dev/sdagrub

我用了:

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 OSX。我总是对设置Windows和Linux双启动不感兴趣。

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

Answers:


4

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

寻找一个100或300MB的小分区(Windows 的Boot Partition),安装它,然后再次运行命令。

如果仍有问题,请在的末尾添加以下内容/etc/grub.d/40_custom

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

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

不要忘记跑步grub2-mkconfig


3

挂载Windows分区。(如果无法挂载,请安装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


感谢您的评论。经过多次尝试使其工作之后,我放入了一个新磁盘并仅安装了Centos7。但是,我仍想使其他磁盘在Windows下工作,因此我将其放入另一台计算机并按照您的指示进行操作。再次感谢!
Ashley Aitken

做过某事。现在进入启动菜单:-)但现在得到:错误:没有此类设备787776677 ...错误:hd1无法获取C / H / S值...
Ashley Aitken 2014年

这在Windows 7和CentOS 7上效果很好。谢谢。
内森·麦考伊

2

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


谢谢阿德。我相信CentOS 7使用Grub2,所以我将重新安装它。我猜它在500MB的启动分区中,但是我认为问题可能与MBR(或类似的东西)有关。Grub2会适当设置吗?
阿什莉·艾特肯

2

我一直在尝试使用Windows 7和centos 7进行双启动2天,并且做到了。只需按照简单的步骤
安装Windows 7
然后centos 7
重新启动计算机时,在grub中将看不到Windows 7的任何启动选项。
启动进入centos切换到su
使用命令,cfdisk
然后检查写入启动的标志,通知该分区,
然后在/boot/grub2/grub.cfg中打开grub文件,首先将其复制为grub.old.cfg,以备份该grub.cfg文件。并用

menuentry "WINDOWS"{
set root='(hd0,msdos1)' 
chainloader +1
}

在给出引导标志的分区上更改msdos的值。好像引导标志在/ dev / sda1中,然后在msdos1中,如果/ dev / sda2在msdos2中。

别忘了跑步 grub2-mkconfig

希望您会发现它有用。


希望OP将其选择为可接受的答案。对我来说工作得很好:nrecursions.blogspot.in/2015/12/…,但是最好有一个第三方引导加载程序来自动识别分区上的操作系统:superuser.com/questions/1009739/…
2015年

1

发现在其中添加文件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,但应该相同。


grub2-mkconfig命令的格式:
stv 2016年

1
cd / boot / grub2; grub2-mkconfig --output = grub.cfg
stv '16

1

我一直在尝试使用Windows 7和centos 7进行双引导两天,而我做到了。只需按照简单的步骤安装Windows 7然后centos 7重新启动计算机时,在grub中将看不到Windows 7的任何启动选项。引导进入centos并切换至su,使用命令cfdisk,然后检查引导写入位置的标志,通知该分区,然后在/boot/grub2/grub.cfg中打开grub文件,首先将其复制为grub.old.cfg,以备份grub.cfg文件。文件并用

menuentry“ WINDOWS” {set root ='(hd0,msdos1)'chainloader +1}使用给出引导标志的分区更改msdos的值。好像引导标志在/ dev / sda1中,然后在msdos1中,如果/ dev / sda2在msdos2中。

不要忘记运行grub2-mkconfig

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.