ติดตั้ง Centos 7 หลังจาก Windows และไม่สามารถบูตเป็น CentOS ได้


11

ฉันต้องการเซ็ตอัพบูตคู่สำหรับ Windows 7 และ CentOS 7

ฉันมีเครื่อง Windows 7 ที่มีดิสก์ 500GB ฉันย่อขนาดพาร์ติชัน Windows เพื่อให้มีพื้นที่สำหรับ CentOS 7 (ประมาณ 230GB) ฉันสร้างติดตั้งเน็ตบุ๊ก USB CentOS 7 และบู๊ตจากนั้น ฉันรันการติดตั้งที่กำหนดค่าไว้อย่างดีที่สุดฉันรู้ว่าจะติดตั้ง 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"ระบบกู้ภัย a 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-installจาก netinstall /dev/sdaและตอนนี้เมื่อฉันบูตจากดิสก์ฉันได้รับgrubพรอมต์ ฉันสามารถใช้มันเพื่อโหลดเชนเข้าสู่ Windows อย่างไรก็ตามเมื่อฉันพยายามบูตใน CentOS 7 ฉันจะได้รับร่องรอย / การถ่ายโอนข้อมูลบางอย่าง

ฉันใช้:

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

หมายเหตุ:ฉันเชื่อว่าlinuxเป็นพาร์ติชันสำหรับเริ่มระบบหลักสำหรับ CentOS

การลองผิดพลาดด้านบน

อัปเดต # 2

ฉันติดตั้ง NTFS-3G และ NTFSPROGS โดยใช้yumจากที่เก็บ EPEL

ฉันวิ่งgrub2-mkconfig -o /boot/grub2/grub.cfgแล้วรีบูทใหม่เพื่อค้นหา Windows 7 (Loader) ในเมนูบู๊ต แต่เมื่อฉันเลือกฉันจะได้รับ:

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 ของฉัน

คำตอบ:


4

คุณอาจติดตั้งพาร์ติชัน Windows ผิด

ค้นหาพาร์ติชันขนาดเล็ก 100 หรือ 300MB ( Boot Partition of Windows) ติดตั้งแล้วเรียกใช้คำสั่งอีกครั้ง

หากคุณยังคงมีปัญหาอยู่ให้เพิ่มรายการต่อไปนี้ที่ส่วนท้ายของ/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.rpmและntfs-3g-2013.1.13-5.el7.x86_64.rpm )

เรียกใช้เป็นราก grub2-mkconfig -o /boot/grub2/grub.cfg


ขอบคุณสำหรับความคิดเห็น หลังจากพยายามทำงานนี้หลายครั้งฉันใส่ดิสก์ใหม่และติดตั้งเพียง Centos 7 อย่างไรก็ตามฉันยังอยากได้ดิสก์อื่นที่ทำงานด้วย Windows ดังนั้นฉันจะใส่ดิสก์ในเครื่องอื่นและทำตามคำแนะนำของคุณ ขอบคุณอีกครั้ง!
Ashley Aitken

ทำอย่างนั้น ตอนนี้รับรายการในเมนูบูต :-) แต่ตอนนี้ได้รับ: ข้อผิดพลาด: ไม่มีอุปกรณ์ดังกล่าว 787776677 ... ข้อผิดพลาด: hd1 ไม่สามารถรับค่า C / H / S ...
Ashley Aitken

มันใช้งานได้ดีกับ windows 7 และ CentOS 7 ขอบคุณ
Nathan McCoy

2

ติดตั้ง bootloader CentOS อีกครั้ง (ไม่ว่าจะเป็น LILO หรือ GRUB) ตัวติดตั้ง bootloader ควรรู้จัก OS ต่าง ๆ ในเครื่องของคุณและแสดงตัวเลือกระบบปฏิบัติการในเวลาบูตโดยอัตโนมัติ CMIIW


