Что вызывает "произошла ошибка чтения диска, нажмите сочетание клавиш Ctrl + Alt + Del для перезагрузки"?

у меня есть виртуальная машина, содержащая Windows XP SP3.

когда я изменил размер VHD-файла (и встроенного раздела) и попытался загрузиться, я получил:

A disk read error occurred
Press Ctrl + Alt + Del to restart

некоторые замечания:

  • FixBoot и FixMBR не помогло.

  • ChkDsk не помогает.

  • раздел действительно активен.

  • раздел начинается с сектора 63 (он также сделал это до проблема) цилиндра 1, головка 1, и помечается как тип 0x07 (NTFS)

  • мой хост ОС читает VHD и раздел совершенно нормально

  • мне интересно знать причина, а не fix. Так что "повторно отформатировать диск", "переустановите Windows", и т. д. недопустимые решения.

    это виртуальная машина, в конце концов... Мне нечего терять, поэтому я не заботиться о его починке.


    Я просто хочу знать, что вызывает эту проблему, если я снова столкнусь с ней на физической машине (что я делал раньше).


Подробнее:

Я сделал образец VHD-файла, иллюстрирующий (почти) ту же проблему, которую вы можете скачать здесь.

воспроизвести проблему:

  • Скачать файл (это очень сжатый, будьте осторожны!), и попробуйте загрузить его в VirtualBox (или другой виртуальной машине). Обратите внимание, что вам будет сказано "ошибка загрузки операционной системы". (Хотя ошибка отличается, это та же проблема.)

  • теперь попробуйте подключить виртуальный жесткий диск в управлении дисками Windows, и работает BootSect.exe /NT60 X: /MBR, где X: - буква подключенного Тома. (Расположение инструмента, вероятно, будет C:bootbootsect.exe, но если его нет в вашей системе, то вам нужно найти его где-то еще...) Теперь снимите крепление и попробуйте загрузку. Теперь загрузка должна выполняться правильно. (Хотя он не найдет Hal.dll, по крайней мере, вы знаете, что это работает.)

  • теперь сделайте то же самое, что и на последнем шаге, но используйте /NT52 вместо /NT60. Теперь вы будете встречены с первой ошибкой-указывая, что загрузчик Windows XP не нравится диск.


    Поэтому мой вопрос:почему?

11
задан cpast
25.04.2023 5:41 Количество просмотров материала 3004
Распечатать страницу

6 ответов

причина либо в том, что загрузчик вызывает BIOS для чтения других секторов диска, и этот вызов не выполняется, либо загрузчик не считает таблицу разделов допустимой.

Если я не ошибаюсь, когда Windows форматирует диск, не создает ли он небольшой раздел в самом его конце или не оставляет там неразмеченной области? Ваша утилита изменения размера воссоздала это? Звучит глупо, но это может быть причиной, почему он жалуется. Странно, но я бы не поставил его мимо окон (и, возможно, что-то в более новых версиях), чтобы иметь такую причуду.

2
отвечен LawrenceC 2023-04-26 13:29

файловые системы-это сложные, сложные, привередливые вещи. Например, старая копия Partition Magic жалуется на некоторую небольшую числовую несогласованность или что-то о разделах на одном из моих дисков, в то время как Windows (XP) и Easeus Partition Master и такие все без проблем. Даже старая копия Norton Disk Editor не жалуется на этот диск.

дело в том, что есть много мелочей, которые могут пойти не так, или хуже, что может "пойти не неправильно", но все равно будет неправильным (т. е. неправильное значение не может показать никаких симптомов).



Что, вероятно, произошло, что при изменении размера файла VHD, инструмент, который вы использовали была ошибка и не (правильно?) обновите поле где-нибудь в файловой системе диска (таблица разделов? загрузочный альбом? загрузочный сектор? Мета-файлы NTFS?)

как указывали другие, ошибка, которую вы получаете, как правило,BIOS ошибка в отличие от ошибки ОС. Что вероятно, происходит то, что поле, которое не было правильно обновлено, было в начале диска (например, в загрузочной записи или таблице разделов), поэтому, когда BIOS VM пытается прочитать диск, он находит неправильные/несогласованные значения и выдает исключение. Вы не упомянули, какого рода изменения вы сделали. Ты уменьшил или расширил его?

моя гипотеза заключается в том, что размер его вниз, и BIOS читает таблицу разделов и пытается прочитать за диском (к несуществующие секторы), так как размер диска не был правильно обновлен.

как для хозяина, я мог бы предположить, что причина того, что он может правильно прочитать диск, потому что программа, которая монтирует VHD это как-то маскировать ошибки. Ведь для хостера "диск" - это не настоящий диск, а на самом деле просто (.vhd) файл, в то время как к гостю, диск якобы реальном, физическом диске. Таким образом, хост может исправить ошибки, которые гость не могу.



Вы можете проверить, есть ли обновленная версия инструмента или использовать загрузочный диск, такой как CloneZilla (или найти копию PTEdit), для запуска на виртуальной машине и изучения "диска" из хоста.

2
отвечен Synetech 2023-04-26 15:46
╒═════════════════════════════════════════════════════════════════════════════╕
│   Sectors:     3149824          Disk Signature:  0xEE3EEE3E                 │
├─────────────────────────────────────────────────────────────────────────────┤
│Pos Idx Type/Name Size Boot Hide  Start Sector  Total Sectors  DL Vol Label  │
├─── ─── ───────── ──── ──── ──── ────────────── ────────────── ── ───────────┤
│ 1   1  07-NTFS   1.5G  Yes  No              63      3,148,677 F: <None>     │
╘═════════════════════════════════════════════════════════════════════════════╛

3,148,677 / 3,149,824 = 0.999636 = 1 - 0.000364

1.5G * 0.000364 = 0.000546G

там только, кажется, около 546 КБ бесплатно, это может быть возможно, что он не может написать файл при загрузке.

0
отвечен Tom Wijsman 2023-04-26 18:03

одна из возможностей, которую я вижу, заключается в том, что после изменения размера VHD существует некоторая несовместимость между тем, что BIOS думает, что он знает о жестком диске и самом диске.

другая возможность заключается в том, что свободное пространство на диске слишком мало или слишком фрагментировано для загрузки Windows. Иногда Дефрагментация диска с этой ошибкой делает его загрузочным.

[EDIT]

согласно вашей добавленной информации, Вы резко сократили VHD с 127 ГБ до 1,5 ГБ, поэтому может быть недостаточно места для файла подкачки. Размер, который вы использовали, возможно, был слишком агрессивным, или он, возможно, переместил такие несъемные системные файлы Windows и, следовательно, сделал диск не загружаемым.

для правильной работы Windows требуется довольно много свободного места на диске, причем некоторые из них смежны (по крайней мере, для файла подкачки).

Я думаю, что правильная процедура должна была быть от 127 ГБ VHD, чтобы отключить в XP файл подкачки и восстановление системы, очистите Корзина, дефрагментировать диск с дефрагментатором, который может консолидировать используемое пространство в верхней части (или свободное пространство в нижней части), а затем сделать изменение размера оставляя свободное пространство, которое в несколько раз превышает определенный размер оперативной памяти.

с помощью этой процедуры вы могли оказаться жизнеспособной и загрузочный диск для начала.

иногда эти проблемы проясняются при повторной перезагрузке, возможно, Windows, наконец, удается переставить диск по своему вкусу.

0
отвечен harrymc 2023-04-26 20:20

(добавление другого и несколько другого ответа.)

вы говорите, что загрузка с загрузочным сектором NT52 не работает, но NT60 работает.

разница может быть в процесс загрузки. NT52 является загрузкой XP, которая использует NTLDR, в то время как NT60 является методом Vista, который использует Bootmgr.

NTLDR использует загрузку.ini-файл для поиска жестких дисков и разделов. Он консультируется прошивки компьютера (BIOS), чтобы узнать, какой жесткий диск считается диск ноль, затем смотрит на таблицу разделов на этом диске, чтобы узнать, какой раздел является номером один. После того, как он знает расположение раздела, он может найти папку Windows\system32 ОС было предложено начать.

Bootmgr обращается к файлу BCD в папке Загрузки для получения информации, необходимой для правильного диска и раздела, но не использует встроенное ПО для поиска жесткого диска или таблицы разделов для поиска раздела. Вместо этого он использует уникальная подпись диска в MBR жесткого диска и смещение раздела (начальный сектор) раздела.

видимо при изменении размера диска вы уничтожили элемент, который используется для процесса загрузки NTLDR, но не используется Bootmgr. Это может быть в BIOS, в том смысле, что информация о жестком диске уже не правильно, например, количество цилиндров или секторов, или что-то в ботинке.сам Ини.

кроме того, bootsect обновляет загрузочный код тома, а не главный загрузочный код. Основной загрузочный код является частью главной загрузочной записи (MBR) и есть только одна на физический диск. Загрузочный код Тома является частью загрузочной записи Тома, и на каждый том приходится по одному коду. Это может быть, что с ваши попытки сделать диск загрузочным, некоторая несовместимость закралась между ними, что требует лучшего знания, Чем мой процесс загрузки для анализа.

Как Bootmgr не использует BIOS или загрузки.Ини, это видимо управляет использованием MBR и загрузкой.

0
отвечен harrymc 2023-04-26 22:37

У меня была похожая проблема. XP с той же ошибкой. bootsect / nt52 не решит проблему. Я клонировал диск и клонировал его обратно, и presto - IT сапоги. Урок состоит в том, что вы должны быть экспертом в секционировании, чтобы точно определить проблему. остальным приходится прибегать к хакерству и все такое. кто-то в интернете сказал, что эти проблемы могут быть вызваны пределом bios 137 ГБ. может быть, но на самом деле есть несколько причин.

0
отвечен user242114 2023-04-27 00:54

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх