Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.16;
Скачать: CL | DM;

Вниз

Первый шаг к намеченной цели :)   Найти похожие ветки 

 
Riply ©   (2007-07-31 23:46) [0]

Здравствуйте !
Написала маленький модуль, для теста корректности работы с MFT.
В него добавила, только функции чтения.
Оставлено: поиск файлов, скрытых от WinAPI и чтение(копирование) любого файла.
Процесс "заставления" его работать был мучителен :)
Все время открывались новые условия, требующие изменения алгоритмов.
Сейчас (у себя) я ищу, читаю и копирую без ошибок. Но есть уверенность в том,
что не в столь тепличных условиях (на доступных мне компьютерах),
все окажется не так сладко. Найдутся ли желающие его потестировать ?
Если да, то куда его выложить ?
Не под XP работать не должен.
Только в одном месте нашла шаткое описание правильной трактовки версии NTFS.
Там утверждается, что если XP, то версия NTFS - 3.1.
P.S.
Даже не могла себе представить, насколь сложно писать, то что,
кроме тебя, еще кто-то может использовать.
Знала бы - не уверена, что взялась бы :)


 
Rouse_ ©   (2007-07-31 23:48) [1]

rouse(псина)grandsmeta.ru
только в виде исходника есесно шли :)
Смогу проверить на целой череде систем, но завтра...


 
Riply ©   (2007-07-31 23:55) [2]

Исходник выслать не могу, т.к. он в стадии разработки.
Состоит только из заплаток и тестовых функции.
Ему до состояния "абсолютно сырого" еще как до луны :).
Если я покажу кому-нибудь такое, то тут же умру от стыда. :)


 
Rouse_ ©   (2007-07-31 23:58) [3]

Ну а экзешник, работающий напрямую с NTFS я без анализа его исходника на боевой машине запускать не буду :) Нехватало мне еще восстанавливать винт в случае случайной ошибки :)


 
Riply ©   (2007-08-01 00:04) [4]

> [3] Rouse_ ©   (31.07.07 23:58)
К сожалению, все абсолютно верно:(
Я и не расчитывала, что все сразу бросятся тестировать с восторженными криками :)
Я и у себя, сначала погоняю функцию на стареньком компьютере,
и только потом, дрожа как осиновый лист, проверяю на рабочем :)


 
TUser ©   (2007-08-01 00:22) [5]

Я бы и после анализа исходного кода не стал запускать. Так как никакой анализ не гарантирует отсутствие случайной ошибки или прекрасно отлаженного безглючного, но злонамеренного кода.


 
ANTPro ©   (2007-08-01 00:23) [6]

> [4] Riply ©   (01.08.07 00:04)

В VMWare многое творить, без последствий и не дрожа :)


 
Riply ©   (2007-08-01 14:53) [7]

"Да... Именно так и обстоят дела, Нарби" (с)
Так много вопросов на форуме о том, как защитить свою программу.
Защитить - это сущая ерунда, по сравнению с тем, как уговоритиь кто-то
использовать вашу программу и не брать с вас за это денег :)


 
Alien1769 ©   (2007-08-01 16:18) [8]

Alien1769[собик]ukr.net

Положи на мой, у меня есть один комп /скоро пойдет на списание/, вот на  нем и проверим.


 
umbra ©   (2007-08-01 16:21) [9]

и мне, пожалуйста, вышли
crow@pfu.ic.kharkov.ua


 
Riply ©   (2007-08-01 17:03) [10]

> [8] Alien1769 ©   (01.08.07 16:18)
> [9] umbra ©   (01.08.07 16:21)
Спасибо.
Сейчас подготовлю "инструкцию по применению" и вышлю.


 
tesseract ©   (2007-08-01 17:07) [11]


> Там утверждается, что если XP, то версия NTFS - 3.1.


5.0 Вроде в XP. 3.1  Вроде был Nt 3.51. У Windows 2003 сервер изменённый формат, его программы плохо воспринимают на запись. Norton Ghost например не рабочим раздел сделал....... А ChkDsk ошибок не находит.


 
umbra ©   (2007-08-01 17:08) [12]

tesseract ©   (01.08.07 17:07) [11]

есть на чем прогу тестировать :)


 
Alarm ©   (2007-08-01 17:32) [13]

Странно, Riplay проснулОсь. И почему-то без исходников:)
А мне показалось, что онО сменит свой ник:)


 
tesseract ©   (2007-08-01 17:33) [14]


> Сейчас подготовлю "инструкцию по применению" и вышлю.


Кинь на rapid-у я на tobject выложу - нехай качают :-)


 
Riply ©   (2007-08-01 17:47) [15]

Проверяйте почту.

> [14] tesseract ©   (01.08.07 17:33)
> Кинь на rapid-у я на tobject выложу - нехай качают :-)
А это куда ? :)


 
tesseract ©   (2007-08-01 17:49) [16]


> А это куда ? :)


rapidshare.de
ifolder.ru
zalil.ru и тд. и кидаешь ссулку и не мучаешься с почтой.


 
isasa ©   (2007-08-01 18:29) [17]

NT4 - NTFS 4
2000 - NTFS 5
XP - NTFS - 5.1


 
ya00011   (2007-08-01 18:33) [18]


> isasa ©   (01.08.07 18:29) [17]

это версии виндов


 
isasa ©   (2007-08-01 18:33) [19]

http://www.ixbt.com/storage/ntfs.html


 
isasa ©   (2007-08-01 18:35) [20]

Таки виноват, погорячился. Смешал версии ОС и ФС

Различают несколько версий NTFS: v1.2 используется в Windows NT 3.51 и Windows NT 4.0, v3.0 поставляется с Windows 2000, v3.1 — с Windows XP и Windows Server 2003. Иногда последние версии обозначают как v4.0, v5.0 и v5.1 в соответствии с версиями Windows, с которыми они поставляются.

http://ru.wikipedia.org/wiki/NTFS


 
Riply ©   (2007-08-01 18:36) [21]

> [17] isasa ©   (01.08.07 18:29)
>NT4 - NTFS 4
>2000 - NTFS 5
>XP - NTFS - 5.1
Странно. Если использовать способ "Линуксоидов" для проверки версии NTFS,
то у меня под XP выдает 3.1

P.S.
Чего-то тестировщики замолчали.
Надеюсь не у обоих сразу NTFS полетела :)


 
isasa ©   (2007-08-01 18:37) [22]

А я тоже опять погорячился :)

Различают несколько версий NTFS: v1.2 используется в Windows NT 3.51 и Windows NT 4.0, v3.0 поставляется с Windows 2000, v3.1 — с Windows XP и Windows Server 2003. Иногда последние версии обозначают как v4.0, v5.0 и v5.1 в соответствии с версиями Windows, с которыми они поставляются.


 
isasa ©   (2007-08-01 18:39) [23]

v1.2 == v4.0
v3.0  == v5.0
v3.1 == v5.1


 
Kostafey ©   (2007-08-01 18:49) [24]

Если утилитка еще не размещена в инете скиньте еще мне на почту.

В субботу-воскресенье на 2 стааааа-а-а-а-реньких PC винты форматировать буду,
а перед этим можно будет и погонять.


 
Alien1769 ©   (2007-08-01 18:55) [25]

Результат:

17:51:43.640 = 2832 = Start: MFT_Scan on 2007.08.01 17.51.43.640
17:51:44.000 = 2832 = Software\Alex Programs\MFT_Scan\SetList =
Не удается найти указанный файл (2)
17:52:30.218 = 2832 = >ЉК
Неверный адрес управляющего блока памяти (9)
17:52:30.234 = 2832 = I±¤"
Неверный адрес управляющего блока памяти (9)
17:52:30.234 = 2832 = ;ЭIЁ
Неверный адрес управляющего блока памяти (9)
17:52:30.250 = 2832 = йBР+
Неверный адрес управляющего блока памяти (9)

Откуда взялся Alex Programs ?


 
Alarm ©   (2007-08-01 19:01) [26]

