Установлен Centos 7 после Windows и не может загрузиться в CentOS


11

Я хотел настроить двойную загрузку для Windows 7 и CentOS 7

У меня была машина Windows 7 с 500 ГБ диском. Я сжал раздел Windows, чтобы освободить место для CentOS 7 (примерно 230 ГБ). Я создал флешку USB CentOS 7 netinstall и загрузился с нее. Я запустил установку, настроенную так, как я знал, чтобы установить CentOS 7 в свободное место (а не на весь диск). Я сделал сетевую установку, и все, казалось, прошло хорошо, но после перезагрузки я вернулся в Windows и не смог войти в CentOS.

Я перезагрузился с USB и попытался исправить ситуацию (осторожно), используя cfdisk, например, выбор того, что я считаю загрузочным разделом CentOS, но он сообщает «отсутствует операционная система». Также cfdiskговорится, что он не может перечитать таблицу разделов, когда я пишу ее с загрузкой CentOS, но cfdiskповторный запуск показывает, что флаг установлен.

В настоящее время netinstall 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из «Rescue a 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

Я (пере) установил 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

Я установил NTFS-3G и NTFSPROGS, используя yumрепозиторий EPEL.

Я запустился, 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.

Ответы:


4

Вы, вероятно, смонтировали не тот раздел Windows.

Найдите небольшой раздел размером 100 или 300 МБ ( загрузочный раздел Windows), смонтируйте его и снова запустите команду.

Если у вас все еще есть проблемы, добавьте следующее в конец /etc/grub.d/40_custom:

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

Предполагается, что загрузочный раздел Windows является первым разделом первого жесткого диска.

Не забудь бежать grub2-mkconfig.


3

Монтируем окна Перегородки. (Если вы не можете смонтировать, установите ntfsprogs-2013.1.13-5.el7.x86_64.rpm и ntfs-3g-2013.1.13-5.el7.x86_64.rpm )

Запуск от имени пользователя root grub2-mkconfig -o /boot/grub2/grub.cfg


Спасибо за комментарий. После многих попыток заставить это работать, я вставил новый диск и установил только Centos 7. Однако я все еще хочу, чтобы другой диск работал с Windows, поэтому я перенесу диск на другую машину и последую вашим указаниям. Еще раз спасибо!
Эшли Айткен

Сделал это. Теперь получаем запись в меню загрузки :-) Но теперь получаем: ошибка: нет такого устройства 787776677 ... ошибка: hd1 не может получить значения C / H / S ...
Эшли Айткен

это отлично работает с Windows 7 и CentOS 7. Спасибо.
Натан Маккой

2

Переустановите загрузчик CentOS (будь то LILO или GRUB). Установщик загрузчика должен распознавать ОС на вашем компьютере и автоматически показывать вам выбор ОС во время загрузки. CMIIW.


Спасибо Адэ. Я считаю, что CentOS 7 использует Grub2, поэтому я переустановлю его. Я думаю, что это происходит в загрузочном разделе 500 МБ, но я думал, что проблема будет больше связана с MBR (или что-то в этом роде). Будет ли Grub2 настроить это соответствующим образом?
Эшли Айткен

2

Я пробовал двойную загрузку с окном 7 и centos 7 в течение 2 дней, и я сделал это. Просто следуйте простым шагам
Установить окно 7
Затем Centos 7
При перезагрузке компьютера вы не увидите никакой опции загрузки для Windows 7 в Grub.
Загрузитесь с su
помощью команды centos, чтобы использовать команду. cfdisk
Затем проверьте наличие флагов, в которых записана загрузка, сообщите об этом разделе.
Затем откройте файл grub в /boot/grub2/grub.cfg, сначала сделайте резервную копию файла grub.cfg, скопировав его как grub.old.cfg, и откройте файл. и отредактируйте его

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

измените значение msdos для раздела, в котором указан флаг загрузки. как если бы флаг загрузки был в / dev / sda1, то msdos1, если / dev / sda2, то msdos2.

Не забудь бежать grub2-mkconfig

Я надеюсь, что вы найдете это полезным.


Надеюсь, что ОП выберет это как принятый ответ. У меня отлично сработало : nrecursions.blogspot.in/2015/12/… , но было бы лучше иметь сторонний загрузчик, который автоматически распознает ОС на разделах: 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" в меню grub во время запуска.

Мой случай был для Windows10, но должен быть таким же.


Формат команды grub2-mkconfig:
stv

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

1

Я пробовал двойную загрузку с окном 7 и centos 7 в течение двух дней, и я сделал это. Просто следуйте простым шагам Установить окно 7 Затем Centos 7 При перезагрузке компьютера вы не увидите никакой опции загрузки для Windows 7 в Grub. Загрузитесь с переключателем centos на su, используя команду cfdisk. Затем проверьте наличие флагов, в которых записана загрузка, сообщите об этом разделе. Затем откройте файл grub в /boot/grub2/grub.cfg, сначала сделайте резервную копию файла grub.cfg, скопировав его как grub.old.cfg open. файл и отредактируйте его

menuentry "WINDOWS" {set root = '(hd0, msdos1)' chainloader +1} изменяет значение msdos для раздела, в котором указан флаг загрузки. как если бы флаг загрузки был в / dev / sda1, то msdos1, если / dev / sda2, то msdos2.

Не забудьте запустить grub2-mkconfig

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.