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


Автор Тема: Grub2: не удалось найти команду "ntldr"  (Прочитано 1480 раз)

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

Оффлайн Hadmi

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Доброго времени суток.
Прошу вашей помощи: пол дня курил гугл и поиск по форуму, но grub упёрся рогом и никак не хочет запускать виндовый загрузчик bootmgr. bootmgr находится на ntfs разделе /dev/sda3, на нём же лежит vhd файл с вин7 который требуется собственно загрузить.
Строку в grub пробовал добавлять двумя способами:
#1
menuentry 'Windows 7' {
insmod part_msdos
insmod ntfs
insmod ntldr     
search --file /bootmgr --no-floppy --set=root
ntldr (${root})/bootmgr
}
#2
menuentry 'Windows 7' {
set root=(hd0,3)
ntldr /bootmgr
}

В обоих случаях при выборе строки вылезает ошибка "не удалось найти команду "ntldr"" на фиолетовом фоне grub. Не могу понять, кривой перевод или я кривой, команда ntldr это ведь команда grub2 если я правильно понимаю. Как он может её не найти? Получается виндовый загрузчик он даже не пробовал запустить?

ТС не появлялся на Форуме более полугода по состоянию на 15/07/2019 (последняя явка: 18/05/2017). Модератором раздела принято решение закрыть тему.
--zg_nico
« Последнее редактирование: 15 Июль 2019, 00:17:49 от zg_nico »

Оффлайн archuser

  • Активист
  • *
  • Сообщений: 588
    • Просмотр профиля
Re: Grub2: не удалось найти команду "ntldr"
« Ответ #1 : 09 Май 2017, 02:44:53 »
Hadmi, у вас grub-pc или grub-efi? В случае последнего объясняется «ошибка "не удалось найти команду "ntldr"» из-за отсутствия модуля ntldr. В вашем случае единственно доступной командой остается chainloader. И потом, непонятно, как вы собирались загружать Windows с файла образа диска (как и непонятно, что за формат vds-файла)? Загрузчик Windows установлен на ntfs-раздел или непосредственно в файл? Во втором случае, почему в grub-командах не привязываете файл образа диска к loop-устройству, с которого в дальнейшем будет осуществлена загрузка?

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2078
  • Lubuntu 16.04 LTS
    • Просмотр профиля
Re: Grub2: не удалось найти команду "ntldr"
« Ответ #2 : 09 Май 2017, 09:20:47 »
Hadmi,  ничего не понятно. Ты собираешься загружать Win7 или WinXP? Потому что вроде как пишешь, что хочешь грузить Win7, а в конфигах груба пытаешься грузить WinXP.

bootmgr - загрузчик Win7
ntldr - загрузчик WinXP

Далее, эти загрузчики обычно лежат в корне диска С:\ а ты почему то пытаешься грузить его с каталога /bootmgr  :idiot2:

Оффлайн Hadmi

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Grub2: не удалось найти команду "ntldr"
« Ответ #3 : 09 Май 2017, 09:45:35 »
Извиняюсь за дезинформацию, засыпающий мозг почему-то написал vds вместо vhd. Исправил чтобы не смущать людей.
Попытаюсь поточнее описать проблему. Есть ntfs раздел, на нём лежит загрузчик bootmgr отредактированный на запуск с vhd файла. В vhd контейнере, который лежит на этом же ntfs-разделе, установлена win7 через виртуальную машину, так что винда думает что её жесткий диск - единственный и неповторимый и соответственно организовала там свой собственный загрузчик. Цель заключается в том, чтобы grub передал управление bootmgr, тот в свою очередь включил загрузку с vhd-файла.
Конечная цель - vhd контейнер, в который в любой момент можно поставить винду без танцев с бубнами и загрузчиками. При этом vhd контейнер может быть загружен как из grub, на реальном железе, так и через virtualbox.

archuser, спасибо за наводку про efi, стоит grub-efi и ошибка вызвана этим. Буду разбираться дальше.

Оффлайн archuser

  • Активист
  • *
  • Сообщений: 588
    • Просмотр профиля