>Riplay
Извинений, как я понял, не последует:(
А зря, иногда (а точнее всегда) следует признавать свои ошибки (да и не в ошибках дело). А все эти ВашЕ инсенуации про троянов, которые "в нитях и потоках", простите просто смешны. Научитесь читать исходные коды.
Хотя признаюсь, замашки у Вас (здесь, к сожалению род указать не могу) "серъезные".
Успехов Вам в облагодетельствовании нас глупых программеров:(


 
Riply ©   (2007-08-01 19:28) [27]

> [25] Alien1769 ©   (01.08.07 18:55)
> Software\Alex Programs\MFT_Scan\SetList
Это ключ реестра, где храняться настойки программы

>17:52:30.234 = 2832 = I±¤"
>Неверный адрес управляющего блока памяти (9)

При считывании блоков идет конроль их "валидности"
Подобные записи создаются в логе, когда мы получаем неверную ссылку.
Можешь выслать мне ErrorLog файл ?
P.S.  
Она вообще работает ? Что-нибудь видит ?


 
Riply ©   (2007-08-01 19:31) [28]

>[24] Kostafey ©   (01.08.07 18:49)
Я сначала выясню, что пошло "не так" у Alien1769 - а,
попробую исправить, а потом вышлю. OK ?


 
Alien1769 ©   (2007-08-01 19:47) [29]


> Можешь выслать мне ErrorLog файл ?

Нет проблем, лови.


 
Riply ©   (2007-08-01 20:13) [30]

> [29] Alien1769 ©   (01.08.07 19:47)
Там еще расширенные возможности:
В дереве слева - правый клик по директории в корне которой выдается ошибка.
( Она, надеюсь, сумела построить дерево ? Или до этого даже не дошло ?)
В меню выбрать пункт Informatin или Report.
Должна вывестись информация о структуре.
(Informatin - только вывод, Report - вывод и копирование дампа в файл TestFile.slf)


 
Alien1769 ©   (2007-08-01 20:35) [31]

повторно, ушло


 
Riply ©   (2007-08-02 11:55) [32]

>[31] Alien1769 ©   (01.08.07 20:35)
>повторно, ушло

Изучила дамп.
Что можно сказать на настоящий момент ?
Визуально, все адреса и смещения в пределах нормы.
Пройтись по этим адресам у себя я, по понятным причинам, не могу. :)
Единственное, что можно предположить:
ошибка идет на вспомогательной записи очень большой директории(в ее корне много объектов).
У нее интересные св-ва:
DataSize либо равен нулю, либо, больше AllocatedSize"а.(обычно это бывает при компрессии)
Видимо смещения надо расчитывать отталкиваясь не от ее USN, а от USN базовой записи.
Проверю это у себя.
И еще переделаю создание рапорта: сейчас он дает слишком мало информации для анализа.
В общем, есть над чем подумать. :)
Спасибо за помощь.


 
Alien1769 ©   (2007-08-02 12:04) [33]

Добавлю все разделы на винте были сжатые /малый размер/


 
Riply ©   (2007-08-02 12:15) [34]

> [33] Alien1769 ©   (02.08.07 12:04)
>Добавлю все разделы на винте были сжатые /малый размер/

Вот черт ! Забыла предупредить, что с компрессированными данными не работаю :)
Там надо чуть изменить технологию.
Суть проблемы работы с ними в том, что одна часть файла может быть сжата, а другая нет :)
Такая вот хитрая компрессия у NTFS :)


 
tesseract ©   (2007-08-02 12:22) [35]


> Такая вот хитрая компрессия у NTFS :)


У NSS ещё круче. И скорее всего динамически диски и разделы тоже не поддерживаються?


 
Riply ©   (2007-08-02 12:27) [36]

> [35] tesseract ©   (02.08.07 12:22)
> У NSS ещё круче. И скорее всего динамически диски и разделы тоже не поддерживаються?
Ну ребята, вы даете ! :)
Это же только первый блин, который комом :)
Дай бог научиться работать с обычными дисками и данными.
А вообще-то не пробовала. С помощью какой программы их лучше создавать ?


 
Vendict ©   (2007-08-02 13:33) [37]

Riply ©   (31.07.07 23:46)

могу потестить на 3х виртуалках (2к, 2к3, XP), мыло в анкете.


 
Riply ©   (2007-08-03 00:53) [38]

>[24] Kostafey ©   (01.08.07 18:49)
>[37] Vendict ©   (02.08.07 13:33)
Отправила.
Только, ребят, читайте инстукцию, ладно ? :)


 
Vendict ©   (2007-08-03 01:01) [39]

Riply ©   (03.08.07 0:53) [38]

получил, потестю с утра. )
а что так много ? ехе-шник на 0,9 метра ?!


 
Riply ©   (2007-08-03 01:09) [40]

> [39] Vendict ©   (03.08.07 01:01)
>а что так много ? ехе-шник на 0,9 метра ?!
Ну как же обойтись без моих любимых картинок ? :)
P.S. На 2к и 2к3, я думаю, можно и не пробовать.
Еще нет ни одного положительного отзыва даже о работе под XP :(


 
Vendict ©   (2007-08-03 01:29) [41]

Riply ©   (03.08.07 1:09) [40]
P.S. На 2к и 2к3, я думаю, можно и не пробовать.

всё равно виртуалки, сделаю snapshot.
всё-таки по GPRS тащить полметра ...

и такой вопрос. кто проставляет версию ntfs ?
т.е. допустим на машине стоит две операционки (2к и 2к3). какая версия ntfs будет стоять у разделов ? и как 2к будет работать с ntfs от 2к3 ?
т.е. это наверное хорошие большие садовые грабли )


 
Riply ©   (2007-08-03 01:36) [42]

> [41] Vendict ©   (03.08.07 01:29)
>и такой вопрос. кто проставляет версию ntfs ?
>т.е. допустим на машине стоит две операционки (2к и 2к3).
>какая версия ntfs будет стоять у разделов ? и как 2к будет работать с ntfs от 2к3 ?
Мне кажется, что версия той из под которой шло форматирование. Но скорее всего это не факт.
Черт его знает.
>т.е. это наверное хорошие большие садовые грабли )
Ну разве можно так пугать людей, да еще и на ночь глядя ? :)


 
Vendict ©   (2007-08-03 13:02) [43]

Riply ©   (03.08.07 1:36) [42]
Ну разве можно так пугать людей, да еще и на ночь глядя ? :)


извини, тёзка, не хотелось пугать...
просто попробывал открыть глаза на реальность )


 
tesseract ©   (2007-08-03 13:56) [44]


> т.е. это наверное хорошие большие садовые грабли )


Угу. У меня например Ghost "слегка" поменял версию NTFS - теперь появилась неудаляемая папочка.........


 
Vendict ©   (2007-08-03 15:02) [45]

отчёт.

1. win2k3
-все без ошибок, кроме DirectCopy
-система чистая

2. хрюша
-тут иначе. всё вроде работает, но есть и красное и розовое
-может SoftIce чем помог ?!

3. win2k
-ничего не показывает
-ничего ВООБЩЕ


 
Vendict ©   (2007-08-03 15:05) [46]

и почему он режет ссылки ?!?!?

_http://ideya.xost.ru/1/

прибавляем к адресу:
win2k:
2k1.png
2k2.png

win2k3:
2k31.png
2k32.png

xp:
xp1.png
xp2.png
xp3.png
xp4.png


 
Riply ©   (2007-08-03 19:46) [47]

>[45] Vendict ©   (03.08.07 15:02)
>отчёт.
>1. win2k3
>-все без ошибок, кроме DirectCopy
>-система чистая
Странно. Вот этого я и не ожидала :)

>2. хрюша
>-тут иначе. всё вроде работает, но есть и красное и розовое
Есть хоть что-то такого цвета - это значит, что и остальным данным нельзя доверять
>-может SoftIce чем помог ?!
Врядли SoftIce. Как он может помешать высчитывать смещения. Это я напортачила.
Можешь выслать мне дамп какой-нибудь директории с ошибкой ?
(меню Report и TestFile)
Хотя ссылка www.ideya.xost.ru/1/xp2.png оказалась очень удачной. (розовая строчка :)
Вроде, начинаю догадываться в где собака зарыта. :)

