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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: GRUB 2 видит ось, но не запускает  (Прочитано 15193 раз)

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

Оффлайн assistent

  • Автор темы
  • Активист
  • *
  • Сообщений: 682
    • Просмотр профиля
    • Caйт плеера foobnix
GRUB 2 видит ось, но не запускает
« : 02 Ноября 2009, 15:19:09 »
Итак, имеется 3 оси на двух дисках. На одном жестком разделы с Vista и Ubuntu, на другом - раздел с XP.
Grub2 выдает правильный список осей, как и первый Grub раньше:

Ubuntu
...
Windows loader

Выбираю Windows loader, выдает выбор между Vista и XP.

Виста загружается нормально, а при выборе XP комп вываливается в ребут. И так все время.
Если делаю загрузочным в биосе диск с XP, то сразу выдает выбор между Вистой и ХР (Ubuntu тогда конечно уже не видна). В этом случае обе системы нормально загружаются.

В предыдущих версиях Ubuntu все системы отображались так же, но и загружаться могли тоже все.

Кто знает, как исправить, подскажите пожалуйста.
« Последнее редактирование: 02 Ноября 2009, 15:38:01 от assistent »
Foobnix - наше всё.

Оффлайн dimas000

  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: GRUB 2 видит ось, но не запускает
« Ответ #1 : 09 Ноября 2009, 19:12:31 »
навскидку - разве что ковырять опасными руками "/etc/grub.d/30_os-prober". его надобно или заставить не передавать загрузку по цепочке (поигравшись с chainloader), или же смотреть, что он говорит виндозагрузчику, какие параметры передает... короче, долго и упорно разбирать скрипт по косточкам....

ага! придумал более безопасный вариант!
вот тебе мой пункт от ХэРэ:
menuentry "Microsoft Windows XP Professional RU (on /dev/sda1)" {
insmod ntfs
set root=(hd0,1)
search --no-floppy --fs-uuid --set ac9c75e59c75aa8a
drivemap -s (hd0) ${root}
chainloader +1
}
его надобно будет добавить в 40_custom, поменяв номера дисков с разделами и uuid. тут уж fdisk в помощь, или чем там еще ууид узнается...
лучше на "ты"

Оффлайн Sir Ruf

  • Активист
  • *
  • Сообщений: 326
    • Просмотр профиля
Re: GRUB 2 видит ось, но не запускает
« Ответ #2 : 09 Ноября 2009, 19:15:09 »
или чем там еще ууид узнается...
ls -l /dev/disk/by-uuid/

Оффлайн assistent

  • Автор темы
  • Активист
  • *
  • Сообщений: 682
    • Просмотр профиля
    • Caйт плеера foobnix
Re: GRUB 2 видит ось, но не запускает
« Ответ #3 : 09 Ноября 2009, 20:00:10 »
навскидку - разве что ковырять опасными руками "/etc/grub.d/30_os-prober". его надобно или заставить не передавать загрузку по цепочке (поигравшись с chainloader), или же смотреть, что он говорит виндозагрузчику, какие параметры передает... короче, долго и упорно разбирать скрипт по косточкам....

ага! придумал более безопасный вариант!
вот тебе мой пункт от ХэРэ:
menuentry "Microsoft Windows XP Professional RU (on /dev/sda1)" {
insmod ntfs
set root=(hd0,1)
search --no-floppy --fs-uuid --set ac9c75e59c75aa8a
drivemap -s (hd0) ${root}
chainloader +1
}
его надобно будет добавить в 40_custom, поменяв номера дисков с разделами и uuid. тут уж fdisk в помощь, или чем там еще ууид узнается...

сделал, не помогло. при выборе в виндовом загрузчике ХР комп ребутится
в принципе твой пункт мало чем отличается от того, что у меня был в 30-ке
только строка с drivemap -s (hd0) ${root} добавилась

жду вариантов решения проблемы
Foobnix - наше всё.

Оффлайн dimas000

  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: GRUB 2 видит ось, но не запускает
« Ответ #4 : 09 Ноября 2009, 20:09:52 »
с перепугу прочитал "мало отличается от того, что было в 30-е" - ужаснулся)))
что именно ты сделал?
я предлагал вот что: поправленный под твои харды пункт впихнуть в 40_кастом, после этого update-grub, и тогда уже в самом грубе должен появиться пункт с хр, и вот его-то уже и надо выбирать, а не "в виндовом загрузчике"
лучше на "ты"

Оффлайн assistent

  • Автор темы
  • Активист
  • *
  • Сообщений: 682
    • Просмотр профиля
    • Caйт плеера foobnix
Re: GRUB 2 видит ось, но не запускает
« Ответ #5 : 09 Ноября 2009, 20:17:37 »
с перепугу прочитал "мало отличается от того, что было в 30-е" - ужаснулся)))
что именно ты сделал?
я предлагал вот что: поправленный под твои харды пункт впихнуть в 40_кастом, после этого update-grub, и тогда уже в самом грубе должен появиться пункт с хр, и вот его-то уже и надо выбирать, а не "в виндовом загрузчике"

