Đã cài đặt Centos 7 sau Windows và không thể khởi động vào CentOS


11

Tôi muốn thiết lập một khởi động kép cho Windows 7 và CentOS 7

Tôi đã có một máy Windows 7 với đĩa 500 GB. Tôi đã thu hẹp phân vùng Windows để cung cấp không gian cho CentOS 7 (khoảng 230GB). Tôi đã tạo một thanh cài đặt mạng USB CentOS 7 và khởi động từ đó. Tôi đã chạy cài đặt được cấu hình tốt nhất mà tôi biết để cài đặt CentOS 7 vào không gian trống (chứ không phải trên toàn bộ đĩa). Tôi đã cài đặt mạng và tất cả dường như hoạt động tốt nhưng khi khởi động lại, tôi đã quay lại Windows và không thể vào được CentOS.

Tôi đã khởi động lại từ USB và cố gắng khắc phục tình trạng (một cách cẩn thận) bằng cách sử dụng cfdisk, ví dụ: chọn thứ tôi tin là phân vùng khởi động CentOS nhưng nó báo cáo "hệ điều hành bị thiếu". Cũng cfdisknói rằng nó không thể đọc lại bảng phân vùng khi tôi viết nó với CentOS boot nhưng bắt đầu cfdisklại dường như hiển thị cờ đã được đặt.

Hiện tại, cài đặt mạng USB CentOS 7 hiển thị cho tôi các phân vùng sau trên đĩa:

## DATA  
/home 168GB centos-home  

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

Các phân vùng Windows "khác" là:

ntfs 100MB sda1  
ntfs 253GB sda2

Điều này có vẻ ổn NHƯNG khi tôi vào Cài đặt CentOS 7 một lần nữa, nó nói với tôi rằng tôi phải tạo các điểm gắn kết cho phân vùng gốc. Tôi đã không làm điều này ban đầu vì tôi nghĩ nó sẽ được thực hiện tự động khi tôi nhấp vào "Nhấp vào đây để tạo chúng tự động" cho thiết lập đĩa lần đầu tiên tôi cài đặt.

Và bảng phân vùng được truy cập bằng cách sử dụng cfdisktừ "Giải cứu hệ thống CentOS ..." trông như thế này:

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

Như đã đề cập, khi tôi cố gắng khởi động với cấu hình này, tôi bị "thiếu hệ điều hành". Nếu tôi thay đổi cờ khởi động trở lại sda1 thì nó khởi động vào Windows 7 tốt.

CẬP NHẬT # 1

Tôi (đã) cài đặt grub2bằng cách sử dụng grub2-installtừ netinstall vào /dev/sdavà bây giờ khi tôi khởi động từ đĩa, tôi nhận được grublời nhắc. Tôi có thể sử dụng nó để tải chuỗi vào Windows. Tuy nhiên, khi tôi cố gắng khởi động vào CentOS 7, tôi nhận được một số dấu vết / kết xuất.

Tôi đã sử dụng:

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

LƯU Ý: Tôi tin linuxlà phân vùng khởi động chính cho CentOS

Cố gắng ở trên chỉ gặp sự cố.

CẬP NHẬT # 2

Tôi đã cài đặt NTFS-3G và NTFSPROGS bằng cách sử dụng yumtừ kho EPEL.

Tôi đã chạy grub2-mkconfig -o /boot/grub2/grub.cfgvà sau đó khởi động lại để tìm Windows 7 (Trình tải) trong menu khởi động. Nhưng khi tôi chọn nó, tôi nhận được:

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

Điều này không có vẻ rất tốt, nhưng ít nhất là một số tiến bộ.

Tôi cũng nên nói rằng bây giờ tôi chỉ có CentOS 7 trên ổ đĩa trong và tôi đang làm việc trên ổ đĩa này như một ổ USB ngoài (do đó /dev/sdb).

Ai đó có thể vui lòng giúp tôi khởi động Windows không?

Tôi có nền tảng Unix nhưng chủ yếu sử dụng Mac OS X. Tôi luôn luôn không thể cài đặt khởi động kép Windows và Linux.

Cuối cùng, tôi có hệ thống CentOS 6.5 chạy tốt trên một máy khác, cũng như máy Mac của tôi.

Câu trả lời:


4

Bạn có thể gắn phân vùng Windows sai.

Tìm kiếm một phân vùng nhỏ 100 hoặc 300MB ( Phân vùng khởi động của Windows), gắn kết nó và sau đó chạy lại lệnh.

Nếu bạn vẫn gặp sự cố, hãy thêm phần sau vào cuối /etc/grub.d/40_custom:

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

Điều này giả sử phân vùng khởi động Windows là phân vùng đầu tiên của đĩa cứng đầu tiên.

Đừng quên chạy grub2-mkconfig.


3