Спасибо за помощь !


 
Vendict ©   (2007-08-03 21:29) [48]

так дамп нужен или картинки хватит ?


 
Vendict ©   (2007-08-03 21:51) [49]

кстати, линукс по поводу разделов пишет что везде ntfs 3.1, хотя некоторые разделы и форматировались из 2к3. может быть ntfs для хр и 2к3 одна и та же ?!

а SoftIce может просто создать свои потоки/файлы, из-за чего наверное и возникают две верхние красные строчки в каждой папке.


 
Kostafey ©   (2007-08-05 01:06) [50]

Гм. у меня ничего не вышло...

Дерево каталогов просто не построилось.
Ждал 3 часа. (PC: Celeron 1700, RAM забыл...~128 HDD 80Гб(забит доверху) OC Win 2k)

На втором PC программа просто отказалась запускаться,
мол могу запускаться только из под учетной записи администратора.
Ладно, запустился под админом - говорит то же самое.
(PC Pentium 100 RAM 32Мб HDD 1,6Гб ОС Win 98)


 
Kostafey ©   (2007-08-05 01:16) [51]

> На втором PC программа просто отказалась запускаться,

Хотя, вообще говоря эта опрационка стоит на PC ~10 лет,
без чисток, переустановок и прочей профилактики и
на некоторые элементарные действия (такие как запуск файлов на выполнение)
реагирует уже просто не адекватно :)

P.S. А переустановить ее мне и не удалость.
Современные ОС отказываются вставать не старое железо, а
ни вменяемой Win98 ни загрузчной дискеты у меня не оказалось :)

P.P.S. Но самое смешное, что этой машиной по-прежнему
активно пользуются, ломая глаза, пальцы и нервы.


 
Kostafey ©   (2007-08-05 01:16) [52]

> На втором PC программа просто отказалась запускаться,

Хотя, вообще говоря эта опрационка стоит на PC ~10 лет,
без чисток, переустановок и прочей профилактики и
на некоторые элементарные действия (такие как запуск файлов на выполнение)
реагирует уже просто не адекватно :)

P.S. А переустановить ее мне и не удалость.
Современные ОС отказываются вставать не старое железо, а
ни вменяемой Win98 ни загрузчной дискеты у меня не оказалось :)

P.P.S. Но самое смешное, что этой машиной по-прежнему
активно пользуются, ломая глаза, пальцы и нервы.


 
Vendict ©   (2007-08-05 11:44) [53]

Kostafey ©   (05.08.07 1:06) [50]
было же написано, не ниже ХР. )
у меня самого на 2к ничего не показало.


 
Alarm ©   (2007-08-05 13:08) [54]

Странно, что это все вдруг замолкли:(
Подбодрите этого Riplaя:)


 
Kostafey ©   (2007-08-05 13:32) [55]

> было же написано, не ниже ХР. )

Работоспособной XP не было.

А как установил все уж не до того стало.


> [54] Alarm ©   (05.08.07 13:08)

стараемся не мешать


 
Virgo_Style ©   (2007-08-05 13:54) [56]

Alarm ©   (05.08.07 13:08) [54]

если ты думаешь, что похож на д"Артаньяна, то ты ошибаешься


 
Riply ©   (2007-08-05 17:16) [57]

Благодаря помощи Vendict-а и  Alien1769-а, можно сделать предположение,
что ошибка идет при работе с записью объекта типа "директория",
содержащей AttributeList.
Сложность в том, что у себя ни на одном из компьютеров
(рабочий и антикварный. XP на них ставилось с одного дистрибутива)
мне воспроизвести эту ошибку не удается. (создавала самые разные директории).
Остается одно - учить мат. часть, смотреть какие условия проверяют "линуксоиды"
и пытаться понять в каких случаях и почему она(ошибка) может возникать.
Чем сейчас и занимаюсь :)
Если удасться найти естественное (а не притянутое за уши) объяснение,
то попрошу потестить еще раз :)


 
Riply ©   (2007-08-06 15:56) [58]

>[57] Riply ©   (05.08.07 17:16)
> Остается одно - учить мат. часть

А кто сказал, что область IndexAllocation состоит,
как и MFT, из записей фиксированной длины ?
Неа, в общем случае, это не так :)
Там (в IndexAllocation) размер записи резиновый.
Вот где собака рылась :)


 
SMew   (2007-08-06 18:01) [59]


> Riply


Вот не знал что женщины так шарят в компьютерах и программировании!
Молодец! :)


 
vpbar ©   (2007-08-06 20:23) [60]

> Riply
Я желаю протестировать. Где эту Вашу замечательную утилитку можно взять.
И еще. Насколько она щас сырая?
У меня просто проблемка есть. На сервере в ntfs разделе есть папка которая никак не удаляется. И вроде не занята ни кем и пустая (файлы из нее удалились). Она конечно не мешает, но некрасиво както. Поможет ли Ваша утилита, или пока не стоит рисковать?
А потестить давайте - потестю с удовольствием. VirtualBox все стерпит :)

ЗЫ
Я как понял Вы исходники еще стесняетесь показывать, или они уже коммерческая тайна :)


 
Riply ©   (2007-08-08 03:14) [61]

Уфф !
Вроде, исправила первую череду ошибок.
У себя гоняла и так и сяк. Внешне все работает.
(даже Zip Disk без ошибок читать научилась :)
Есть желающие помочь в тестировании ?
На всякий случай, повторю требования: XP (у Vendict-а работало на win2k3).

[60] vpbar © (06.08.07 20:23)
>И еще. Насколько она щас сырая?
"Совершенно, т.е. абсолютно." (с) :)

>На сервере в ntfs разделе есть папка которая никак не удаляется.
На данном этапе все, что связано с записью, убрано, ибо черевато :)
Еще читать-то не научилась - какая может быть запись ?

>Я как понял Вы исходники еще стесняетесь показывать, или они уже коммерческая тайна :)
Сейчас нечего показывать. Исходники неработающей программы ?
Так таких шедевров в интернете и без моего пруд-пруди. Выбирайте любой :)
Если, вдруг случится чудо, и все будет работать как надо,
то исходники будут выложены на delphimaster.ru.
Я к ним даже коментарии напишу. Наверное, небольшая статейка получится :)
Но сто-процентно, я это не обещаю. Очень бы хотелось, чтобы их (исходники)
перед этим посмотрел кто-то (кому я доверяю :) и вынес свой вердикт.
Вот на основании этого вердикта и буду принимать решение :)


 
lookin ©   (2007-08-08 03:17) [62]

Интересно, относится ли искомое к разряду прикладных программ или нет?


 
Riply ©   (2007-08-08 03:23) [63]

>[62] lookin ©   (08.08.07 03:17)
А что такое "прикладная программа" и чем она отличается от других ?
Другие "не прикладываются" ? :)


 
lookin ©   (2007-08-08 03:42) [64]

> [63] Riply ©   (08.08.07 03:23)

Ну, вы написали (запрограммировали) алгоритм расчета плотности тела из произвольного вещества в зависимости от его температуры. Это не прикладная программа. Но если использовать этот алгоритм во вполне практической программе расчета плотности воды, то сама программа будет прикладной. Так вроде...


 
Vendict ©   (2007-08-08 11:29) [65]

Riply ©   (08.08.07 3:14) [61]
Есть желающие помочь в тестировании ?


попытайся уменьшить размер(может 7z поможет...) и на тот же ящик.


 
Riply ©   (2007-08-08 17:12) [66]

>[65] Vendict ©   (08.08.07 11:29)
Отправила.


 
Vendict ©   (2007-08-09 12:04) [67]

отчёт №2
под виртуалками(хр, 2к3) всё нормально. //2к - как и раньше, только внизу красная строчка - "Неверная функция"

но вот под реальным серваком (2к3) какие-то странные вещи творятся...
//проверил старую реализацию программы - то же самое. может как раз те самые грабли:
Vendict ©   (03.08.07 1:29) [41]
т.е. допустим на машине стоит две операционки (2к и 2к3). какая версия ntfs будет стоять у разделов ? и как 2к будет работать с ntfs от 2к3 ?
т.е. это наверное хорошие большие садовые грабли )