Re: Grub2: не удалось найти команду "ntldr"
« Ответ #4 : 09 Май 2017, 11:28:17 »
Hadmi, на хабре есть статья, освещающая весь процесс установки и настройки загрузки Windows 7 Ultimate с vhd. Хотя, я практически уверен, что вы уже ее читали. В отличие от вашей конфигурации, также описанной и в статье, у меня была немного другая задача: загрузить Windows с файла образа диска, находящегося на ext-разделе. Но камнем преткновения (по крайней мере пока) к достижению желаемой цели стало отсутствие нативной поддержки в Windows ФС ext. Я тот еще жлоб, чтобы просто так отдать место на жестком диске под отдельный ntfs-раздел для Windows.  :2funny:
В целом тема мне интересна. Если вас не затруднит, отпишитесь о достигнутых вами результатах.

Оффлайн Дюшик

  • Активист
  • *
  • Сообщений: 801
    • Просмотр профиля
Re: Grub2: не удалось найти команду "ntldr"
« Ответ #5 : 10 Май 2017, 14:28:17 »
Hadmi,
Если на vhd установлена 7-ка х64, то можно попробовать "закинуть" её файлы загрузки на EFI раздел, а затем обновить GRUB. В GRUB появится Windows Boot Manager, который будет загружать 7-ку. С Windows начиная с 8-ки, такой номер проходит. С 7-ой не знаю прокатит или нет.

UPD
Попробовал с 7-ки х64 установленой на VHD с разметкой MBR, положил файлы загрузки на EFI раздел, у меня 7-ка загружается.
« Последнее редактирование: 10 Май 2017, 15:44:43 от Дюшик »

Оффлайн Hadmi

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Grub2: не удалось найти команду "ntldr"
« Ответ #6 : 10 Май 2017, 16:57:48 »
Дюшик, а что подразумевается под файлами загрузки виндовс? Попробовал закинуть bootmgr.efi и сопутствующие ему файлы в раздел efi в каталог EFI/windows, после update-grub никаких новых строк не появилось

Оффлайн Дюшик

  • Активист
  • *
  • Сообщений: 801
    • Просмотр профиля
Re: Grub2: не удалось найти команду "ntldr"
« Ответ #7 : 11 Май 2017, 15:42:11 »
Hadmi,
Я загрузочные файлы "руками" никогда перекидываю, поэтому ничего не подскажу. Я дела так.
1.Сделал бэкап раздела EFI на всякий пожарный.
2. Дальше есть разные варианты, но удобней всего загрузиться с Live CD/USB на базе WinPE, я делал с Live USB Sergei Srelec http://sergeistrelec.ru/. Загрузиться с Live USB, открыть системное Управление дисками -> Действие -> Присоеденить виртуальный жесткий диск, подключить VHD с 7-ой (если файл VHD создавался виртуальной машиной, то с его подключением могут быть сложности). Посмотреть и запомнить, какая буква будет назначена разделу с 7-ой на VHD, разделу с системой, а не разделу 100 МБ Зарезервировано системой. Управление дисками закрывать ненужно.
3. Открыть командную строку от имени администратора и в ней ввести diskpart  и следующие команды

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

Diskpart завершит работу, командная строка останется открытой, в ней ввести

bcdboot X:\windows /s M: /l ru-ru /f UEFI
где Х это буква раздела с 7-ой на VHD (эту букву можно посмотреть в Управлении дисками, если не запомнили).
Если в Diskpart  вместо "М" назначали другую букву, то соотвественно подставить её.

Появится сообщение, что файлы загрузки созданы. На EFI разделе будут созданы загрузочные файлы, а в UEFI-BIOS будет добавлена запись Windows Boot Manager.
4. Перезагрузиться и проверить загрузку с VHD. Запись Ubuntu переместится на второе место, на первом будет Windows Boot Manager, поэтому для выбора Ubuntu использовать F12 (возможно другая клавиша). Обновить GRUB и поставить Ubuntu на первое место в загрузке..
Т.к. Ubuntu установлена в UEFI режиме, незабудьте сделать правильные (нужные) настройки, чтобы 7-ка могла загружаться.
« Последнее редактирование: 11 Май 2017, 15:44:58 от Дюшик »

 

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