ขอบคุณ Ade ฉันเชื่อว่า CentOS 7 ใช้ Grub2 ดังนั้นฉันจะติดตั้งใหม่ ฉันเดาว่ามันจะอยู่ในพาร์ติชั่นสำหรับเริ่มระบบ 500MB แต่ฉันคิดว่าปัญหาจะเกี่ยวข้องกับ MBR มากกว่า (หรืออะไรทำนองนั้น) Grub2 จะตั้งค่าอย่างเหมาะสมหรือไม่?
Ashley Aitken

2

ฉันได้ลองดูอัลบูทด้วย window 7 และ centos 7 เป็นเวลา 2 วันแล้วและฉันก็ทำได้ เพียงทำตามขั้นตอนง่าย ๆ
ติดตั้งวินโดวส์ 7
จากนั้น centos 7
เมื่อคุณรีสตาร์ทพีซีคุณจะไม่เห็นตัวเลือกการบูตใด ๆ สำหรับ windows 7 ในด้วง
บูตเข้าสู่สวิตช์ centos เพื่อsu
ใช้คำสั่งcfdisk
จากนั้นตรวจสอบการตั้งค่าสถานะที่บูตถูกเขียนแจ้งว่าพาร์ติชัน
จากนั้นเปิดไฟล์ grub ใน /boot/grub2/grub.cfg สำรองข้อมูลไฟล์ grub.cfg ก่อนโดยคัดลอกเป็น grub.old.cfg เปิดไฟล์ และแก้ไขด้วย

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

เปลี่ยนค่าของ msdos ด้วยพาร์ติชันที่ได้รับการตั้งค่าสถานะการเริ่มระบบ ราวกับว่าการตั้งค่าสถานะการบูตอยู่ใน / dev / sda1 แล้ว msdos1 if / dev / sda2 แล้ว msdos2

อย่าลืมวิ่ง grub2-mkconfig

ฉันหวังว่าคุณจะพบว่ามีประโยชน์


หวังว่า OP จะเลือกสิ่งนี้เป็นคำตอบที่ยอมรับได้ ทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน: nrecursions.blogspot.in/2015/12/…แต่มันจะดีกว่าถ้ามี boot-loader ของบุคคลที่สามซึ่งรู้จัก OS'es บนพาร์ติชั่นโดยอัตโนมัติ: superuser.com/questions/1009739/
Nav

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

ผลลัพธ์รวมรายการที่เพิ่ม "WINDOWS" ในเมนูด้วงระหว่างการเริ่มต้น

กรณีของฉันสำหรับ Windows10 แต่ควรเหมือนกัน


รูปแบบของคำสั่ง grub2-mkconfig:
stv

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

1

ฉันลองบูทคู่กับ window 7 และ centos 7 เป็นเวลาสองวันแล้วและฉันก็ทำได้ เพียงทำตามขั้นตอนง่าย ๆ ติดตั้งวินโดวส์ 7 จากนั้น centos 7 เมื่อคุณรีสตาร์ทพีซีคุณจะไม่เห็นตัวเลือกการบูตใด ๆ สำหรับ windows 7 ในด้วง บูตเข้าสู่ centos สลับเป็น su ใช้คำสั่ง cfdisk จากนั้นตรวจสอบแฟล็กที่เขียนบูตแจ้งให้ทราบว่าพาร์ติชันนั้นเปิดไฟล์ grub ใน /boot/grub2/grub.cfg สำรองไฟล์ grub.cfg เป็นครั้งแรกโดยคัดลอกเป็น grub.old.cfg ไฟล์และแก้ไขด้วย

menuentry "WINDOWS" {set root = '(hd0, msdos1)' chainloader +1} เปลี่ยนค่าของ msdos ด้วยพาร์ติชั่นที่กำหนดแฟล็กสำหรับบูต ราวกับว่าการตั้งค่าสถานะการบูตอยู่ใน / dev / sda1 แล้ว msdos1 if / dev / sda2 แล้ว msdos2

อย่าลืมเรียกใช้ grub2-mkconfig

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.