хотя один раздел принял нормально...
диск дома разбивался Acronis OS Selector"ом (у него встроеный Disk Editor есть.)

открывает диски только по двойному щелчку (? раньше с одного открывал, под виртуалками тоже по одному ?) и пишет около каждого каталога - "Неверный адрес управляющего блока памяти". и при запуске творятся странные вещи (2k3_3.png)

скрины по тому же адресу.
2k31.png - виртуальный
xp1.png - виртуальный
2k3_1.png
2k3_2.png
2k3_3.png
2k3_4.png -реальный


 
Vendict ©   (2007-08-09 12:07) [68]

Vendict ©   (09.08.07 12:04) [67]
Acronis OS Selector"ом


вот тут и собака зарыта !..
те разделы, которые он(MFT_Scan) не понял были этим Acronis"ом "подвинуты"/"размеры изменены". вот теперь винда их понимает отлично, а твоя программа вообще никак.

там на скринах от сервака два листочка - это ext3.


 
Riply ©   (2007-08-09 13:39) [69]

>[67] Vendict © (09.08.07 12:04)
>отчёт №2
>под виртуалками(хр, 2к3) всё нормально.
Первая приятная новость :)

//2к - как и раньше, только внизу красная строчка - "Неверная функция"
2к, пока, оставим в сторонке
Там надо изменить методику определения дисков и "партишинов". Руки дойдут - сделаю.

>вот тут и собака зарыта !..
>те разделы, которые он(MFT_Scan) не понял были этим Acronis"ом "подвинуты"/"размеры изменены".
Значит, на данном этапе задача научится понимать "подвинутые" диски :)
А вот здесь придется повозиться. :(
Дело в том, что попробовала их "подвигать" PartitionMagic - ом (8.0).
После него все нормально читается.
Значит надо смотреть, что там творит Acronis.
Какая у тебя версия ? По Dial-up реально скачать ?

P.S.
Спасибо большое за помощь :)


 
ZMRaven ©   (2007-08-09 14:06) [70]

скинь и мне прогу ? :)
попробую "убить" старый винтик zmraven@inbox.ru


 
Vendict ©   (2007-08-09 15:27) [71]

Riply ©   (09.08.07 13:39) [69]
Значит, на данном этапе задача научится понимать "подвинутые" диски :)


только стоит это того ? просто наверняка это почти уникальная проблема. мало кто "двигает" разделы чем-либо кроме PM-ка.
а прога - Acronis OS Selector v8.0.909 у меня дистриб около 9,5 метров.

и насколько я помню, если пытаться сделать дефрагментацию какой-либо сторонней прогой, то она показывает расположение MFT. так вот это расположение не меняется, если мы "двигаем" диск "назад". а как меняется, если двигаем вперёд ... не знаю...


 
Riply ©   (2007-08-10 03:09) [72]

>[71] Vendict ©   (09.08.07 15:27)
>только стоит это того ? просто наверняка это почти уникальная проблема.
>мало кто "двигает" разделы чем-либо кроме PM-ка.
К сожалению не только "стоит того", а просто необходимо :(
Мы узнали, что после "подвижки диска" Acronis-ом, появляются ошибки.
Где взять гарантию, что и после работы какой-то другой программы мы не напоремся на что-то подобное ?
Нее-а, игнорировать этот факт никак низззя :)
К тому же такое везение: точно известно, чьи действия приводят нас к этому.
Грех не попробовать разобраться :)  

>а прога - Acronis OS Selector v8.0.909 у меня дистриб около 9,5 метров.
Наверное, придется скачивать. Ошибку то надо воспроизвести.

>[70] ZMRaven ©   (09.08.07 14:06)
>скинь и мне прогу ? :)
>попробую "убить" старый винтик zmraven@inbox.ru
Хорошо. Только, сначала, я постараюсь исправить уже найденные баги,
а потом, с новыми силами будем "убивать старый винтик" :) OK ?


 
Vendict ©   (2007-08-10 15:18) [73]

Riply ©   (10.08.07 3:09) [72]
точно известно, чьи действия приводят нас к этому.


ну это около 85%, что я только им двигал разделы. не помню, может ещё PM 8й помог ...


 
Riply ©   (2007-08-11 06:25) [74]

>[73] Vendict ©   (10.08.07 15:18)
>ну это около 85%, что я только им двигал разделы. не помню, может ещё PM 8й помог ...

Ох и зря я хвалила PM v. 8.0  :)
После него появляются ошибки.
Сначала уменьшила раздел, потом вернулась к прежнему размеру и получила :)
Пытаюсь разобраться в картине, после его работы, возникающей.
Что-то очень странное. Я бы сказала, что он "подпорчивает" MFT,
если бы не одно "но": Windows не ругается.
Надо убедится в результатах, а уж потом я скажу все, что о нем(MP) думаю :)


 
Anatoly Podgoretsky ©   (2007-08-11 14:20) [75]

> Riply  (11.08.2007 06:25:14)  [74]

> Я бы сказала, что он "подпорчивает" MFT,
> если бы не одно "но": Windows не ругается.

А ребята не знают, тебе еще везет, а то и без данных останешься после ПМ


 
Riply ©   (2007-08-11 16:31) [76]

> [75] Anatoly Podgoretsky ©   (11.08.07 14:20)
>А ребята не знают, тебе еще везет, а то и без данных останешься после ПМ
"Как прикажешь тебя понимать, Саид ?" (с)
Anatoly, Вы хотите сказать, что он (МП) действительно "подпорчивает MFT" ?


 
Anatoly Podgoretsky ©   (2007-08-11 16:46) [77]

> Riply  (11.08.2007 16:31:16)  [76]

Я не этого говорю, а то что ПМ часто портит разделы, а что именно не знаю, может и MFT
Даже если внешне не испортит, то после ПМ часто возникают проблемы в работе системных программ.
Это довольно глюкавый инструмент, как и все из этой оперы, но это более глюкавый, хотя иногда альтернативы подобным инструментам нет.


 
Riply ©   (2007-08-11 16:58) [78]

>[77] Anatoly Podgoretsky ©   (11.08.07 16:46)
>Это довольно глюкавый инструмент
Вот он оказывается какой. А я уже почти разобралась с чтением, после его работы.
"Осталось доказать только одну маленькую леммочку" :) (с) "Математик и черт"


 
Anatoly Podgoretsky ©   (2007-08-11 17:04) [79]

> Riply  (11.08.2007 16:58:18)  [78]

Так сложная же задача, поэтому возможны и ошибки, при том катастрофические.
Я много смотрел разных диск менеджеров во всех те или иные ошибки, но катастрофические наблюдал только у ПМ, возможно с другими везло.


 
Anatoly Podgoretsky ©   (2007-08-11 17:05) [80]


> А я уже почти разобралась с чтением, после его работы.

Возможно определишь что именно портит для случая MFT


 
Riply ©   (2007-08-12 04:09) [81]

>[80] Anatoly Podgoretsky ©   (11.08.07 17:05)
>Возможно определишь что именно портит для случая MFT

Специально, я не изучала изменения в MFT после работы ПМ,
но вот, что сразу бросилось в глаза:
При его помощи, я сначала уменьшила диск, потом вернула прежний размер.
Обзовем это "передвижкой", а "читаемой" записью, ту которая
прошла первый тест на валидность - имеет MagicType любой из известных.
У MFT есть такой "параметр" - ValidDataLength.
Он живой: дышит и зависит от множества факторов. :)
Можно сделать дамп MFT размера ValidDataLength и
попробовать прочитать его по-записно. До "поджвижки" я не находила
"нечитаемых" записей, даже 10-14 читаемы.
Исключение состовляли некоторые номерами ~ 16-23 и только на дисках
где размер записи превышал размер кластера. (И такие бывают :)
После "подвижки" я получила кучу нечитаемых записей в конце ValidDataLength,
идущих подряд. Но это ерунда.
Кому придет в голову проверять все записи на читаемость. :)
Хуже другое. Когда Windows создает новые файлы/директории, она записывает
их в эти нечитаемые записи(пока они не кончатся).
Во всяком случае, мы получаем новые ссылки именно туда.
Так вот: прямыми средствами (ReadFile) их корректно считать не удается(читаем мусор).
IoControlDevice это как-то делает, но как, я (пока) не разобралась.
Такие вот наблюдения...
Выводы почему и отчего так получается "оставлю заинтересованным лицам" (с) DelphiMaster :)


 
Riply ©   (2007-08-14 06:07) [82]

