У меня есть ноутбук с двойной загрузкой Windows 7 и Ubuntu, но он больше не загружается в Windows. Я уверен, что загрузочный сектор раздела Windows (начало раздела, а не MBR!) разорено. Как мне восстановить его из Linux?
(В ноутбуке нет привода DVD, и я бы предпочел не устанавливать USB для установки Windows, потому что в прошлый раз мне потребовалось несколько попыток. Кроме того, установщик Windows будет перезаписывать не только загрузочный сектор, но и MBR, убивая GRUB, поэтому мне придется впоследствии исправить Ubuntu.)
Подробности:
Структура разделов выглядит следующим образом:
Device Boot Start End Blocks Id System
/dev/sda1 54 151129367 75564657 5 Extended
/dev/sda2 151129368 302247179 75558906 7 HPFS/NTFS/exFAT
/dev/sda3 * 302247180 312497351 5125086 c W95 FAT32 (LBA)
/dev/sda4 312497352 312578243 40446 ef EFI (FAT-12/16/32)
/dev/sda5 108 4194827 2097360 82 Linux swap / Solaris
/dev/sda6 4194882 151129367 73467243 83 Linux
sda1 - это расширенный раздел, содержащий Linux (sda4, sda5 и sda6). sda3 - это раздел восстановления (похоже, модифицированная Windows XP). sda2 - это раздел Windows 7 (NTFS). Я могу смонтировать его из Linux, и все, кажется, там.
Grub не может загрузиться в Windows 7. Меню загрузки содержит запись под названием “Windows”
(обратите внимание на забавные кавычки), которая пытается загрузить (hd0,1)
= sda1, конечно, безуспешно. Я могу вручную загрузить sda3, но в этом нет смысла.
Когда я пытаюсь загрузить sda2 (Windows 7), я получаю сообщение "NTLDR отсутствует". Это странно, потому что Windows 7 не использует NTLDR, но BOOTMGR. Я не помню, как это получилось (это случилось некоторое время назад), но я думаю, что какой-то инструмент восстановления, который я пробовал, установил неправильный загрузочный сектор в этом разделе. Вот как выглядит начало раздела:
$ sudo dd if=/dev/sda2 bs=512 count=1 | hd
00000000 eb 52 90 4e 54 46 53 20 20 20 20 00 02 08 00 00 |.R.NTFS .....|
00000010 00 00 00 00 00 f8 00 00 36 00 d6 00 18 0d 02 09 |........6.......|
00000020 00 00 00 00 80 00 80 00 f3 df 01 09 00 00 00 00 |................|
[...]
00000170 b4 01 8b f0 ac 3c 00 74 09 b4 0e bb 07 00 cd 10 |.....<.t........|
00000180 eb f2 c3 0d 0a 41 20 64 69 73 6b 20 72 65 61 64 |.....A disk read|
00000190 20 65 72 72 6f 72 20 6f 63 63 75 72 72 65 64 00 | error occurred.|
000001a0 0d 0a 4e 54 4c 44 52 20 69 73 20 6d 69 73 73 69 |..NTLDR is missi|
000001b0 6e 67 00 0d 0a 4e 54 4c 44 52 20 69 73 20 63 6f |ng...NTLDR is co|
[...]
Я должен сказать, что я пробовал update-grub и boot-repair безрезультатно. Grub установлен и работает правильно, что не так - загрузчик Windows, загружаемый Grub по цепочке. Что мне нужно, так это что-то вроде bootsect /nt60 C:
для Linux или любой другой способ получить чистую копию загрузчика на моем разделе. Есть идеи?