Можно ли определить, когда был создан раздел NTFS?

16

У нас есть клиент, для которого было бы очень полезно определить, КОГДА диск был инициализирован или создан раздел NTFS. Есть ли где-нибудь значение метки времени? Если бы кто-нибудь мог пролить любой совет, он был бы очень признателен.

Благодарность!

-slashp

slashp
источник
Просто идея, но не могли бы вы изменить вычисление объема UUID, чтобы получить дату / время? (Я не знаю, как генерируется UUID, поэтому потребуется некоторое исследование, чтобы выяснить это, и это может оказаться невозможным вообще.)
Крис Нава,
1
@ChrisNava: уникальный идентификатор, используемый в NTFS, - это не 128-битный UUID, а случайное 64-битное число. (Кроме того, современные системы также не генерируют UUID на основе времени типа 1; случайные UUID типа 4 предпочтительнее для конфиденциальности. Однако, если бы это был UUID типа 1, не было бы никаких вычислений для обратного; временная метка хранится на виду.)
user1686

Ответы:

17

Да. Вы даже можете сделать это по локальной сети.

Транзакция CIFS - TRANS2_QFSINFOэто уровень информации SMB_QUERY_FS_VOLUME_INFO. Родная функция API Windows NT для запроса времени создания тома ZwQueryVolumeInformationFile(), которая выдает FILE_FS_VOLUME_INFORMATIONструктуру данных (почти идентичную CIFS, заметьте), когда запрашивается FileFsVolumeInformationкласс информации. Проверка того, что этот запрос работает, является частью тестера IFS, который Microsoft предоставляет разработчикам драйверов.

Интересно, что никто, кажется, не написал удобную утилиту, которая просто запрашивает том и печатает его метку времени создания в удобочитаемой форме. 1 Насколько я могу судить, procmonсамое близкое, что вы можете получить, - запустить инструмент SysInternals и найти потоковые информационные запросы. Возможно, кто-то, читающий это, будет вдохновлен на создание расширенной volкоманды.

Да, метка времени создания тома будет инициализирован, и не просто установить на ноль или какой - либо другой постоянной. Я не проверял, но мое обоснованное предположение о месте хранения этой информации является $STANDARD_INFORMATIONатрибутом $Volumeзаписи MFT. Я могу подумать о трех других возможных местах, но это самое логичное.


1grawity утилит «s просто нужно немного больше для ногтей, в том числе простых применений FileTimeToSystemTime()и GetTimeFormat(), чтобы сделать его пригодным для конечных пользователей , которые не могут декодировать Win32 проставлены в их головах. ☺

JdeBP
источник
Вау, я даю тебе +1 за этот ответ, потому что это было именно то, что я искал. К сожалению, я не программист Win32 API со знанием внутренних систем и искал быстрое решение. Хорошая мысль с procmon. Спасибо хоть!!!
slashp
7
Что - то вроде этого ? (предупреждение об
ужасном
8

Я не знаю «даты создания тома», встроенной в NTFS. Однако вы должны быть в состоянии приблизиться к дате создания довольно близко, посмотрев на дату создания System Volume Informationкаталога в корне тома.

Эндрю Ламберт
источник
2
Это дает мне очень хорошее приближение. Спасибо за ваш быстрый ответ! Теперь я знаю, кто виноват в том, что диск не включен в наши резервные копии :).
slashp
0

Это где-то выставлено. Если вы загрузите компакт-диск с Windows XP и получите доступ к консоли восстановления, версия chkdsk там распечатает дату создания тома после его завершения.

Аарон
источник