>[70] ZMRaven ©   (09.08.07 14:06)
>[73] Vendict ©   (10.08.07 15:18)

Отправила.
Надеюсь, что сумела добавить новых ошибок меньше, чем исправила найденых :)

P.S.
С красненькими строчками, лучше не возвращайтесь :)


 
{RASkov} ©   (2007-08-14 09:18) [83]

> [82] Riply ©   (14.08.07 06:07)

Я тут все порываю себя переустановить себе систему.... но все как-то руки не доходят. Может твоя утилита поможет мне.... Шутка.
Все ждал когда же выложишь на всеобщий тест..... кинь и мне что-ли хочется посмотреть, что за "зверя" делаешь :)
Если решишь бросить, то в адресе скобок не нужно.... адрес в этом посте в нике.


 
Riply ©   (2007-08-14 13:56) [84]

>[83] {RASkov} ©   (14.08.07 09:18)
Ну ради такого важного дела, как переустановка системы - выслала. :)

>Все ждал когда же выложишь на всеобщий тест
Если бы ты знал как я радовалась, что не сделала этого (не выложила на всеобщий тест),
когда мне возвращали отчеты с ошибками :)


 
Vendict ©   (2007-08-14 14:34) [85]

Riply ©   (14.08.07 6:07) [82]
С красненькими строчками, лучше не возвращайтесь :)


а с розовыми что делать ?

правда есть ещё красная. "Устройство не готово". правда по щелчку всё открыла.

на виртуалках я думаю смысла тестить нет. на серваке: в одной папке всё розовое. папка Program Files от той операционки, что 2к (в данный момент загружен сервак, как уже говорил, на компе 2к и 2к3 стоит). в остальных папках всё нормально.
зато теперь в серваке DirectCopy работает )

PS. и договаривались на 7z... хотя 30к не выйгрышь ...


 
Vendict ©   (2007-08-14 14:39) [86]

ах да, забыл.
по тому же адресу всего один файлик 1.png
и ещё. тот раздел неоднократно поднимался Acronis True Imag"ом.
может это ему надо спасибо за розовое говорить.


 
Riply ©   (2007-08-14 14:51) [87]

> [85] Vendict ©   (14.08.07 14:34)
>а с розовыми что делать ?
Это мне разбираться, почему я один и тот-же объект получаю дважды :)
Хотя, вроде, отсеиваю записи, которые не являются "основными".
Можешь выложить SnapShort розовых ?
>как уже говорил, на компе 2к и 2к3 стоит
Может мне на это стоит обратить внимание ?

>правда есть ещё красная. "Устройство не готово". правда по щелчку всё открыла.
Это она послала запрос и, сразу не получив ответа, заявила, что мол "не готово" :)

>зато теперь в серваке DirectCopy работает
:) Он может скопировать файл, вообще к нему не обращаясь :)

>PS. и договаривались на 7z... хотя 30к не выйгрышь ...
Извини, забыла.


 
Riply ©   (2007-08-14 14:54) [88]

> [86] Vendict ©   (14.08.07 14:39)
>ах да, забыл.
>по тому же адресу всего один файлик 1.png
Запостила и увидела твой ответ. Побежала смотреть.
>и ещё. тот раздел неоднократно поднимался Acronis True Imag"ом.
>может это ему надо спасибо за розовое говорить.
Я тоже опасаюсь, что "работа" Acronis-а отличается от "работы" МП  :)


 
Riply ©   (2007-08-14 15:01) [89]

> [86] Vendict ©   (14.08.07 14:39)
>по тому же адресу всего один файлик 1.png
Что-то у меня не открывает. Говорит страница не найдена :(


 
Vendict ©   (2007-08-14 15:47) [90]

Riply ©   (14.08.07 15:01) [89]
Что-то у меня не открывает. Говорит страница не найдена :(


я просто отвлёкся... старые удалил а новый не скопировал. теперь та страница есть.


 
Vendict ©   (2007-08-14 15:49) [91]

Riply ©   (14.08.07 14:54) [88]
>и ещё. тот раздел неоднократно поднимался Acronis True Imag"ом.
>может это ему надо спасибо за розовое говорить.
Я тоже опасаюсь, что "работа" Acronis-а отличается от "работы" МП  :)


я имел ввиду копирование раздела из back"up-а.


 
Riply ©   (2007-08-14 15:55) [92]

> [90] Vendict ©   (14.08.07 15:47)
>я просто отвлёкся... старые удалил а новый не скопировал. теперь та страница есть.
Увидела.
Что я дважды получаю объект, это я поняла сразу,
но то что дважды считываю одну и ту же запись(все адреса одинаковы),
это (на настоящий момент) выше моего понимания :)


 
Riply ©   (2007-08-14 15:58) [93]

> [91] Vendict ©   (14.08.07 15:49)
>я имел ввиду копирование раздела из back"up-а.
Объясни мне пожалуйста "на пальцах" механизм работы твоего "backup-а".
Где он располагается, как отслеживает изменения и тому подобное ?


 
{RASkov} ©   (2007-08-15 00:49) [94]

> [84] Riply ©   (14.08.07 13:56)
> Ну ради такого важного дела, как переустановка системы -
> выслала. :)

Спасибо :) Побаловался.... система не падает, и так и не увидел красных полосох..... их где искать?
Вообще кроме черного и синих цветов больше никаких не наблюдал....
Данные на "винте" по большей части имеют атрибут "сжатый", но я специально разжимал папку, не большую - не маленькую, и на ней пробывал отдельно....
Один раз, не запомнил правда во время чего, вылезла вот такая штука....
---------------------------
Information
---------------------------
AttributeAttributeList are non resident !!!
---------------------------
ОК  
---------------------------
Я нажал ОК и всё дальше пошло ширстеть... :) Что это было?
И что значит Uninstall  в Абоуте? Т.е. значение этого слова я знаю, прога куда-то чего-то пишет? чтоб унъинсталится... Или можно просто грохнуть папку с прогой и все....?
Scan Displayed всегда дизаблено(недоступно) так же и в Recurse Scan > Scan MFT тоже всегда выключена....


 
Riply ©   (2007-08-15 01:10) [95]

> [94] {RASkov} ©   (15.08.07 00:49)
>Спасибо :) Побаловался.... система не падает, и так и не увидел красных полосох..... их где искать?
Они при ошибках сами "как прыгнут !" :)(с)

>Вообще кроме черного и синих цветов больше никаких не наблюдал....
Так программа должна себя вести в моих сладких девичих грезах :)

>Один раз, не запомнил правда во время чего, вылезла вот такая штука....
>AttributeAttributeList are non resident !!!
>Я нажал ОК и всё дальше пошло ширстеть... :) Что это было?
А вот это очень полезная информация !
Вычитала в одном месте, что AttributeAttributeList - список нерезидентных атрибутов,
который сам всегда резидентен. Но не поверила и оставила "кричалку": "Я не резидентен !" :)
Спасибо !

>И что значит Uninstall  в Абоуте? Т.е. значение этого слова я знаю, прога куда-то чего-то пишет?
>чтоб унъинсталится... Или можно просто грохнуть папку с прогой и все....?
Она хранит настройки в реестре. "Uninstall" просто чистит за собой

>Scan Displayed всегда дизаблено(недоступно) так же и в Recurse Scan >
Эти менюшки предназначены для тестирования "хитрых" цепочек. Просто надо знать как ими пользоваться.
Я их отключаю "на всякий пожарный"

>Scan MFT тоже всегда выключена....
Эту можно было и оставить :)


 
{RASkov} ©   (2007-08-15 01:24) [96]

> [95] Riply ©   (15.08.07 01:10)

$Extend
А вот это что такое? на каждом диске есть....
C:\$Extend
Там конечно расписано все в информации, но я там утоп в цифирках и буквиках :)


 
Riply ©   (2007-08-15 01:38) [97]

