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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

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

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

Оффлайн dimas000

  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: GRUB 2 видит ось, но не запускает
« Ответ #30 : 07 Декабря 2009, 14:09:42 »
вот что ответили на gnu.org
Цитировать
mapping between disks and hdX is unpredictable. That's why we use UUIDs
(search ...). Just use autogenerated entry
что в переводе с буржуйкого будет означать следующее:
Цитировать
распределение hdX между дисками непредсказуемо. поэтому мы используем uuid (команда search ...). просто используйте автосоздаваемый пункт.
в общем, лаконично. да, дескать, система косячная, но есть костыль, что ж поделаешь.
зато разобрался с этим самым search. используется она как замена строке uuid ... в старом грубе. даже больше скажу - в пунктах grub.cfg строка set root особого значения не имеет, ибо рут задается этой самой search по ююид. используется так:
search -u 0r46dg-16df.... -s
где -u означает поиск по ююид, а -s используется для задания ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ, если переменная пустая, то она "root". search -u найдет раздел с заданным ююид и выдаст ответ вида "(hd1,1)", а -s подставит полученное в качестве рута. подробнее - "help search" в консоли груба. кстати, есть еще удобная фича - поиск по файлу. например, если у нас одна линух-система, можно сделать "search -f /vmlinuz" и получить ее рут.
чтоб узнать ююид пишем "root (hd0," и жамкаем tab. сие перечислит все разделы заданного диска, их фс, метки и ююид.
Цитировать
как я понял, он видит второй виндозный MBR на диске hd1 - но в реальности у меня нет диска hd1
и почему grub генерирует конфиг с записью hd2,1 когда ls в консоли такого диска не видит?
см. выше
Цитировать
и почему он не хочет грузить mbr c hd2,2 и hd2,5 , а грузит только если прописать hd2?
как выяснилось, если указать диск в чистом виде (а-ля (hd2)) - груб загрузит его mbr, если таковой там имеется. что по действию равносильно смене бут-девайса в биосе. так я загружал груб на флэшке через груб с харда
Цитировать
и еще, почему он имея неправильную запись hd2,1 начинает грузить неверный mbr c несуществующего раздела несуществующего диска (hd1,1)?
опять же search -u .... -s
Цитировать
и, если этот диск не существует, почему тогда из этого mbr спокойно загружается виста?
как мы поняли, диск существует и по ююид определяется. а вот почему с него через жопу грузится - это уже другой вопрос, на который создатели отвечать не собираются.
ЗЫ. баг-репорт на гну.орг благополучно слит в closed. дескать, вот вам костыль и удачи там)))

Цитировать
Сначала сделал виртуальные харды для Ubuntu и Debian. Поставил Debian первым, обьединил контроллером SCSI в VirtualBox , хард для Ubuntu. Инсталлирую Ubuntu, reboot. Груб все видит и запускает. Удаляю Ubuntu, удаляю SCSI контролер, т. е. нет второго диска с Debian. Инсталлю вновь Ubuntu. Подключаю второй виртуальный хард.
с виртуалбоксом и подобными никогда не работал, как и с виртуальными хардами. посему не совсем понял, что ж ты творишь.
лучше на "ты"

Оффлайн mazut

  • Забанен
  • Активист
  • *
  • Сообщений: 703
  • да, не заходи ты сюда!
    • Просмотр профиля
Re: GRUB 2 видит ось, но не запускает
« Ответ #31 : 07 Декабря 2009, 14:58:23 »
с виртуалбоксом и подобными никогда не работал, как и с виртуальными хардами. посему не совсем понял, что ж ты творишь.

Если по простому, то какбе имеется два жестких, которые можно поключать и отключать. Вставил в комп, или выташил. VirtuaBox для опытов с системами очень полезная штука, советую.

http://s59.ЗАПРЕЩЁННЫЙ РЕСУРС/i164/0912/9e/ed0d0716589c.jpg
Патрикеич.
Под наблюдением.

