LINUX.ORG.RU
ФорумAdmin

grub 2 не грузит ntldr


0

1

После переноса (dd) виндового раздела (системный WinXp) со старого винта на новый Grub 2 не грузит ntldr - тупо черный экран с курсором.
Грузится так:
set root=(hd0,msdos3)
chainloader +1
boot

Проверяю, что это именно тот раздел:
ls (hd0,msdos3)
ntfs, метка, ... короче раздел тот
проверяю наличие ntldr:
ls (hd0,msdos3)/ntldr
ntldr

Проверил есть ли bootsector в разделе:
dd if=/dev/sda3 bs=512 count=1
по строкам ...ntldr is missing ntldr compressed... что то там... в выводе dd можно сулить что bootsector на месте. На всякий случай из виндовой консоли восстановления делаю fixboot.
boot-флаг на разделе стоит, hdd первый в BIOS.

По прежнему черный экран с курсором... самое главное даже не понятно передается ли управление ntldr или grub даже не находит bootsector по какой то причине...

Как определить суть проблемы?



Последнее исправление: riwer (всего исправлений: 1)

ещё раз скажи что делал.

«у меня было 2 винта, на одном стояла чисто ХР, на другом чисто линукс, я решил слить всё в один, для этого я выполнил такие-то команды...»

таблицу разделов с размерами в гигабайтах на обоих винтах до и после в студию.

Gordon01 ★★
()
Ответ на: комментарий от Gordon01

На новом винте так:

/dev/sda1 64 104857663 52428800 83 Linux
/dev/sda2 104857664 1782579263 838860800 83 Linux
/dev/sda3 * 1782579264 1814036543 15728640 7 HPFS/NTFS
/dev/sda4 1814036544 1953525167 69744312 5 Extended
/dev/sda5 1814036608 1826619519 6291456 82 Linux swap / Solaris
/dev/sda6 1826619584 1889534143 31457280 7 HPFS/NTFS
/dev/sda7 1889534208 1953525167 31995480 7 HPFS/NTFS

Старого уже нет, но там все разделы были меньшего размера, кроме того системный виндовый раздел был первым.

Проблему уже решил;) Может кому поможет:

Вся суть была в partition boot sector системного раздела WinXp, а точнее в четырехбайтном поле hidden sectors по смещению 0x1c. Это поле содержит смещение загрузочного сектора раздела относительно начала HDD, и, как оказалось используется bootstrap-кодом при поиске ntldr. Так как на старом винте виндовый системный раздел был первым (где ему и положено быть по идее), то значение hidden sectors было 63 (3F). Таким образом, чтобы на новом разделе bootstrap нашел ntldr надо было в моем случае всего лишь hexeditor-ом изменить данное значение в первом секторе раздела по смещению 0x1c с 63 на 1782579264 (смещение /dev/sda3). В hex это 0x6a400040; итого (с учетом little endian) менять надо на 4000406a.
После перезагрузки винда благополучно стартует...)

riwer
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.