> [96] {RASkov} ©   (15.08.07 01:24)
>$Extend
>А вот это что такое? на каждом диске есть....
Это NTFS-овская системная директория, такая же как и другие $ - файлы и директории,
находящиеся в корне диска. Т.е. на них можно не обращать внимания.

>Там конечно расписано все в информации, но я там утоп в цифирках и буквиках :)
Но, надеюсь, основное вынес ? :)
А именно: "данный модуль предназначен только для поиска ошибок и никак не для работы".
Рабочий вариант (несущий пользу людям) сделаем, когда пройдем все испытания :)

Пока идет тестирование, я вывожу все без какого либо фильтра.
Потом буду убирать "лишнее".


 
Riply ©   (2007-08-15 01:44) [98]

>[97] Riply ©   (15.08.07 01:38)
Синим цветом помечены файлы "недоступные" для API.
Кто к ним причисляется написано в "инструкции".


 
{RASkov} ©   (2007-08-15 02:37) [99]

> [98] Riply ©   (15.08.07 01:44)

Вот наверное, как бы важная, информация: Я никогда не пользуюсь всякими ПМ, Акрониксами и иже с ними...
Может поэтому у меня "все гладко" :) Только я не совсем(или совсем не) понял про AttributeAttributeList (
И вот >В WinAPI ListBox <-из хелпа
Это тот который левый, а > MFT ListBox - это который справа?
А в общем по программе - здорово! Молодец!
ЗЫ Главное - закрывается без ошибок ;)


 
{RASkov} ©   (2007-08-15 02:38) [100]

> [99] {RASkov} ©   (15.08.07 02:37)
> > [98] Riply ©   (15.08.07 01:44)

Т.е. это не к [98] посту, а в общем :)


 
Riply ©   (2007-08-15 11:22) [101]

>[91] Vendict © (14.08.07 15:49)
>я имел ввиду копирование раздела из back"up-а.
>[92] Riply © (14.08.07 15:55)
>Что я дважды получаю объект, это я поняла сразу,
>но то что дважды считываю одну и ту же запись(все адреса одинаковы),
Кажется начинаю догадываться в чем может быть дело.
Если у директории создать довольно много отнюдь непустых потоков,
то MFT будет вынуждена создать для нее AttributeAllocationList,
в который может поместить AttributeIndexAllocation и (или) AttributeIndexRoot.
Видимо, причина по которой мы дважды получаем ссылки на один и тот же объект в этом.
Т.е. потенциально имеем три места (еще резидентные атрибуты)
откуда нас могут послать на одну и ту же запись :)
Возможно, что твой backup совсем не скупится на новые потоки в директориях :)
Попробую сэмулировать подобную ситуацию у себя на компьютере.

>[99] {RASkov} © (15.08.07 02:37)
>Вот наверное, как бы важная, информация:
>Я никогда не пользуюсь всякими ПМ, Акрониксами и иже с ними...
>Может поэтому у меня "все гладко" :)
Как бы было здорово, если бы все поступали так же !
Потестил программу у себя и есть уверенность, что она будет работать где угодно :)
Эх. мечты...мечты :)

>ЗЫ Главное - закрывается без ошибок ;)
Над этим скользким моментом была проведена огромная работа :)


 
Riply ©   (2007-08-15 11:25) [102]

> [101] Riply ©   (15.08.07 11:22)
>Если у директории создать довольно много отнюдь непустых потоков,

Имеются ввиду файловые потоки у объекта типа "директория"


 
Vendict ©   (2007-08-15 12:41) [103]

ситуация становится очень интересной.

начну с самого начала.
раздел был сдвинут немного вперёд и уменьшен в размере.
спустя некоторое время форматировался быстрым форматированием (интересно, при быстром форматированиии что становится с MFT?) в ntfs при установке сиситемы. после этого была установлена система и необходимые программы/обновления. после этого благополучно отправлен образ раздела в backup.
я думаю сохранение и восстановление происходит следующим образом:
сохранение: по сути наверняка сохраняется только побайтовый образ информации, хранящийся на разделе.
восстановление: восстанавливается этот побайтовый образ.
т.е. информация о разиении диска на разделы в backup"e врядтли содержится.
//это всё IMHO по поводу сохранения/востановления. сильно не пинайте.

далее. 2й вариант программы(предидущий) на том разделе красным выделяет только те папки(интересно, почему только папки...) которые были добавлены после восстановления (соответственно они появились в папке "Program Files" ). последний вариант программы красным ничего не выделяет, зато вся папка Program Files розовая.


 
Riply ©   (2007-08-15 13:14) [104]

>[103] Vendict ©   (15.08.07 12:41)
>2й вариант программы(предидущий) на том разделе красным выделяет только те папки(интересно, почему только >папки...) которые были добавлены после восстановления (соответственно они появились в папке "Program Files").
Выделяет только папки потому, что смещения на них я получаю из "родителя",
который ни сном ни духом об изменениях :).
А смещения на файлы я уже высчитываю относительно этих "новых папок".
P.S. 2й вариант программы можно выбросить :)

>последний вариант программы красным ничего не выделяет, зато вся папка Program Files розовая.
Это гораздо лучше :)
У нас нет ошибок чтения и адресации.
Просто мы столкнулись с ситуацией, когда из разных мест идут ссылки на один
и тот же объект. Это решаемо (надеюсь).

Ты можешь отправить мне ErrorLog файл (MFT_Scan....) из последней программы ?
Только почисти его и после этого вызови "Informatiоn" для директории Program Files.
Хорошо ?


 
Vendict ©   (2007-08-15 13:23) [105]

Riply ©   (15.08.07 13:14) [104]
Ты можешь отправить мне ErrorLog файл (MFT_Scan....) из последней программы ?
Только почисти его и после этого вызови "Informatiоn" для директории Program Files.
Хорошо ?


если это тот, чтьо появляется в папке _DataDir, то послал уже.


 
Riply ©   (2007-08-15 14:57) [106]

>[105] Vendict ©   (15.08.07 13:23)
>если это тот, чтьо появляется в папке _DataDir, то послал уже.
Получила.
Изучила.
Создала объект с такими же свойствами, как и у тебя.
Сумела воспроизвести твою ошибку.

Вот уж не знала:
Оказывается от того, что твоя программа выдала ошибку, можно получить столько удовольствия ! :)


 
GuAV ©   (2007-08-15 16:02) [107]

Приветствую.
Я вот сейчас тоже с MFT пытаюсь работать.

Пара вопросов:

1. Ты обрабатываешь ситуацию, кода в первой записи MFT (которая описывает саму MFT) есть $ATTRIBUTE_LIST (0x20), и $DATA
(0x80), содержаяся в первой записи MFT описывает только часть MFT (только первые 16 записей) (тогда остальные $DATA попадают в рекорды №№ 15..12)  ?
Ситуация реальная для силньо фрагментированных дисков.
2. Если атрибуты поместились в один файл-рекорд (не важно, резидентно или нет), то как их читать - понятно. Если есть атрибут $ATTRIBUTE_LIST но каждый из атрибутов поместился в какой-либо файл-рекорд - с этим тоже понятно.
Но если атрибут не поместился в один файл рекорд, то как можно отличить в разных файл рекордах находится ли куски одного атрибута или разные атрибуты ?


 
guav ©   (2007-08-15 16:07) [108]

PS: Майкрософт недавно добавили немного информации по этому в MSDN, там не все нужные структуры, и некоторые используемые поля структур помечены как reserved, но хоть какая инфа http://msdn2.microsoft.com/en-us/library/bb470206.aspx


 
guav ©   (2007-08-15 16:33) [109]


> А вот это очень полезная информация !
> Вычитала в одном месте, что AttributeAttributeList - список
> нерезидентных атрибутов,

Бывает и нерезиднетным, причём тот что в MFT тоже :) Вообще зачем проверять на (не)резидентность, если ты только читаешь данные, удобнее считать что каждый м.б. нерезидентным.

Кстати, могу потестить что там у тебя на домашней машине и на нескольких виртуальных, как найдётся время. Format("%s@%s.%s", ["guav", "ukr", "net"]) .


 
Riply ©   (2007-08-16 01:57) [110]