Оффлайн Александр_локис

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: GRUB 2 видит ось, но не запускает
« Ответ #32 : 18 Августа 2010, 20:05:36 »
Сорри, что тревожу,но подобная проблема. Прочёл вашу переписку, попробовал что предлагали. У меня проблема похожая, но проще. Жёсткий один, граб видит и Ubuntu и ХР, но хрюшу не грузит. Пробовал ручками прописать ей загрузку, как описано выше - не катит. С командой search, тоже не получается. В грабе ради интереса пишу - "чтоб узнать ююид пишем "root (hd0," и жамкаем tab. сие перечислит все разделы заданного диска, их фс, метки и ююид." выводит что неизвестная команда ( можно ли конкретнее написать как команда должна выглядеть?)
Если затираю с виндового диска весь mbr, то винду грузит, а линь нет. Линь стоит на sda2, а Windows на sda1. Sda1 - загрузочный. Если я сделаю загрузочным sda2 , на sda1 перепишу mbr и поставлю на него Windowsкий загрузчик , а на sda2 граб, то сыграет ли это какую нибудь роль? И чем можно менять загрузхочный раздел кроме partitionmagik.
Заранее спасибо и извинения, что кривовато описал проблему.
Меню загрузки на винду выглядит так
insmod ntfs
set root=(hd0,1) //тут стоит Windows
search --no-floppy --fs-uuid --set 326******* //юид правильный и вроде раздел в рут должен установиться
drivemap -s (hd0) ${root}
chainloader +1


дописывал boot в конец, толку ноль
« Последнее редактирование: 18 Августа 2010, 20:44:09 от Александр_локис »

Оффлайн assistent

  • Автор темы
  • Активист
  • *
  • Сообщений: 682
    • Просмотр профиля
    • Caйт плеера foobnix
Re: GRUB 2 видит ось, но не запускает
« Ответ #33 : 18 Августа 2010, 20:39:50 »
Самое главное определить, на каком разделе какого харда сидит Windows (например, hd1,1) [в этом мне помогает анализ вывода команды sudo fdisk -l и команды ls -l из консоли граба при загрузке]  и прописать с правами админа в скрипт /etc/grub.d/40_custom что-то типа следующего:

menuentry "Microsoft Windows Loader (on /dev/sdс1)" {
   set root=(hd1,1)
   drivemap -s (hd0) ${root}
   chainloader +1
}

После этого обновить граб командой sudo update-grub и можно пробовать перезагружаться.
Foobnix - наше всё.

Оффлайн Александр_локис

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: GRUB 2 видит ось, но не запускает
« Ответ #34 : 18 Августа 2010, 20:46:40 »
да именно fsdisk -l и проверял. Виyда сто пудов на hd0,1. В загрузчике им5енно это и написано, как я понимаю, только с некоторыми добавками.
Хард один. в этом и прикол. На компе стацике sudo upgrade-grub всё отлично правит, а тут никак не грузится (ноут). я в шоке в общем.

Оффлайн assistent

  • Автор темы
  • Активист
  • *
  • Сообщений: 682
    • Просмотр профиля
    • Caйт плеера foobnix
Re: GRUB 2 видит ось, но не запускает
« Ответ #35 : 18 Августа 2010, 21:29:17 »
да именно fsdisk -l и проверял. Виyда сто пудов на hd0,1. В загрузчике им5енно это и написано, как я понимаю, только с некоторыми добавками.
Хард один. в этом и прикол. На компе стацике sudo upgrade-grub всё отлично правит, а тут никак не грузится (ноут). я в шоке в общем.

проверьте лучше в консоли самого граба при загрузке с помощью команды ls -l
дело в том, что нумерация дисков в уже загруженной системе может не совпадать с нумерацией дисков при старте граба (у меня у самого так). Возможно команда выше позволит вам правильно определить, название вашего харда. можете так же просто поэкспериментировать с написанием других номеров

Но прежде посмотрите, действительно ли у вас прописана в файле 40_custom строка drivemap -s (hd0) ${root}
Foobnix - наше всё.

Оффлайн Александр_локис

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: GRUB 2 видит ось, но не запускает
« Ответ #36 : 18 Августа 2010, 22:14:19 »
Строки 40_custom у меня вообще не было в загрузчике. Решил её прописать, сделал, обновил граб - она исчезает. 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 мой uuid
   chainloader +1
}
### END /etc/grub.d/30_os-prober ###

Через ls -l из меня граба проверил, Windows с правильным uuid это точно.
В меню граба ручками прописывал
   set root=(hd1,1)
   drivemap -s (hd0) ${root}
   chainloader +1

Снова выкидывает в граб.

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: GRUB 2 видит ось, но не запускает
« Ответ #37 : 18 Августа 2010, 22:49:26 »
Ребят, много написали но вижу никто не упомянул такой фичи BIOSов, как то, что если вы в BIOS поменяли приоритет загрузки то в грубе маппинг девайсов слетает - почемуто первым по порядку грубу BIOS подставляет тот диск, который выбран приоритетным в загрузке (и не важно - какой он по подключению). Причем так вели себя все БИОСы, что мне попались, но не исключаю, что могут быть и другие выкрутасы.

Так вот GRUB2 решает эту проблему тем, что диски там указываются по UUID и уже пофигу - как там BIOS диски миксует, что бы изменить приоритет загрузки дисков.

Вполне допускаю, что виндовый загрузчик тоже может окосеть из-за выкрутасов BIOSа под соусом GRUBа, из которого он получает управление.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Александр_локис

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: GRUB 2 видит ось, но не запускает
« Ответ #38 : 18 Августа 2010, 23:13:34 »
Спасибо всем. Решил проблему. Я сам виноват был. Я граб стаил не на /dev/sda , а на /dev/sda1 (мануал невнимательно прочёл). В итоге он затирал запись винды и неслась катавасия.

