Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Как запустить Windows XP из GRUB2 минуя загрузчик Windows 7 ?  (Прочитано 9664 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sergeyR

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Доброго времени суток.
На одном жёстком диске стоит 3 ОС: Windows XP, Windows 7 и Ubunu 9.10 (ставились в том же порядке, в каком перечислены). При включении компьютера запускается GRUB2. В меню есть пункты запуска Ubunu и загрузчика Windows 7. При выборе загрузчика Windows 7 появляется 2 пункта: Windows XP и Windows 7. Меню загрузчика Windows 7  и GRUB2 сформированы автоматически при установке ОС. Всё работает.
Есть необходимость добавить в меню GRUB2 пункт загрузки Windows XP и сделать его пунктом по умолчанию (что бы при включении компьютера автоматически загружалась Windows XP). Понимаю, что надо добавить какой-то код в скрипт /etc/grub/40_custom и запустить sudo update-grub. Но вот какой код добавить ? Подскажите, пожалуйста, кто знает ...

код запуска загрузчика Windows 7 из grub.cfg:
(Нажмите, чтобы показать/скрыть)

разделы диска:
(Нажмите, чтобы показать/скрыть)

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Загрузчик Win7 удалил загрузчик WinXP и грузит ее сам, а grub передает управление этому загрузчику. Поэтому и один пункт в меню grub.

WinXP свой загрузчик размещает только на первом основном разделе. Win7 свой загрузчик может размещать на любом основном разделе. Т.к. вы установили Win7 в логический раздел, а не основной, то он свой загрузчик записал на первый основной (т.е. туда где был загрузчик WinXP).
Если не ошибаюсь, то grub подменяет загрузчик 1 и 1,5 ступени, т.е. ему нужны только файлы загрузчика. Поэтому самое простое решение, будет скопировать загрузчик Win7 с sda1 на sda6. И настроить один на автоматическую загрузку XP (sda1), а второй на автоматическую загрузку 7 (sda6). После update-grub, grub должен увидеть оба загрузчика (grub без разницы на каких они разделах). С загрузчиком XP такое работало, с Win7 думаю тоже получится.

Оффлайн sergeyR

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Загрузчик Win7 удалил загрузчик WinXP и грузит ее сам, а grub передает управление этому загрузчику. Поэтому и один пункт в меню grub.

WinXP свой загрузчик размещает только на первом основном разделе. Win7 свой загрузчик может размещать на любом основном разделе. Т.к. вы установили Win7 в логический раздел, а не основной, то он свой загрузчик записал на первый основной (т.е. туда где был загрузчик WinXP).
Если не ошибаюсь, то grub подменяет загрузчик 1 и 1,5 ступени, т.е. ему нужны только файлы загрузчика. Поэтому самое простое решение, будет скопировать загрузчик Win7 с sda1 на sda6. И настроить один на автоматическую загрузку XP (sda1), а второй на автоматическую загрузку 7 (sda6). После update-grub, grub должен увидеть оба загрузчика (grub без разницы на каких они разделах). С загрузчиком XP такое работало, с Win7 думаю тоже получится.

Спасибо, Vitsliputsli.
Смысл понятен, попробую разобраться с загрузчиком Win7 (что именно копировать и как настраивать). О результатах сообщу.

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Нужно внести поправочку. Сегодня видел машину с Win7 и WinXP, файлы загрузчика WinXP остаются, все-таки Win7 грузит WinXP через ntldr.
Те на загрузочном разделе присутствуют:
загрузчик Win7 - файл bootmgr и папка Boot
загрузчик WinXP - файлы: ntldr, boot.ini, Bootfont.bin, NTDETECT.COM (ну и еще 4 ненужных файла, для совместимости)
Как вариант, можно на отдельный раздел скопировать загрузчик XP. Сделать update-grub - должно появиться 2 пункта меню.
И для полного счастья timeout сделать =0, чтобы не ждать win-загрузчики. В boot.ini для WinXP. И выполнить от администратора "bcdedit /set {bootmgr} timeout 0" в Win7.

Оффлайн Hantim

  • Любитель
  • *
  • Сообщений: 93
    • Просмотр профиля
Нужно внести поправочку. Сегодня видел машину с Win7 и WinXP, файлы загрузчика WinXP остаются, все-таки Win7 грузит WinXP через ntldr.
Те на загрузочном разделе присутствуют:
загрузчик Win7 - файл bootmgr и папка Boot
загрузчик WinXP - файлы: ntldr, boot.ini, Bootfont.bin, NTDETECT.COM (ну и еще 4 ненужных файла, для совместимости)
Как вариант, можно на отдельный раздел скопировать загрузчик XP. Сделать update-grub - должно появиться 2 пункта меню.
И для полного счастья timeout сделать =0, чтобы не ждать win-загрузчики. В boot.ini для WinXP. И выполнить от администратора "bcdedit /set {bootmgr} timeout 0" в Win7.


Не совсем понял что даст отдельный раздел с загрузчиком хр?

Оффлайн Nik-O-Lai

  • Любитель
  • *
  • Сообщений: 77
    • Просмотр профиля
    • Конструктор рецептов блюд
Насколько помню, раньше была возможность в Windowsе в свойствах загрузки указать, чтобы не показывались варианты, а загружалась одна система. Сейчас такой нет? Поищите в свойствах "мой компьютер" , кажется вкладка "Загрузка и восстановление" или "Дополнительно"

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Цитировать
Не совсем понял что даст отдельный раздел с загрузчиком хр?
grub будет воспринимать его как отдельно установленный загрузчик.
Когда загрузчик Win7 устанавливается в раздел с загрузчиком WinXP, он переписывает загрузчик в начале раздела и создает пункт в меню ссылающийся на предыдущую систему (те на файлы загрузчика WinXP). Grub найдя такую конструкцию относится к ней так, как она себя позиционирует - те загрузчик Win7 с возможностью запуска WinXP. Но если файлы загрузчика XP находятся на отдельном разделе, grub воспринимает их как полноценный загрузчик - те создаст для него новый пункт меню.

Оффлайн Hantim

  • Любитель
  • *
  • Сообщений: 93
    • Просмотр профиля
Цитировать
Не совсем понял что даст отдельный раздел с загрузчиком хр?
grub будет воспринимать его как отдельно установленный загрузчик.
Когда загрузчик Win7 устанавливается в раздел с загрузчиком WinXP, он переписывает загрузчик в начале раздела и создает пункт в меню ссылающийся на предыдущую систему (те на файлы загрузчика WinXP). Grub найдя такую конструкцию относится к ней так, как она себя позиционирует - те загрузчик Win7 с возможностью запуска WinXP. Но если файлы загрузчика XP находятся на отдельном разделе, grub воспринимает их как полноценный загрузчик - те создаст для него новый пункт меню.

А что если сделать раздел с вин 7 системным, перенести на него файлы загрузчика вин 7 с раздела с вин хр, а на разделе с вин хр востановить загрузчик вин хр... насколько реален такой вариант?

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Цитировать
А что если сделать раздел с вин 7 системным, перенести на него файлы загрузчика вин 7 с раздела с вин хр, а на разделе с вин хр востановить загрузчик вин хр... насколько реален такой вариант?
Системным это имеется ввиду флаг boot, загрузочный раздел? Этот флаг используется только если в MBR стандартный загрузчик, те тот который передает управление далее загрузочному разделу (такой пишет Windows). Если grub установлен в MBR, тот этот флаг не используется.
В принципе даже восстанавливать ничего не нужно, достаточно разнести файлы загрузчиков в разные разделы и grub их увидет.

Вариантов всегда множество, конечно, некоторые могут таить в себе неочевидные сложности, так что нужно пробовать...

Оффлайн Джoниk

  • Новичок
  • *
  • Сообщений: 2
  • Евгений Саенко
    • Просмотр профиля
Имеется в администрировании Gparted,  аналог Acronis  и PartMagik, так вот Он может управлять флагами на каждом разделе,
а точнее скрывать разделы.  При установке ХР надо ставить   hiden на раздел с Семеркой и после восстановить  Grub. C таким же успехом можно установить Семерку после ХР и не переживать что она сожрет загрузчик хрюши.  После того как обе системы установлены и  по отдельности настроены с Ubuntu  ( восстановление MBR или Grub - отдельная тема) ,  остается снять галочки hidden  в   Gparted  и  забить в терминале   update-grub 

Оффлайн tavduk

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Может не в тему, но у меня получилось так.
На диск с установленной XP и Ubuntu установил 8-ку.

В результате XP грузилась через 8-ку, а хотелось что-бы с GRUB.

 В Ubuntu на диске с XP удалил папки: Boot, Recovery, $RECYCLE.BIN, RECYCLER,System Volume Information  и файлы  AUTOEXEC.BAT, Boot.BAK, Bootfont.bin, bootmgr, BOOTNXT, BOOTSECT.BAK, CONFIG.SYS, IO.SYS, MSDOS.SYS, NTDETECT.COM, ntldr, PAGEFILE.SYS (может что-то и лишнее удалил) файл boot.ini и все остальное оставил.
 
 В  Gparted убрал метку boot с раздела XP, поставил метку hiden (делает раздел "невидимым" для ОС) на разделе с 8-кой установил метку boot.

 Загрузился с установочного диска 8-ки.
 Установка - внизу слева - восстановление системы - диагностика системы - дополнительные параметры - командная строка, вводим: bootrec /rebuildbcd  на разделе с 8-кой: Y - ввод (как я понял в файле BCD конфигурация системы и все операционки, которые увидет 8-ка)
 
 Не знаю надо было или нет но зделал ещё так:

 D:\Boot\bootsect.exe /nt60 E:

 Где D: наш DVD-ROM, а E: раздел с 8-кой (у каждого по своему). Данной командой мы создали на разделе с 8-кой (буква E:) загрузочный сектор.
 После этого он меня обматерил по английски.

 Узнать букву диска:  Вводим DISKPART
 потом: list vol
 Завершаем работу с утилитой diskpart , вводим команду
 exit

  Выход: Exit

 Загрузил Ubuntu в Gparted убрал убрал метку boot с раздела 8-ки,убрал метку hiden с XP поставил метку boot. Выключил комп.

 Загрузился с установочного диска , выбрал восстановить R.

Вводим команду
 FIXBOOT
и соглашаемся записать новый загрузочный сектор на разделе с XP.(у меня он был 2, физически на моем диске: 8ка - XP - Ubuntu , у вас может быть по другому)

Копируем файлы  ntldr, NTDETECT.COM, с установочного диска в корень системного диска С.
Вводим команду
 МАР 
и смотрим букву нашего дисковода, в моём случае (D:) 

Вводим букву дисковода
 D:
и нажимаем Enter.

Переходим в папку i386, которая находится на установочном диске Windows XP, из неё скопируем наш файл NTLDR  в корень диска С.
Вводим команду
 cd i386
и  Enter

Копируем файл NTLDR в корень нашего системного диска с операционной системой командой
 copy NTLDR C:\

Таким же образом копируем файл NTDETECT.COM вводим
 copy NTDETECT.COM C:\

 Exit и происходит перезагрузка.

 Загрузил Ubuntu, в терминале:  sudo update-grub
 GRUB увидел все операционки. Если это не поможет, то с правами супер пользователя вводим "/etc/grub.d/30_os-prober" (без кавычек).
 Выключил комп.

 Загрузил XP она попросила установочный диск, потом пошуршала минут 30, перезагрузилась и восстановилась.
 
 Результат: 8-ка не видет XP и наоборот, GRUB грузит все.
 Вывод: прежде чем ставить еще одну Windy, раздел с другой надо сделать "невидимой" если конечно хочешь что-бы все операционки грузились с GRUB.
 
 Winda иногда все таки бывает нужна, перепрошить контроллер флешки или прошивку на сотовый и т.д.



 

Страница сгенерирована за 0.085 секунд. Запросов: 25.