> [107] GuAV © (15.08.07 16:02)
>Приветствую.
>Я вот сейчас тоже с MFT пытаюсь работать.
Ну наконец-то ! И где ж тебя все это время носило ? :)
Я уж решила, что здесь все "слушаются старших" и я одна такая "стукнутая" :)

>Пара вопросов:
Нет. Это у меня тысяча и один вопрос :)

>1. Ты обрабатываешь ситуацию, кода в первой записи MFT (которая описывает саму MFT)
>есть $ATTRIBUTE_LIST (0x20), и $DATA (0x80), содержаяся в первой записи MFT описывает только часть MFT
>(только первые 16 записей) (тогда остальные $DATA попадают в рекорды №№ 15..12) ?
>Ситуация реальная для силньо фрагментированных дисков.
На настоящий момент я придерживаюсь такой политики: идти туда, куда тебя послали.
(На "рекорды №№ 15..12" меня еще не посылали, но как пошлют, так сразу пойду :)
Т.е. сейчас у меня закоментированы все проверки "разумности" диапазонов LCN
И эта политика себя оправдывает. Много ошибок в алгоритмах выявлено с ее помощью.
А ты воочию видел такую ситуацию (ссылку на рекорды 15..12) ?
Потому что мое imho, что если пользователь и доведет систему до того, что ей понадобяться
эти записи, то она скорее фрагментирует данные и поместит их часть в другое место,
отличное от этих рекордов. Иначе пропадает всякий смысл "резервирования на будущее".

>2. Если атрибуты поместились в один файл-рекорд (не важно, резидентно или нет), то как их читать - понятно.
>Если есть атрибут $ATTRIBUTE_LIST но каждый из атрибутов
>поместился в какой-либо файл-рекорд - с этим тоже понятно.
>Но если атрибут не поместился в один файл рекорд, то как можно отличить
>в разных файл рекордах находится ли куски одного атрибута или разные атрибуты ?
Не поняла вопроса.
Тебя интересует как в одном (выдранном из контекста) файл рекорде можно определить
содержит он целый атрибут или его кусок ? Imho, в общем случае - никак.
Но если есть возможность пойти по ссылке BaseFileRecord,
то уже в базовом рекорде можно выяснить, что именно содержит исходный рекорд.

>PS: Майкрософт недавно добавили немного информации по этому в MSDN, там не все нужные структуры,
>и некоторые используемые поля структур помечены как reserved,
>но хоть какая инфа http://msdn2.microsoft.com/en-us/library/bb470206.aspx
Сходила, посмотрела:
Да... В щедрости на информацию Майкрософт обвинить сложновато :)

>Кстати, могу потестить что там у тебя на домашней машине и на нескольких виртуальных, как найдётся время.
Это было бы здорово.
Как только исправлю очередную порцию ошибок
(вот их мне щедро возвращают в отчетах :), так сразу вышлю.
Хорошо ?

P.S.
Давай для обсуждения вопросов, связанных с MFT, создавать новые ветки ?
В эту, наверное, очень мало кто заходит.
А новых ветках шансы, что еще кто-нибудь поможет ответом будут повыше :)


 
guav ©   (2007-08-16 13:26) [111]


> А ты воочию видел такую ситуацию (ссылку на рекорды 15..
> 12) ?

Видел ссылку на 15. Про использование остальных - не помню, где видел инфу, но подозреваю, что если и 15ого не хватит, то и они будут использованы.


> Потому что мое imho, что если пользователь и доведет систему
> до того, что ей понадобяться
> эти записи, то она скорее фрагментирует данные и поместит
> их часть в другое место,
> отличное от этих рекордов. Иначе пропадает всякий смысл
> "резервирования на будущее".


Ситуация такая:
В рекорд $MFT  (0) не помещается его аттрибут DATA целиком. Тогда туда пишется атрибут  DATA, описывающий кусок MTF на 16 файлов. Таким образом, продолжения атрибута DATA для MFT, по которым можно восстановить полный должны быть именно среди 1ых 16и рекордов.

Я располагаю дампами таких $MFT рекордов, в обоих $DATA описывает кусок MFT на 16 записей, в одном $ATTRIBUTE_LIST резидентен, и видна ссылка на рекорд 15.

Резервирование же на будущее не нужно, новые файлы будут помещены в папку $Extend. Те рекорды видимо зарезервированы именно для мультирекордного MFT.


> Не поняла вопроса.

Вот у меня есть базовый рекорд, все рекорды куда он ссылается и атрибу-лист базового рекорда.
Допустим в атрибут-листе есть атрибут 0х80 в нескольких файл-рекордах, и атрибут 0х30 в нескольких файл рекордах. Как понять, что все эти 0х80 - куски одного аттрибута, а 0х30 - именно разные аттрибуты ?


> В щедрости на информацию Майкрософт обвинить сложновато
> :)

Кстати, какие у тебя источники информации ?


> Давай для обсуждения вопросов, связанных с MFT, создавать
> новые ветки ?

А смысл ?


 
Riply ©   (2007-08-16 18:42) [112]

>[111] guav © (16.08.07 13:26)
>Вот у меня есть базовый рекорд, все рекорды куда он ссылается и атрибу-лист базового рекорда.
>Допустим в атрибут-листе есть атрибут 0х80 в нескольких файл-рекордах,
>и атрибут 0х30 в нескольких файл рекордах.
>Как понять, что все эти 0х80 - куски одного аттрибута, а 0х30 - именно разные аттрибуты ?
Что-то я туплю. Опять плохо поняла проблемму :(
Ты пишешь оду универсальную процедуру для обработки всех (или почти всех)
типов атрибутов в атрибут-листе ?
У меня для разных(не для всех) типов - разная обработка.
Общее одно:
Я сначала получаю весь RunArray атрибута.
Т.е. при парсинге RunArray-я, я не отправляюсь по LCN сразу по мере их получения,
а записываю их в структуру. Заполнив ее, убеждаюсь в ее валидности, и заодно
получаю доп. информацию примерно так:
(HighVcn, LowVcn, DataSize - параметры атрибут-лист структуры, ClusterShl - "кластерный сдвиг")
RunLcn := HighVcn - LowVcn;
if DataSize > 0 then
begin
 max_cluster := (((DataSize + (1 shl ClusterShl)) - 1) shr ClusterShl) - 1;
 if RunLcn <> 0 then
  if RunLcn < max_cluster then
   begin // тут заполняю свою подструктуру
    pTmp._Fill(vcn_, LCN_RL_NOT_MAPPED, max_cluster - RunLcn);
    ......
   end
  else
   if RunLcn > max_cluster then Exit;
 pTmp.lcn := LCN_ENOENT;
end;

Ненулевая разность max_cluster - RunLcn говорит нам о том, что обработанный тип атрибута
представляет собой не весь атрибут, а только его часть,
причем нехватает именно max_cluster - RunLcn кластеров,
которые находятся в каком-то другом рекорде.
А теперь, имея на руках эту "инфу" и подготовленные LCN-ы, можно по ним и прогуляться,
учитывая тип атрибута, для которого это считалось :)
Это то что тебя интересовало ?
Если да, то забудь все что я здесь понаписала и посмотри реализацию функции
"ntfs_mapping_pairs_decompress" у линуксоидов, т.к. это их искореженная методика :)

>Кстати, какие у тебя источники информации ?
Начинала с Неббета (его описания структур и легли в основу).
По крохам добавляла откуда только можно. Вроде был Новоуральский Университет - не помню.
Но основные, и самые качественные добавки, я сделала изучая ntfs-3g драйвер линуксоидов и
их документацию. (www.linux-ntfs.org)


 
guav ©   (2007-08-16 19:50) [113]

У меня вопрос в следующем: пусть у меня есть элемент атрибут листа с LowVCN 0 и HighVCN 1000, и элемент с LowVCN 1000 и HighVCN 2000, как понять что это тот же аттрибут ? Кроме типа нужно ещё что-то сопоставлять ? или записи того же аттрибута обязаны идти подряд ?


