У мене є система, яка використовує подвійні черевики 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 не вдалося запустити. Причиною може бути недавня зміна обладнання або програмного забезпечення. Щоб вирішити проблему: 1. Вставте інсталяційний диск Windows і перезавантажте комп'ютер. 2. Виберіть свої мовні налаштування та натисніть «Далі». 3. Клацніть «відновити комп’ютер». Якщо у вас немає цього диска, зверніться до системного адміністратора або комп’ютера виробник для надання допомоги. Статус: 0xc0000225 Інформація: не вдалося вибрати завантаження, оскільки потрібний пристрій недоступний.
Я не особливо здивований, що це трапляється, але мені цікаво, чи можна це виправити, не перевстановлюючи Windows.
Я спробував завантажувати комп’ютер за допомогою інсталяційного DVD з Windows (зокрема, DVD з оновленням до Windows 7). Після того як я вибираю мову та клавіатуру та натискаю "Відновити цей комп'ютер", екран "Параметри відновлення системи" не визначає мій розділ Windows . Я все одно можу натиснути «Далі», а потім використати «Ремонт запуску», який не вдається виправити проблему , або спробувати інструменти командного рядка, а саме bootrec
(запропоновані кількома веб-сайтами) sfc
, та chkdsk
. Жоден з них не змінив значення; Я все одно отримую те саме повідомлення про помилку. (Детальнішу інформацію див. Нижче.)
Також, як було запропоновано у подібних питаннях, я спробував використовувати функцію "Відновити 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. Потім я можу завантажитися в Linux і використовувати grub-install
для повернення GRUB2 MBR, а потім, вибравши опцію Windows у GRUB2, знову дається 0xc0000225.