pavia писал(а):
Кто-нибудь может мне помочь написать удолялку файлов с NTFS. А то у меня ни виндоус ни линукс его не удаляют пишут ошибка ввода вывода.
В FATах и других системах такое тоже часто случается. По моему опыту, это бывает из-за некорректных символов в именах файлов.
К сожалению, моя работа ещё далека от практического использования. Могу порекомендовать подправить соответствующее имя при помощи низкоуровневого редактора дисков.
Станислав писал(а):
Yoda как вы находите сектор где лежит MFT из заголовка
1. Вся файловая система состоит из кластеров. Даже загрузочный сектор. Это базовая единица для NTFS. Поэтому везде фигурируют кластеры. Количество секторов в кластере определяется полем "sectors_per_cluster" в загрузочном секторе. Таким образом, для получения сектора нужно умножать нужный кластер на кол-во секторов в кластере.
2. Кластер, в котором лежит начало (первая запись) MFT указан в поле "Logical Cluster Number for the file $MFT". Не забываем, что там 8 байт (64-битное число). Естественно, домножаем на кол-во секторов в кластере и, если диск разбит на разделы, добавляем смещение к началу раздела (hidden sectors).
Станислав писал(а):
и какого формата этот файл, поделитесь плз.
Это - линейный перечень так называемых "записей". Размер записи хитрым образом определяется
байтом в загрузочном секторе "Clusters Per File Record Segment". Если этот байт - положительное число, то это число задаёт количество
кластеров в одной записи. Если отрицательное, то это - степень двойки, задающая размер записи в байтах. Например, если там -9, то запись имеет размер 2^9 = 512 байт.
Точно так же определяется размер индексного блока (составная часть директории) по полю "Clusters Per Index Block".
Структуру каждой записи лучше изучить из документации по ссылке из первого поста. Вкратце: каждая запись имеет фиксированный размер, состоит из заголовка и последовательного списка атрибутов (ИМХО толстых и никчемных). Вся остальная соль лежит в атрибутах. Их структура также расписана в документации.