> Ты пишешь оду универсальную процедуру для обработки всех
> (или почти всех)
> типов атрибутов в атрибут-листе ?

Ну.. желательно )


 
Riply ©   (2007-08-17 08:04) [114]

>[112] Riply © (16.08.07 18:42)
Описка
>(HighVcn, LowVcn, DataSize - параметры атрибут-лист структуры, ClusterShl - "кластерный сдвиг")
Надо читать:
(HighVcn, LowVcn, DataSize - параметры NONRESIDENT_ATTRIBUTE структуры, ClusterShl - "кластерный сдвиг")
Sorry.

>[113] guav © (16.08.07 19:50)
>У меня вопрос в следующем: пусть у меня есть элемент атрибут листа с LowVCN 0 и HighVCN 1000,
>и элемент с LowVCN 1000 и HighVCN 2000, как понять что это тот же аттрибут ?
>Кроме типа нужно ещё что-то сопоставлять ?

IMHO, нужно еще сопоставлять как минимум имя. ("IMHO" даже можно убрать, imho :)
Я делала так:
Это один и тот же атрибут, если
1. Совпали типы
2. Оба "мульти-рекордные" (не то слово, но другое подобрать не получается)
3. Совпали имена (если два пустых имени, то совпали).

Но стоит обратить внимание на еще один параметр в атрибут-листе:
AttributeID: USHORT;
У Microsoft"a он помечен как Reserved и идет сразу после SegmentReference
(спасибо MSDN хотя бы за то, что у нас теперь будет общая терминология :)

Я его не использовала (возможно и зря).
Есть предположение, что AttributeID - уникален (в пределах одного листа)
для каждого "мульти-рекордного" атрибута.
Т.е. Если у двух "мульти-рекордных" атрибутов он совпал, то это один и тот же атрибут.
Все сказанное насчет AttributeID - только предположения и никак не проверялось.  

>или записи того же аттрибута обязаны идти подряд ?
Мое imho, что расчитывать на это не стоит.  
Об этом(обязаны или нет) знает только Microsoft, но молчит как партизан. :)

>> Ты пишешь оду универсальную процедуру для обработки всех (или почти всех)
>> типов атрибутов в атрибут-листе ?

>Ну.. желательно )
Молодец ! Я еще до этого не доросла :)

Пока у меня не только способы обработки могут отличаться, но еще
почти в каждой процедуре есть входной параметр Caller: DWord - указывающий
на то, кто нас вызвал :)


 
guav ©   (2007-08-17 12:01) [115]


> Есть предположение, что AttributeID - уникален (в пределах
> одного листа)
> для каждого "мульти-рекордного" атрибута.

Это предположение было и у меня. Нет, AttributeID в пределах файл-рекорда. В том самом случае с $ATTRIBUTE_LIST в MFT встоеный $DATA и остальные имеют разный AttributeID, несмотря на то что это куски того же атрибута. Т.о. AttributeID  не уникален в пределах файла.
Об том что AttributeID  уникален в пределах файл-pекорда свидетельствует наличие USHORT Reserved4 в FILE_RECORD_SEGMENT_HEADER, это на самом деле NextAttributeID, используемый при добавлении аттрибута в файл-рекорд для AttributeID добавляемого аттрибута.
Зачем используется этот AttributeID - мне безразлично. Факт что мне он полезной информации не даст, и, т.к. Майкрософт его "зарезервировали", я бы не стал без необходимости его применять.

> Молодец ! Я еще до этого не доросла :)

Ну... просто у меня не энтузиазм, а коммерческий проект, там всё должно быть сделано как можно лучше )


 
Riply ©   (2007-08-17 12:16) [116]

> [115] guav ©   (17.08.07 12:01)
Спасибо. Насчет AttributeID прояснилось. (Избавил меня от лишней работы :)

>Ну... просто у меня не энтузиазм, а коммерческий проект,
>там всё должно быть сделано как можно лучше )
"Как прикажешь тебя понимать, Сайд ?" (с)
Т.е. если энтузиазм, то это означает брак и халтуру ? :)


 
guav ©   (2007-08-17 12:46) [117]


> Т.е. если энтузиазм, то это означает брак и халтуру ? :)

Нет, это только означает что у меня есть требования к функциональности, качеству и срокам.

PS: Обновил анкету, если что - ICQ там.


 
guav ©   (2007-08-17 16:15) [118]


> Это один и тот же атрибут, если
> 1. Совпали типы
> 2. Оба "мульти-рекордные" (не то слово, но другое подобрать
> не получается)
> 3. Совпали имена (если два пустых имени, то совпали).


А ведь ты всё правильно делаешь.

смотрим в MSDN описание ATTRIBUTE_LIST_ENTRY

Remarks
The attributes list is an ordered list of quadword-aligned ATTRIBUTE_LIST_ENTRY structures. This list is ordered first by the attribute type code and then by the attribute name (if present). No two attributes can have the same type code, name, and lowest VCN. Therefore, there can be at most one attribute for each type code without a name.


 
Riply ©   (2007-08-18 19:06) [119]

>Vendict
>guav

Отправила очередную версию.
Самые плодовитые не кролики, а ошибки. Особенно в благоприятных условиях :)


 
Vendict ©   (2007-08-19 12:59) [120]

больше ошибок не обнаружил. только что при запуске DeviceOpen: "Устройство не готово".

картинка нужна ?


 
Riply ©   (2007-08-19 14:16) [121]

[120] Vendict ©   (19.08.07 12:59)
>больше ошибок не обнаружил.
Ну наконец-то ! Уря-я-я-я !
Долго же я шла к этому :)

>только что при запуске DeviceOpen: "Устройство не готово".
С этим я разберусь :)

>картинка нужна ?
Нет.

Саша, спасибо огромное!
С твоей помощью я столько всего смогла исправить
и понять, как оно на самом деле должно быть.

P.S.
Guav, на первом этапе тестирования, пока тоже не обнаружил ошибок.
Подождем второго этапа.


 
Vendict ©   (2007-08-20 00:57) [122]

Riply ©   (19.08.07 14:16) [121]

всегда пожалуйста )

а в чём будет заключаться второй этап ? а то у меня руки чешутся сервак переустановить, лишь бы ты успела до этого момента этап начать )


 
Riply ©   (2007-08-20 01:39) [123]

>[122] Vendict ©   (20.08.07 00:57)
>а в чём будет заключаться второй этап ?
Паралельно будет идти два процесса:
Приведение того, что имеем в вид, приемлемый для нормальной работы.
Опыта у меня никакого в написании продукта для конечного пользователя.
Так что понадобяться советы по функциональности и оформлению.

>а то у меня руки чешутся сервак переустановить, лишь бы ты успела до этого момента этап начать )
У тебя будут все шансы удовлетворить все свои запросы по падению сервака на втором этапе,
т.к. от чтения будем переходить к записи.
Ну а сколько будет ошибок, кто-кто, а уж ты должен себе хорошо представлять :)


 
имя   (2007-08-20 22:33) [124]

Удалено модератором


 
имя   (2007-08-20 22:34) [125]

Удалено модератором


 
Riply ©   (2007-08-21 11:15) [126]

GuAV нашел у меня еще две ошибки:
Неправильная обработка файлов у которых TotalAllocated меньше чем FileSize
(общее кол-во байт, выделенное под файл меньше размера файла :)
и файлов со "сложным дата-раном".
Так что "второй этап" временно откладывается :(



Страницы: 1 2 3 4 вся ветка

Текущий архив: 2007.09.16;
Скачать: CL | DM;

Наверх




Память: 0.88 MB
Время: 0.048 c
15-1187596793
Sergey Masloff
2007-08-20 11:59
2007.09.16
Задачка. Контекстно-свободная грамматика для римских чисел.


15-1187356097
TUser
2007-08-17 17:08
2007.09.16
Украина первой в мире признала астрологию наукой


2-1187609600
Кирей
2007-08-20 15:33
2007.09.16
ошибка при перекодировке CharToOem


15-1186747995
@!!ex
2007-08-10 16:13
2007.09.16
Споры


15-1187185908
@!!ex
2007-08-15 17:51
2007.09.16
Причина алкоголизма.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский