Почему моя машина зависает при вставке поцарапанных или нестандартных оптических носителей во время загрузки?

296
rsk82

Мой компьютер с Windows XP SP3 зависает при вставке поцарапанных или нестандартных оптических носителей во время загрузки.

Кажется, что система пытается предварительно загрузить некоторые данные с компакт-диска, и когда это терпит неудачу, это просто зависает.

Есть ли способ предотвратить такое поведение? Я не имею в виду автозапуск. Это совершенно другая вещь. Кажется, что даже когда автозапуск выключен, XP хочет получить данные с каждого оптического носителя, который вставляется в компьютер во время загрузки. Есть ли способ остановить это?

2

3 ответа на вопрос

2
emgee

You could try disabling boot from optical drive in your BIOS.

Или переместите его вниз по списку загрузочных устройств, сначала сделайте жесткий диск, а затем оптический. Moab 13 лет назад 0
1
Pops

My gut reaction to this is "well, don't insert damaged or non-standard media at boot time." Computers running many OSes will try to read from the optical drive at boot time in case you're trying to, well, boot from it. (This can be a very useful feature when you're trying to repair, say, a corrupted OS.)

That said, if you feel like that's not an option for you, could you explain what you're trying to achieve? It may help us get you a better answer.

1
TheCompWiz

Short Answer: Don't use scratched/damaged media.

Long Answer with more details: During boot, Windows has not yet switched to a multi-threaded environment. If any one piece decides to not run asynchronous, the entire boot-process will stall until either A) the process completes or B) windows decides to kill the process. In the case of a CD-Rom drive... it is treated as a device like any-other with a driver, and when that driver is loaded, the first thing it does is query what's in the drive. Unfortunately, this is not an asynchronous process. The CD-ROM drive waits for the drive to return some information about what's inside blocking all other execution of code during the boot-process. Luckily, Windows doesn't get to kill it (or you would end up with a BSOD), but rather the driver has some spiffy logistics in it to stop asking what is in the drive after some period of time. (not exactly sure what that time is) Once windows has finished booting, it switches to a multi-threaded environment which is why the CD-ROM doesn't lock up the whole machine while waiting for the results to come back.

Additionally... prior to the actual "Windows Boot" your BIOS may have some sort of firmware-recovery that can try & access your CD-ROM which is also not running in a multi-threaded environment and suffers from the same "wait for the drive to say something" type problems.

Похожие вопросы