Звідки комп’ютер знає, що ПК був неправильно відключений?


92

Власне, це питання мене вразило через відключення електроенергії в моєму будинку. Коли відбувається відключення живлення, відбувається раптова втрата живлення від комп’ютера.

Звідки комп’ютер знає, що відключення не було зроблено належним чином?

Відповіді:


104

Windows також використовує метод " Брудні біти", щоб виявити, чи не було ПК вимкнуто належним чином:

При відключенні живлення як звичайному, біт вимикається. Однак у разі відключення живлення або неналежного (примусового) відключення біт все одно буде наступного разу при запуску ПК.

Це означає, що Windows може запропонувати виправити дії - наприклад, завантаження в безпечний режим.

Крім того, ПК на базі Windows запише запис у журнал подій із деталізацією, коли і чому (якщо відомо) його було закрито. Він також записує подію, коли ПК запускається.

Система вимкнена

Запуск системи

Коли комп'ютер перезавантажується, він може перевірити журнал подій, і якщо він не знайде події "вимкнення" після останньої події "запуску", він знає, що ПК не вимкнувся належним чином, і можуть виникнути проблеми із-за збереження дані тощо


2
Хіба відповідь Девіда нижче не є більш точною? Я думав, що в NTFS є "брудний шматочок", який FS виявляє при встановленні. Я завжди вважав, що журнал подій - це лише журнал того, що знайдено, а не власне виявлення та міркування за ним?
HaydnWVN

3
Але в ситуації із незапланованим відключенням живлення (без ДБЖ, очевидно) відключення було б "несподіваним" (згадується журналом подій). Чудова інформація тутIf a program initiates an I/O operation that alters the structure of an NTFS volume - that is, changes the directory structure, extends a file, allocates space for a new file, and so on - NTFS treats that operation as an atomic transaction. It guarantees that the transaction is either completed or, if the system fails while executing the transaction, rolled back.
HaydnWVN

3
@HaydnWVN Брудний біт файлової системи використовується для виявлення ненормального відключення, щоб ОС знала, що файлова система може бути в невизначеному стані, і може запустити діагностику (наприклад chkdsk) для виявлення потенційних проблем з файловою системою. Ось чому ви отримуєте діалогове вікно відновлення іноді під час підключення USB-накопичувачів, які були неправильно видалені. На відміну від цього, термін "брудний біт" просто означає встановлене поле і скасовується пізніше, коли відбувається належне припинення роботи системи або пристрою. Неправильне припинення залишає набір полів, тому воно розпізнається при наступній ініціалізації пристрою.
Поліном

1
@ChrisF Цю вимогу можна вимкнути в груповій / локальній політиці. І буде пройдений, якщо його вимкнути через щось на зразок панелі управління VM хоста. Краще покластися на події Генерального ядра №12 (нормальне відключення) та EventLog # 6002 (останнє відключення було несподіваним). Якщо це був BSOD, там також повинен бути BugCheck # 1001. (Усі події: джерело #id.)
Річард

1
По-перше, як зберігається стан цього біта в мінливій пам'яті після циклу живлення? А як щодо подвійного завантаження? Цитата у вікіпедії звучить як припущення - хоча я не читав книги "Концепції операційної системи", на які вона посилається. По-друге, ідея про те, що Windows зчитує журнал подій, щоб визначити, чи сталося чисте відключення, очевидно, неправильна. Відповідь, яка вказує на bootstat.dat для Windows, набагато вірогідніша, ніж будь-яка з цих здогадок, почасти тому, що це має більше сенсу, але в основному через цитованого джерела.
конопля

121

Для ПК, що не мають ОС Windows, виявлення зазвичай проводиться на основі файлової системи. Коли файлова система змонтована в режимі читання / запису, до файлової системи записується запис, позначаючи її брудною. Якщо файлова система відключена, записується запис, що позначає її чистотою. При запуску операційна система перевіряє, чи основні файлові системи позначені брудними, і якщо так, то вона знає, що не було чистого відключення - принаймні з цих файлових систем.


29
+1, тому що питання не задається про конкретну ОС.
Тревор Бойд Сміт

42

У Windows, на думку авторів Windows Internals, 5-е видання, це файл bootstat.dat (розташований за замовчуванням у каталозі \ boot системного розділу):

Windows використовує файл стану завантаження ... для того, щоб записати той факт, що він прогресував через різні етапи життєвого циклу системи, включаючи завантаження та відключення. Це дозволяє Диспетчеру завантажень, завантажувачу Windows та інструменту відновлення запуску виявляти аномальне відключення або невдало закритись та запропонувати користувачеві параметри відновлення та діагностики завантаження ...

 


3
Джерело цитати?
Пол ДелРе

23
"Windows Internals" Марка Русиновича та Девіда Соломона з Алексом Іонеску, сторінка 1010.
artm

Щоб порівняти це з відповіддю ChrisF - "брудний біт", який підтримується кожною файловою системою, призначений лише для стану цієї файлової системи; вона не є загальносистемною. Зауважте, що ви можете "безпечно відключити" знімний жорсткий диск - це очищає брудний біт для цієї файлової системи - і після цього може статися несподіване відключення.
Джеймі Ханрахан

0

На деяких комп'ютерах може бути встановлений незалежний від ОС метод в апаратній BIOS. Це залежить від постачальника комп'ютерів та постачальника BIOS.

Мохорами є American Megatrends Inc. (AMI), Award та Phoenix Technologies. Подивіться на цих виробників, щоб визначити особливості.


2
Замість того, щоб просто помахати рукою і сказати "інформація там", а як насправді посилання на деякі відповідні посилання?
G-Man
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.