У меня есть система с двойной загрузкой Gentoo Linux и Windows 7 с использованием GRUB2. На компьютере установлено четыре диска, а Windows установлена на третий (последний) раздел диска № 2. Расположение дисков выглядит следующим образом:
|boot|-----------------home-----------------|-------------windows-------------|
( boot
и home
это разделы Linux) Это странная установка, но она всегда работала, пока я не решил сжать раздел Windows с помощью Gparted. Новый макет:
|boot|-----------------------home-----------------------|-------windows-------|
После внесения этих изменений в раздел, когда я выбираю опцию Windows в GRUB2 и она передает управление загрузчику Windows, я получаю сообщение об ошибке:
Диспетчер загрузки
Windows Не удалось запустить Windows. Причиной может быть недавнее изменение оборудования или программного обеспечения. Решить проблему: 1. Вставьте установочный диск Windows и перезагрузите компьютер. 2. Выберите настройки языка и нажмите «Далее». 3. Нажмите «восстановить компьютер». Если у вас нет этого диска, обратитесь к системному администратору или компьютеру производитель за помощь. Статус: 0xc0000225 Информация: Не удалось выбрать загрузку, поскольку требуемое устройство недоступно.
Я не особенно удивлен, что это происходит, но мне интересно, смогу ли я это исправить без переустановки Windows.
Я попытался загрузить компьютер с установочного DVD-диска Windows (в частности, DVD-диска обновления Windows 7). После того, как я выбрал язык и клавиатуру и нажал «Восстановить этот компьютер», экран «Параметры восстановления системы» не обнаружил мой раздел Windows . Я могу в любом случае нажать «Далее», а затем использовать Восстановление при загрузке, которое не может решить проблему , или попробовать инструменты командной строки, а именно bootrec
(предложенные несколькими веб-сайтами) sfc
, и chkdsk
. Никто из них не имел значения; Я все еще получаю то же сообщение об ошибке. (См. Ниже для подробного вывода.)
Также, как предлагалось в аналогичных вопросах, я попытался использовать функциональность «Rebuild BS» (перестроить загрузочный сектор) в TestDisk , работающем под Linux и действующем в разделе Windows. Это также не изменило ошибку, которую я получаю.
Я не видел каких-либо признаков повреждения данных ни в одном из разделов, и накопители не пострадали от физического повреждения, поэтому вполне вероятно, что причиной этой ошибки является изменение структуры разделов. Я полагаю, что Windows должна иметь начальный сектор и / или размер раздела, хранящиеся где-то в своей файловой системе (реестре?), Предполагая, что в принципе это можно исправить, переместив пару байт в файл где-нибудь. Но какой файл? Или есть что-то более сложное?
Если это поможет, вот раздел конфигурации GRUB2, соответствующий Windows:
menuentry 'Windows 7 (loader) (on /dev/sdb3)' --class windows --class os $menuentry_id_option 'osprober-chain-1F9948EB30A986A0' {
insmod part_msdos
insmod ntfs
set root='hd1,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos3 --hint-efi=hd1,msdos3 --hint-baremetal=ahci1,msdos3 1F9948EB30A986A0
else
search --no-floppy --fs-uuid --set=root 1F9948EB30A986A0
fi
chainloader +1
}
Опять же, в идеале я ищу способ исправить это без переустановки Windows. Если это невозможно, то переустановка является приемлемым планом B, но я справлюсь сам.
Вот расшифровка моих сеансов командной строки при загрузке в среду восстановления с установочного DVD-диска Windows 7. Я удалил несколько пустых строк для удобства чтения. Следующее со всеми другими отключенными дисками :
>bootrec /fixmbr
The operation completed successfully,
>bootrec /fixboot
The volume does not contain a recognized file system.
Please make sure that all required file system drivers are loaded and that the volume is not corrupted.
>bootrec /scanos
Scanning all disks for Windows installations.
Please wait, since this may take a while...
Successfully scanned Windows installations.
Total identified Windows installations: 1
[1] C:\Windows
The operation completed successfully.
>bootrec /rebuildbcd
Scanning all disks for Windows installations.
Please wait, since this may take a while...
Successfully scanned Windows installations.
Total identified Windows installations: 1
[1] C:\Windows
Add installation to boot list? Yes(Y)/No(N)/All(A):y
The volume does not contain a recognized file system.
Please make sure that all required file system drivers are loaded and that the volume is not corrupted.
>sfc /verifyonly /offwindir=C:\Windows /offbootdir=C:\
Beginning system scan. This process will take some time.
Windows Resource Protection did not find any integrity violations.
>chkdsk C: /F
The type of the file system is NTFS.
Volume label is windows.
CHKDSK is verifying files (stage 1 of 3)...
313344 file records processed.
File verification completed.
1684 large file records processed.
0 bad file records processed.
2 EA records processed.
158 reparse records processed.
CHKDSK is verifying indexes (stage 2 of 3)...
416370 index entries processed.
Index verification completed.
0 unindexed files scanned.
0 unindexed files recovered.
CHKDSK is verifying security descriptors (stage 3 of 3)...
313344 file SDs/SIDs processed.
Security descriptor verification completed.
51514 data files processed.
CHKDSK is verifying Usn journal...
35406088 USN bytes processed.
Usn Journal verification completed.
Windows has checked the file system and found no problems.
207510871 KB total disk space.
104134880 KB in 251224 files.
137304 KB in 51514 indexes.
0 KB in bad sectors.
423075 KB in use by the system.
65536 KB occupied by the log file.
102815612 KB available on disk.
4096 bytes in each allocation unit.
51877717 total allocation units on disk.
25703903 allocation units available on disk.
Failed to transfer logged messages to the event log with status 50.
>diskpart
Microsoft DiskPart version 6.1.7600
Copyright (C) 1999-2008 Microsoft Corporation.
On computer: MININT-P92LVUL
DISKPART>list disk
Disk ### Status Size Free Dyn Gpt
-------- ------------- ------- ------- --- ---
Disk 0 Online 596 GB 0 B
DISKPART>select disk 0
Disk 0 is now the selected disk.
DISKPART>list part
Partition ### Type Size Offset
------------- ---------------- ------- -------
Partition 1 Primary 62 MB 31 KB
Partition 2 Primary 398 GB 62 MB
Partition 3 Primary 197 GB 398 GB
Когда я запускаю одни и те же команды со всеми подключенными дисками, вывод одинаков, за исключением того, что diskpart
правильно отображаются все диски, и D
вместо этого указана буква диска для рассматриваемого раздела Windows C
(поскольку у меня есть раздел данных NTFS на диске №1 ).
Я хотел бы отметить, что bootrec /fixmbr
перезаписывает MBR диска # 2, заменяя MBR, помещенный туда GRUB2. Когда я пытаюсь загрузиться с этого диска, вместо сообщения 0xc0000225 я получаю сообщение «Отсутствует операционная система». Затем я могу загрузиться в Linux и использовать grub-install
для установки GRUB2 MBR, а затем выбор опции Windows в GRUB2 снова дает 0xc0000225.