Installierte Centos 7 nach Windows und kann nicht in CentOS booten

11

Ich wollte einen Dual-Boot für Windows 7 und CentOS 7 einrichten

Ich hatte einen Windows 7-Computer mit 500 GB Festplatte. Ich habe die Windows-Partition verkleinert, um Platz für CentOS 7 (ca. 230 GB) bereitzustellen. Ich habe einen USB CentOS 7 Netinstall Stick erstellt und davon gebootet. Ich habe die Installation so konfiguriert, dass ich CentOS 7 auf dem freien Speicherplatz (und nicht auf der gesamten Festplatte) installiert habe. Ich habe die Netzinstallation durchgeführt und alles schien gut zu laufen, aber als es neu gestartet wurde, war ich wieder in Windows und kann nicht in CentOS einsteigen.

Ich habe über USB neu gestartet und versucht, die Situation (sorgfältig) zu beheben cfdisk, indem ich z. B. die CentOS-Startpartition ausgewählt habe, die jedoch "fehlendes Betriebssystem" meldet. cfdiskSagt auch, dass es die Partitionstabelle nicht erneut lesen kann, wenn ich sie mit CentOS boot schreibe, aber ein cfdiskerneuter Start scheint zu zeigen, dass das Flag gesetzt wurde.

Derzeit zeigt mir die USB CentOS 7-Netzinstallation die folgenden Partitionen auf der Festplatte:

## DATA  
/home 168GB centos-home  

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

Die "anderen" Windows-Partitionen sind:

ntfs 100MB sda1  
ntfs 253GB sda2

Dies sieht in Ordnung aus, ABER wenn ich wieder in die CentOS 7-Installation gehe, muss ich Mount-Punkte für die Root-Partition erstellen. Ich habe dies ursprünglich nicht getan, da ich dachte, dass dies automatisch erfolgen würde, wenn ich bei der ersten Installation des Festplatten-Setups auf "Klicken Sie hier, um sie automatisch zu erstellen" klickte.

Und die Partitionstabelle, auf die über cfdisk"Ein CentOS-System retten ..." zugegriffen wird, sieht folgendermaßen aus:

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

Wie bereits erwähnt, wird beim Booten mit dieser Konfiguration das "fehlende Betriebssystem" angezeigt. Wenn ich das Boot-Flag wieder in sda1 ändere, wird Windows 7 problemlos gestartet.

UPDATE # 1

Ich (neu) installiert grub2mit grub2-installvon netinstall on /dev/sdaund jetzt, wenn ich von der Festplatte boote, erhalte ich die grubEingabeaufforderung. Ich kann es verwenden, um das Laden in Windows zu verketten. Wenn ich jedoch versuche, CentOS 7 zu starten, erhalte ich eine Art Trace / Dump.

Ich benutzte:

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

HINWEIS: Ich glaube, dies linuxist die primäre Startpartition für CentOS

Der Versuch, das oben genannte, stürzt einfach ab.

UPDATE # 2

Ich habe NTFS-3G und NTFSPROGS yumaus dem EPEL-Repository installiert .

Ich habe ausgeführt grub2-mkconfig -o /boot/grub2/grub.cfgund dann neu gestartet, um Windows 7 (Loader) im Startmenü zu finden. Aber wenn ich es wähle, bekomme ich:

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

Das klingt überhaupt nicht sehr gut, aber zumindest einige Fortschritte.

Ich sollte auch sagen, dass ich CentOS 7 jetzt nur auf dem internen Laufwerk habe und an diesem Laufwerk als externes USB-Laufwerk arbeite (daher /dev/sdb).

Kann mir bitte jemand helfen, Windows zum Booten zu bringen?

Ich habe einen Unix-Hintergrund, verwende aber meistens Mac OS X. Ich bin immer beim Einrichten von Windows- und Linux-Dual-Boot hängen geblieben.

Schließlich läuft das CentOS 6.5-System auf einem anderen Computer sowie auf meinem Mac einwandfrei.

Ashley Aitken
quelle

Antworten:

4

Sie haben wahrscheinlich die falsche Windows-Partition gemountet.

Suchen Sie nach einer kleinen Partition von 100 oder 300 MB (der Boot-Partition von Windows), hängen Sie sie ein und führen Sie den Befehl erneut aus.

Wenn Sie immer noch Probleme haben, fügen Sie am Ende von Folgendes hinzu /etc/grub.d/40_custom:

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

Dies setzt voraus, dass die Windows-Startpartition die erste Partition der ersten Festplatte ist.

Vergiss nicht zu rennen grub2-mkconfig.

Sabu
quelle
3

Montieren Sie die Windows-Partition. (Wenn Sie nicht mounten können, installieren Sie ntfsprogs-2013.1.13-5.el7.x86_64.rpm und ntfs-3g-2013.1.13-5.el7.x86_64.rpm. )