все так и сделал. переписал под мою нумерацию дисков и под мой uuid. сделал update. ребутнулся. получил новый пункт меню. при выборе его оказываюсь в виндовом загрузчике, предлагающем выбор между vista и  хр.
при выборе хр - ребут. :-[

ps: Твой  пункт у меня уже фактически прописан в 30-м скрипте, только с названием Vista loader. Так что он вряд ли мог помочь. Проблема ведь не в том, что ось не видна или нет пункта для нее, а в том, что она не загружается.
Foobnix - наше всё.

Оффлайн dimas000

  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: GRUB 2 видит ось, но не запускает
« Ответ #6 : 09 Ноября 2009, 21:21:28 »
ага! надо заставить винду напрямую грузиться, а не через ntldr...
попробуй убрать строку chainloader из своего кастомного пункта - совсем все плохо станет или нет?
лучше на "ты"

Оффлайн assistent

  • Автор темы
  • Активист
  • *
  • Сообщений: 682
    • Просмотр профиля
    • Caйт плеера foobnix
Re: GRUB 2 видит ось, но не запускает
« Ответ #7 : 09 Ноября 2009, 21:40:07 »
ага! надо заставить винду напрямую грузиться, а не через ntldr...
попробуй убрать строку chainloader из своего кастомного пункта - совсем все плохо станет или нет?

убрал, теперь при нажатии на XP фокус ввода просто перескакивает на Ubuntu. и все.

что-то мне кажется, без ntdrl вряд ли получится, но честно говоря, мне даже в голову не приходит, почему именно через grub система XP не хочет грузиться. без grub ведь все нормально, да и со старым grub все нормально получалось
Foobnix - наше всё.

Оффлайн dimas000

  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: GRUB 2 видит ось, но не запускает
« Ответ #8 : 09 Ноября 2009, 21:45:17 »
мдаа... плохо... тоды читай доки по грубу2 на gnu.org до просветления)))
по ходу, все-таки груб2 ntldr'у передает какие-то данные, коие ХэРэ почему-то не устраивают...
перечитав первый пост, понял, что груб и нтлдр стоят на разных дисках, так? тогда, возможно, в этом проблема... в смысле, на разынх физических дисках винды и Ubuntu. или нет?
только вот недавно, копая форум вычитал где-то вот какую вещь: у товарища ntldr на одном диске, а сама Windows на другом. и в итоге нужно было прописывть путь к загрузчику отдельно, а к тому, что загружать - тоже отдельно. и вот что могло выйти-то: если нтлдр у нас на диске с вистой, то у них и все хорошо... а хр на ином диске... а груб почему-то заставляет искать именно на том, где сам загрузчик...
черт ногу сломит, короче.... ставь груб но тот же диск, где нтлдр, ежели это не так

Пользователь решил продолжить мысль 11 Ноября 2009, 18:55:45:
UPD_2009-11-11:если проблема все еще актуальна:
посмотри свой пункт загрузки от винды в grub.cfg. там будет строчка "set root...", в ней буде указан раздел, с которого грузится ntldr.
предположим, что это "hd0,1". тогда в меню загрузки нажми "c", чтобы попасть в консоль. там набирай
set root=(hd0,1)
или какой там у тебя раздел. потом командуй
chainloader +1
и после этого
boot
по идее тебя должно будет выкинуть в меню загрузки винды. и уже в нем попробуй выбрать нужную версию.
« Последнее редактирование: 11 Ноября 2009, 18:55:45 от dimas000 »
лучше на "ты"

Оффлайн molvi47

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: GRUB 2 видит ось, но не запускает
« Ответ #9 : 24 Ноября 2009, 01:04:37 »
Уважаемый Dimas000! Если все это проделать руками, то ХР запускается. Видимо проблема в том, что в grub.cfg. нет строчки "set root..."  , а есть: drivemap -s (hd0) ${root}, может надо бы  drivemap -s (hd0,1). Но вот как это поправить?
« Последнее редактирование: 24 Ноября 2009, 01:17:41 от molvi47 »

Оффлайн dimas000

  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: GRUB 2 видит ось, но не запускает