Оффлайн assistent

  • Автор темы
  • Активист
  • *
  • Сообщений: 682
    • Просмотр профиля
    • Caйт плеера foobnix
Re: GRUB 2 видит ось, но не запускает
« Ответ #39 : 18 Августа 2010, 23:20:33 »
Строки 40_custom у меня вообще не было в загрузчике. Решил её прописать, сделал, обновил граб - она исчезает. grub.cfg заканчивается на этом

О, да у вас матчасть по грабу хромает (матчасть можно подучить в этой теме). Надо править файлы из каталога /etc/grub.d , потом делать sudo update-grub
Foobnix - наше всё.

Оффлайн mazut

  • Забанен
  • Активист
  • *
  • Сообщений: 703
  • да, не заходи ты сюда!
    • Просмотр профиля
Re: GRUB 2 видит ось, но не запускает
« Ответ #40 : 19 Августа 2010, 23:57:56 »
Ребят, много написали но вижу никто не упомянул такой фичи BIOSов, как то, что если вы в BIOS поменяли приоритет загрузки то в грубе маппинг девайсов слетает - почемуто первым по порядку грубу BIOS подставляет тот диск, который выбран приоритетным в загрузке (и не важно - какой он по подключению). Причем так вели себя все БИОСы, что мне попались, но не исключаю, что могут быть и другие выкрутасы.

Так вот GRUB2 решает эту проблему тем, что диски там указываются по UUID и уже пофигу - как там BIOS диски миксует, что бы изменить приоритет загрузки дисков.

Вполне допускаю, что виндовый загрузчик тоже может окосеть из-за выкрутасов BIOSа под соусом GRUBа, из которого он получает управление.

Подумай, имеем навскидку 4 бутовых сектора, BIOS ищет первый попавшийся по рангу. Ну, конечно, маппинг в 1-вом секторе 1-го харда свой. Но в 2-ром он по логике совсем другой! Ни чего нет необычного.
Патрикеич.
Под наблюдением.

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: GRUB 2 видит ось, но не запускает
« Ответ #41 : 20 Августа 2010, 09:07:24 »
Подумай, имеем навскидку 4 бутовых сектора, BIOS ищет первый попавшийся по рангу. Ну, конечно, маппинг в 1-вом секторе 1-го харда свой. Но в 2-ром он по логике совсем другой! Ни чего нет необычного.
не совсем понял - что вы имели в виду - 4 бутовых сектора - это о MBR или бутсекторах разделов?
 
На каждом HDD есть один MBR (физически первый сектор на винте) и может быть столько бутовых секторов сколько разделов на этом HDD создано.
В рамках одного HDD - с какго именно раздела грузится разбирается код в MBR. А вот какой MBR грузить, если имеем несколько HDD - решает BIOS по выставленным в нем приоритетам загрузки. И когда он выбирает с какого устройства грузится, то для того чтобы код в MBR (а там всего 400 с небольшим байт кода то) смог корректно загрузить закрузочный сектор раздела (именно со своего винчестера, а не с того, который по подключению первый) BIOS и скармливает коду в MBR диск, с которого этот MBR загрузился, как первый винчестер в системе. Вот и получаем микс в GRUB-е, который свой код прописывает в MBR, а при возможности и на остаток первой дорожки диска т.к. она все равно никем не используется - первый раздел начинается, как правило, со второй дорожки.

Вот и получалось в первом грубе, что грузишся со второго винчестера, а при этом что бы загрузить другую ось с первого надо было его выбирать как второй!!! или перемапливать девайсы.

GRUB2 решает эту проблемму поиском раздела для загрузки по UUID, а не по номеру устройства.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн dimas000

  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: GRUB 2 видит ось, но не запускает
« Ответ #42 : 20 Августа 2010, 14:40:26 »
Цитировать
GRUB2 решает эту проблемму поиском раздела для загрузки по UUID, а не по номеру устройства.
оно, в общем-то, и в первом грубе так же решалось, командой "uuid xxxxxxxx". а маппинг вообще отключается при желании.
кстати, автор там писал про boot-флаги разделов (дескать, sda1 загрузочный или sda2) - так вот, grub2 на них плевать. это так, до кучи
лучше на "ты"

Оффлайн mazut

  • Забанен
  • Активист
  • *
  • Сообщений: 703
  • да, не заходи ты сюда!
    • Просмотр профиля
Re: GRUB 2 видит ось, но не запускает
« Ответ #43 : 20 Августа 2010, 23:41:46 »
Цитировать


Вот и получалось в первом грубе, что грузишся со второго винчестера, а при этом что бы загрузить другую ось с первого надо было его выбирать как второй!!! или перемапливать девайсы.

GRUB2 решает эту проблемму поиском раздела для загрузки по UUID, а не по номеру устройства.

UUID для второго винта с бутовым сектором груба выглядит иначе, чем в первом. BIOS до балды какой сектор попался ему первый. Больше он в работе системы не учатствует. Это правило только для линух.
Патрикеич.
Под наблюдением.

 

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