Als root ausführen grub2-mkconfig -o /boot/grub2/grub.cfg

Sabu
quelle
Danke für den Kommentar. Nach vielen Versuchen, dies zum Laufen zu bringen, habe ich eine neue Festplatte eingelegt und nur Centos 7 installiert. Ich möchte jedoch weiterhin die andere Festplatte mit Windows zum Laufen bringen, damit ich die Festplatte in einen anderen Computer einlege und Ihren Anweisungen folge. Danke noch einmal!
Ashley Aitken
Tat dies. Jetzt bekommen Eintrag im Boot-Menü :-) Aber jetzt bekommen: Fehler: kein solches Gerät 787776677 ... Fehler: HD1 kann keine C / H / S-Werte bekommen ...
Ashley Aitken
Dies funktionierte hervorragend mit Windows 7 und CentOS 7. Danke.
Nathan McCoy
2

Installieren Sie den CentOS-Bootloader neu (egal ob LILO oder GRUB). Das Bootloader-Installationsprogramm sollte Betriebssysteme auf Ihrem Computer erkennen und Ihnen beim Booten automatisch die Betriebssystemauswahl anzeigen. CMIIW.

Ade Malsasa Akbar
quelle
Danke Ade. Ich glaube, dass CentOS 7 Grub2 verwendet, daher werde ich das neu installieren. Ich denke, es geht in die 500-MB-Boot-Partition, aber ich dachte, das Problem würde mehr mit dem MBR (oder so ähnlich) zusammenhängen. Wird der Grub2 das angemessen einrichten?
Ashley Aitken
2

Ich habe 2 Tage lang einen Dual-Boot mit Windows 7 und Centos 7 ausprobiert und es geschafft. Befolgen Sie einfach die einfachen Schritte.
Installieren Sie
Windows 7 und dann Centos 7.
Wenn Sie den PC neu starten, wird in grub keine Startoption für Windows 7 angezeigt.
Booten Sie in den Centos-Schalter, su
um den Befehl zu verwenden. Suchen Sie cfdisk
dann nach Flags, in denen der Boot geschrieben ist. Benachrichtigen Sie diese Partition.
Öffnen Sie dann die Grub-Datei in /boot/grub2/grub.cfg. Sichern Sie zuerst die Datei grub.cfg, indem Sie sie als grub.old.cfg kopieren. Öffnen Sie die Datei und bearbeiten Sie es mit

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

Ändern Sie den Wert von msdos mit der Partition, auf der das Boot-Flag angegeben ist. als ob das Boot-Flag in / dev / sda1 ist, dann msdos1, wenn / dev / sda2, dann msdos2.

Vergiss nicht zu rennen grub2-mkconfig

Ich hoffe, Sie finden es nützlich.

avtar singh
quelle
Hoffe, das OP wählt dies als akzeptierte Antwort. Funktionierte perfekt für mich: nrecursions.blogspot.in/2015/12/... , aber es wäre besser gewesen , einen Drittanbieter - Boot-Loader zu haben , die automatisch OS'es auf Partitionen erkennen: superuser.com/questions/1009739/...
Nav
1

Es wurde festgestellt, dass das Hinzufügen von Datei 11_Fenster /etc/grub.dhilfreicher war:

Inhalt:

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

Dann rannte grub2-mkconfig nach dem Speichern der Sicherung von grub.cfgin /boot/grub2.

Zu den Ergebnissen gehörte der Eintrag "WINDOWS" im Grub-Menü während des Startvorgangs.

Mein Fall war für Windows 10, sollte aber der gleiche sein.

stv
quelle
Format des Befehls grub2-mkconfig:
stv
1
cd / boot / grub2; grub2-mkconfig --output = grub.cfg
stv
1

Ich habe zwei Tage lang einen Dual-Boot mit Windows 7 und Centos 7 ausprobiert und es geschafft. Befolgen Sie einfach die einfachen Schritte. Installieren Sie Fenster 7 und dann Centos 7. Wenn Sie den PC neu starten, wird in grub keine Startoption für Windows 7 angezeigt. Booten Sie in den Centos-Schalter, um den Befehl cfdisk zu verwenden. Suchen Sie dann nach Flags, in denen der Boot geschrieben ist. Benachrichtigen Sie diese Partition. Öffnen Sie dann die Grub-Datei in /boot/grub2/grub.cfg. Sichern Sie zuerst die Datei grub.cfg, indem Sie sie als grub.old.cfg open kopieren die Datei und bearbeiten Sie es mit

menuentry "WINDOWS" {set root = '(hd0, msdos1)' chainloader +1} ändere den Wert von msdos mit der Partition, auf der das Boot-Flag angegeben ist. als ob das Boot-Flag in / dev / sda1 ist, dann msdos1, wenn / dev / sda2, dann msdos2.

Vergessen Sie nicht, grub2-mkconfig auszuführen

Surinder Kumar
quelle