У меня есть система с двойной загрузкой Gentoo Linux и Windows 7 с использованием GRUB2. Компьютер имеет четыре диска, а Windows установлена на третий (последний) раздел диска № 2. Расположение дисков выглядит следующим образом:
|boot|-----------------home-----------------|-------------windows-------------|
(boot
и home
- это разделы Linux) Это странная настройка, но она всегда работала, пока я не решил сжать раздел Windows с помощью Gparted. Новый макет:
|boot|-----------------------home-----------------------|-------windows-------|
После внесения этих изменений в раздел, когда я выбираю опцию Windows в GRUB2 и она передает управление загрузчику Windows, я получаю сообщение об ошибке:
Windows Boot Manager
Windows failed to start. A recent hardware or software change might be the cause. To fix the problem: 1. Insert your Windows installation disc and restart your computer. 2. Choose your language settings, and then click "Next." 3. Click "repair your computer." If you don't have this disc, contact your system administrator or computer manufacturer for assistance. Status: 0xc0000225 Info: The boot selection failed because a required device is inaccessible.
Я не особенно удивлен, что это происходит, но мне интересно, смогу ли я это исправить без переустановки 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
правильно показывает все диски, и буква диска для рассматриваемого раздела Windows - D
вместо C
(потому что у меня есть раздел данных NTFS диск № 1).
Я хотел бы отметить, что bootrec /fixmbr
перезаписывает MBR диска # 2, заменяя MBR, помещенный туда GRUB2. Когда я пытаюсь загрузиться с этого диска, вместо сообщения 0xc0000225 вместо сообщения 0xc0000225 появляется сообщение "Отсутствует операционная система". Затем я могу загрузиться в Linux и использовать grub-install
для возврата GRUB2 MBR, а затем выбор опции Windows в GRUB2 снова дает 0xc0000225.