Восстановление запуска Vista делает HD не загружаемым
У меня возникли некоторые проблемы после применения Vista SP2 для двойной загрузки (GRUB, Windows Vista 32 бит и Linux OpenSUSE 11.1 x64). Вот история:
- SP2 не удалось установить на последнем этапе (после перезагрузки), при поиске я предположил, что это произошло из-за двойной загрузки, потому что многие другие люди сообщали об этом же сообщении об ошибке в тех же условиях.
- В ожидании поддержки MS, я попробовал несколько вещей с DVD "Repair your computer", консоль:
bootrec /fixmbr
, нет эффекта;bootrec /fixboot
, выдает ошибку "Элемент не найден";bootrec /rebuildbcd
, выдает ошибку "Элемент не найден";bootrec /scanos
, находит операционную систему Windows Vista на C:, повторная попытка приведенных выше команд безрезультатно.
- Служба поддержки Microsoft посоветовала попробовать восстановить автозагрузку с DVD: "Восстановить компьютер", "Восстановить автозагрузку", которая должна переустановить загрузку Windows в MBR. С этого момента HD не будет загружаться.
- С DVD ремонт / консоль, я попробовал команды выше еще раз:
bootrec /fixmbr
, нет эффекта;bootrec /fixboot
больше нет ошибок, нет эффекта;bootrec /rebuildbcd
больше нет ошибок, нет эффекта;bootrec /scanos
, не находит ни одной ОС.
Затем я попытался с установочного диска OpenSUSE 11.1,
- восстановление загрузочного сектора, добавление загрузчика цепочек для Windows к записи Linux, которую он уже нашел автоматически;
- перезагрузка успешно дала мне меню GRUB, из которого я мог запустить Windows Vista (или Linux).
Проблема в том, что теперь я должен делать это каждый раз. Если я выключу компьютер из Windows Vista или OpenSUSE, в следующий раз, когда он не сможет загрузиться с HD напрямую, мне придется загрузиться с DVD, переустановить GRUB и перезагрузить компьютер. Затем, когда он выполняет горячую перезагрузку, он успешно использует восстановленный загрузчик.
Это может быть сбой HD, и BIOS считывает кэшированную MBR при "горячей" перезагрузке, что объясняет симптомы. Но мне трудно поверить, что grub-install не будет правильно проверять MBR. Кроме того, было бы очень подозрительно, что кластер MBR внезапно сломался бы, когда я использовал опцию восстановления Vista (и также не был бы обнаружен).
Вот список разделов из TestDisk (fdisk согласен с этим): Текущая структура разделов:
1 * HPFS - NTFS 0 32 33 16709 117 48 268435456 [OS]
2 P HPFS - NTFS 16709 117 49 50128 33 17 536870912 [Projects]
3 E extended LBA 50129 0 1 60800 254 63 171445680
5 L Linux Swap 50129 1 1 50390 254 63 4208967
X extended 50391 0 1 53001 254 63 41945715
6 L Linux 50391 1 1 53001 254 63 41945652
X extended 53002 0 1 55612 254 63 41945715
7 L Linux 53002 1 1 55612 254 63 41945652
Vista использует 1 и 2, OpenSUSE 3 (с 5, 6 и 7 в качестве расширенных разделов). Ничего необычного.
Я не пробовал винду Drive:\boot\Bootsect.exe –NT60 All
пока, потому что я понятия не имею, что он будет делать. Могут быть и другие решения, но я хотел бы знать, если кто-то там уже страдал от той же проблемы и нашел хорошее решение? (Поддержка Microsoft, кажется, не имеет никакого понятия и говорит, что переустановить все, что я даже не уверен, будет работать).
Редактировать: только что увидел, что загрузчик GRUB по-прежнему будет работать после сеанса Windows при перезапуске с shutdown /t 0 /r
Таким образом, кажется, что единственная загрузка, которая терпит неудачу, является холодной загрузкой из BIOS. Это делает недействительной теорию кеша навсегда.
Edit2:
Заметил, что grub-install был фактически отключен в OpenSUSE 11.1, он игнорирует параметры и использует стандартный файл конфигурации. Попытка ручной установки дала намек:
Я получаю "Ошибка 17: Не удается смонтировать выбранный раздел".
Это означает, что GRUB не может определить тип раздела, в то время как я могу смонтировать его, указав его NTFS. fdisk -l
и признает это:
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x9913fa82
Device Boot Start End Blocks Id System
/dev/sda1 * 1 16710 134217728 7 HPFS/NTFS
/dev/sda2 16710 50129 268435456 7 HPFS/NTFS
/dev/sda3 * 50130 60801 85722840 f W95 Ext'd (LBA)
/dev/sda5 50130 50391 2104483+ 82 Linux swap / Solaris
/dev/sda6 50392 53002 20972826 83 Linux
/dev/sda7 53003 55613 20972826 83 Linux
Я предполагаю, что каким-то образом "ремонт" Vista испортил информацию, связанную с первым разделом. Это дает кому-нибудь идею?
2 ответа
Выяснилось, что проблема была в том, что два раздела были помечены как загрузочные, как вы можете видеть в моем втором редактировании, побочным эффектом использования Vista DVD для восстановления MBR. Очевидно, он испортил расширенный раздел, загрузив его... (нормально от Microsoft, вы бы сказали).
Решением было использовать gparted и сбросить флаг загрузки.
Я все еще должен исправить MBR и обновить до SP2, для этого есть те две ссылки, для всех, кто заинтересован. Это не было проверено!
- http://www.sysint.no/nedlasting/mbrfix.htm ( страница загрузки, ищите MBRFIX)
- http://ms-sys.sourceforge.net/
Некоторые подробные объяснения MBR, изменений в Vista и так далее можно найти здесь.
Спасибо за помощь!
На самом деле это звучит как проблема с BIOS или контроллером. Похоже, что диск настроен правильно, и первый раздел помечен как активный, так что это не проблема (о чем свидетельствует его правильная работа при "горячей" перезагрузке / перезагрузке).
Я видел проблемы с холодной загрузкой при сбое чипов контроллера на материнской плате. Я также видел эти симптомы, когда BIOS пытается загрузиться до того, как жесткий диск завершит свою процедуру раскрутки, поэтому он не готов, когда BIOS пытается загрузиться с него. Проблемы раскрутки также могут быть вызваны недостаточной мощностью системы; ускорение привода требует намного больше энергии, чем нормальная работа. Они также могут быть вызваны неисправным контроллером накопителя (электроникой самого жесткого диска, а не контроллером IDE/SATA материнской платы).
Я бы попробовал следующее:
- Вставьте диск в другой интерфейс (вставьте его в другой разъем на материнской плате).
- Установите диск на другой контроллер (используйте дополнительную плату контроллера, а не встроенный контроллер материнской платы).
- Вставьте диск в другой компьютер (если он загружается в Grub, это не проблема диска).
- Убедитесь, что все настройки BIOS являются нормальными; Вы можете даже записать текущие настройки и выполнить "восстановление настроек по умолчанию".
- Попробуйте отключить любые другие диски и ненужные устройства - при необходимости приведите систему к основам (mobo, CPU, RAM, harddrive - используйте встроенную графику, если она доступна).
- Попробуйте использовать другой диск в качестве системного диска.
- Попробуйте другой (более мощный) блок питания.