« Ответ #10 : 24 Ноября 2009, 02:38:44 »
Уважаемый Dimas000! Если все это проделать руками, то ХР запускается. Видимо проблема в том, что в grub.cfg. нет строчки "set root..."  , а есть: drivemap -s (hd0) ${root}, может надо бы  drivemap -s (hd0,1). Но вот как это поправить?
как интересно... у меня в груб.кфг set root совершенно явно прописан в пункте с виндой. drivemap же стоит именно на (hd0). поменять попробуй, даже если ни к чему хорошему не приведет - выставишь обратно, загрузку убунты ты этим не похеришь. drivemap ентот упоминается в "/etc/default/30_os-prober" в одной лишь строке.
впрочем, можешь и просто забить на него болт и создать в 40_custom кастомный пункт, впихнув в него те три строки, что ты запускал через консоль. обзови его поудобней и грузи через него. во избежание путаницы можешь потом убрать пункт от 30-го скрипта, отобрав у последнего права на запуск
chmod -x /etc/grub.d/30_os-prober
после чего радостно грузишь свой пунктик и забываешь про этот геморрой.
лучше на "ты"

Оффлайн molvi47

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: GRUB 2 видит ось, но не запускает
« Ответ #11 : 24 Ноября 2009, 11:37:01 »
Уважаемый Dimas000! После добавления этих трех строк в 40_custom и sudo update-grub, он пишет:

Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.31-14-generic
Found initrd image: /boot/initrd.img-2.6.31-14-generic
grub-probe: error: no mapping exists for `nvidia_cdbcecaa5'
grub-probe: error: no mapping exists for `nvidia_cdbcecaa5'
Found memtest86+ image: /boot/memtest86+.bin
ERROR: sil: only 1/4 metadata areas found on /dev/sda, picking...
Found Microsoft Windows XP Professional RU on /dev/mapper/nvidia_cdbcecaa1
grub-probe: error: no mapping exists for `nvidia_cdbcecaa1'
done

Т.е. вопрос: как добавить в груб.кфг set root = (hd0,1) остался, но теперь при загрузке на секунду высвечивается надпись: grub, и далее грузится ХР без возможности выбора загрузки в Ubuntu.
« Последнее редактирование: 24 Ноября 2009, 13:07:50 от molvi47 »

Оффлайн dimas000

  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: GRUB 2 видит ось, но не запускает
« Ответ #12 : 24 Ноября 2009, 16:23:53 »
как именно пихал? нужно было сделать пунктик такого вида:
menuentry "windowz" {
   set root=(hd0,1)
   chainloader +1
}
последняя строка boot там, по ходу, не нужна...
теперь вопрос: как загрузиться в Ubuntu, чтоб все это переправить? тут уж сложнее. или пытайся жать ескейп/держать шифт при загрузке или грузись с лайвцд и меняй свой 40_custom, это уж как получится. щас на себе попробую, посмотрим, что будет

UPD: проверил на собственном опыте. грузит ХРюшку прекрасно. так что двух строк вполне достаточно
« Последнее редактирование: 24 Ноября 2009, 18:41:05 от dimas000 »
лучше на "ты"

Оффлайн assistent

  • Автор темы
  • Активист
  • *
  • Сообщений: 682
    • Просмотр профиля
    • Caйт плеера foobnix
Re: GRUB 2 видит ось, но не запускает
« Ответ #13 : 24 Ноября 2009, 16:46:05 »
Приведу свои изыскания по этому вопросу.

Мне кажется, чем больше я узнаю новый Grub, тем меньше его понимаю.

У меня в grub.cfg такой текст:

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows Vista (loader) (on /dev/sdc1)" {
insmod ntfs
set root=(hd2,1)
search --no-floppy --fs-uuid --set 502c43172c42f78c
chainloader +1
}
### END /etc/grub.d/30_os-prober ###

как видим, set root уже прописан. Но результат уже известен, XP видна, но не грузится.

По совету dimas000 решил попробовать через "с" ввести команды при загрузке вручную.

Пишу
set root=(hd2,1)
chainloader +1
получаю ответ - нет такого диска     // при том, что даже boot еще не написал


Пишу
set root=(hd1,1)    //наобум написал
chainloader +1
boot

попадаю в вистовский загрузчик  :2funny:  :idiot2:, но при выборе ХР - все равно выбрасывает в ребут.

Пишу
set root=(hd2.1)   //т.е. вместо запятой ставлю точку
chainloader +1
boot


Тоже попадаю в вистовский загрузчик, но теперь XP загружается !!! :D

Думаю: тогда надо сменить запятую на точку в grub.cfg (я понимаю, что надо через скрипты, но для пробы сойдет). Меняю. При загрузке попадаю как обычно в вистовский загрузчик, но он как на зло не хочет грузить ХР  >:(  :idiot2:.

Ну и что вы на это скажете, товарисчи? Бред какой-то получается.
« Последнее редактирование: 24 Ноября 2009, 16:50:56 от assistent »
Foobnix - наше всё.

Оффлайн Softwayer

  • Активист
  • *
  • Сообщений: 706
  • Arch Linux
    • Просмотр профиля
Re: GRUB 2 видит ось, но не запускает
« Ответ #14 : 24 Ноября 2009, 17:12:24 »
Напрашивается к мантайнерам вопрос: какого хрена вы в стабильную ветку засунули сырущий grub2?!

 

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