Gắn kết phân vùng cửa sổ. (Nếu bạn không thể cài đặt ntfspross-2013.1.13-5.el7.x86_64.rpmntfs-3g-2013.1.13-5.el7.x86_64.rpm )

Chạy bằng root grub2-mkconfig -o /boot/grub2/grub.cfg


Cảm ơn đã bình luận. Sau nhiều nỗ lực để làm việc này, tôi đặt một đĩa mới và cài đặt chỉ Centos 7. Tuy nhiên, tôi vẫn muốn để đĩa khác hoạt động với Windows nên tôi sẽ đặt đĩa vào một máy khác và làm theo hướng dẫn của bạn. Cảm ơn một lần nữa!
Ashley Aitken

Đã làm điều đó. Bây giờ nhận được mục trong menu khởi động :-) Nhưng bây giờ nhận được: lỗi: không có thiết bị như vậy 787776677 ... lỗi: hd1 không thể nhận giá trị C / H / S ...
Ashley Aitken

điều này làm việc rất tốt với windows 7 và CentOS 7. cảm ơn.
Nathan McCoy

2

Cài đặt lại bộ tải khởi động CentOS (cho dù đó là LILO hay GRUB). Trình cài đặt bộ nạp khởi động sẽ nhận ra các HĐH trong máy của bạn và tự động hiển thị cho bạn các lựa chọn HĐH trong thời gian khởi động. CMIIW.


Cảm ơn Ade. Tôi tin rằng CentOS 7 sử dụng Grub2, vì vậy tôi sẽ cài đặt lại. Tôi đoán nó đi trong phân vùng khởi động 500 MB nhưng tôi nghĩ vấn đề sẽ liên quan nhiều hơn đến MBR (hoặc đại loại như thế). Grub2 sẽ thiết lập nó một cách thích hợp?
Ashley Aitken

2

Tôi đã thử khởi động kép với cửa sổ 7 và centos 7 trong 2 ngày và tôi đã làm được. Chỉ cần làm theo các bước đơn giản
Cài đặt cửa sổ 7
Sau đó centos 7
Khi bạn khởi động lại máy tính, bạn sẽ không thấy bất kỳ tùy chọn khởi động nào cho windows 7 trong grub.
Khởi động vào centos chuyển sang su
sử dụng lệnh cfdisk
Sau đó kiểm tra các cờ trong đó boot được viết thông báo cho phân vùng
đó Sau đó mở tệp grub trong /boot/grub2/grub.cfg trước tiên sao lưu tệp grub.cfg bằng cách sao chép tệp đó là grub.old.cfg mở tệp và chỉnh sửa nó với

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

thay đổi giá trị của msdos với phân vùng nơi cờ khởi động được đưa ra. như thể cờ khởi động nằm trong / dev / sda1 thì msdos1 if / dev / sda2 rồi msdos2.

Đừng quên chạy grub2-mkconfig

Tôi hy vọng bạn sẽ tìm thấy nó hữu ích.


Hy vọng OP chọn đây là câu trả lời được chấp nhận. Hoạt động hoàn hảo với tôi: nrecacht.blogspot.in/2015/12/ , nhưng sẽ tốt hơn nếu có trình tải khởi động của bên thứ ba tự động nhận ra OS'es trên các phân vùng: superuser.com/questions/1009739/
Nav

1

Tìm thấy rằng việc thêm Tệp 11_windows vào /etc/grub.dhữu ích hơn:

Nội dung:

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

Sau đó chạy grub2-mkconfigsau khi lưu file backup của grub.cfgtrong /boot/grub2.

Kết quả bao gồm thêm mục "WINDOWS" trong menu grub trong khi khởi động.

Trường hợp của tôi là cho Windows10, nhưng cũng nên như vậy.


Định dạng của lệnh grub2-mkconfig:
stv

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

1

Tôi đã thử khởi động kép với cửa sổ 7 và centos 7 trong hai ngày và tôi đã làm được. Chỉ cần làm theo các bước đơn giản Cài đặt cửa sổ 7 Sau đó centos 7 Khi bạn khởi động lại máy tính, bạn sẽ không thấy bất kỳ tùy chọn khởi động nào cho windows 7 trong grub. Khởi động vào centos chuyển sang su sử dụng lệnh cfdisk Sau đó kiểm tra các cờ nơi boot được viết thông báo cho phân vùng đó Sau đó mở tệp grub trong /boot/grub2/grub.cfg trước tiên sao lưu tệp grub.cfg bằng cách sao chép nó dưới dạng grub.old.cfg mở các tập tin và chỉnh sửa nó với

menuentry "WINDOWS" {set root = '(hd0, msdos1)' chainloader +1} thay đổi giá trị của msdos với phân vùng nơi đặt cờ khởi động. như thể cờ khởi động nằm trong / dev / sda1 thì msdos1 if / dev / sda2 rồi msdos2.

Đừng quên chạy grub2-mkconfig

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.