Как восстановить файл, используя цепочку кластеров FAT вместо использования сохраненной длины в таблице FAT?

Как восстановить файл, используя цепочку кластеров FAT вместо использования сохраненной длины в таблице FAT?

Я пытаюсь восстановить файлы фильмов с жесткого диска моего ресивера TNT, но он повреждает таблицу распределения FAT32 (отвратительное дешевое устройство...)

Использование dosfsck бесполезно, поскольку правильная длина файла — это длина кластера, а не (более короткая) длина в таблице, а dosfsck только предлагает сократить файл, чего я делать не буду.

Вопрос: как восстановить файл, используя цепочку кластеров FAT, а не сохранённую длину в таблице FAT?

Редактировать

Забыл сказать: только Linux-решения, пожалуйста (у меня нет Windows-бокса)

решение1

Вот что я сделал с памятными событиями программирования, в данном случае на моем PVR: 1) mshowfat для получения списка кластеров. 2) Я вставил while read с dd....

Самые важные части моей оболочки:

mshowfat p:/$FILENAME | sed "s/>/\n/g" | sed "s/.DAT/\n/" | sed "s/ cp-pvr.log

в то время как IFS=" " чтение дебюта fin сделать taille=$(($fin - $debut)) dd if=/dev/sdbx of="out-file" bs=$BLKSIZE"c" пропуск=$debut количество=$taille seek=$SAUT SAUT=$(($SAUT + $taille))
...

Связанный контент