Случилось то, чего стоило бы ожидать - фотоаппарат был подвергнут насильственному досмотру и с него стерта вся медия. Побродив немного по интернету понял, что программа обойдется мне в минимум 20$, ибо Trial версия не известно что откажется делать, и...
вообщем я было загрустил, пока не набрел на одну вещь.
Вообще, решение задачи нахождения стертых файлов во многом зависит от файловой системы. Узнать тип файловой системы просто: vaulter@vaulter-desktop:~$ fdisk -l
Диск /dev/sdb: 1055 МБ, 1055416320 байт
16 heads, 63 sectors/track, 2045 cylinders
Units = цилиндры of 1008 * 512 = 516096 bytes
Disk identifier: 0x00000000
Устр-во Загр Начало Конец Блоки Id Система
/dev/sdb1 * 1 2045 1030648+ 6 FAT16
То есть, по сути, восстановить файлы надо с FAT16. Это "волшебство" (за которые просют денег) доступно нам с начала 90х. Однако, был сделан еще один финт ушами:
vaulter@vaulter-desktop:~$ RESTORE_FILE=~/sony., тем самым скопировав полный образ Flash ки (у меня копирование с CompactFlash емкостью 1Gb заняло несколько минут) я избавил фотоаппарат от мучений, отключив его - информация уже была в надежных руках! :)date +%F.dd
vaulter@vaulter-desktop:~$ dd if=/dev/sdb1 of=$RESTORE_FILE bs=1024
Пока я ждал копирования, смотрел watch du -h $RESTORE_FILE в отдельной консольке :)
Затем скачав по упомянутой ссылке foremost, make и
vaulter@vaulter-desktop:~$ src/foremost/foremost -t mpg,jpeg -i $RESTORE_FILE
Несколько фоток конечно "побилось", я думаю, это неплохой результат, учитывая то, что я отдал денег только за несколько килобайт трафика.
зы: скриптик, выдающий изменения в /dev папке :)
vaulter@vaulter-desktop:~$ cat ./mondev.sh
#!/bin/sh
#Monitor of devices?
# TODO just KDE popup for a now,
# but MUST be chippy and configurable
# via COMMAND LINE :)
DELAY=1
TTY=`tty | sed s/\\\//./g`
MYNAME=`namei $0 | grep -`
TMPDIR=/tmp
LASTTMPFILE=$TMPDIR/$MYNAME$TTY
TMPFILE=$TMPDIR/.$MYNAME$TTY
while [ 1 ]; do
ls -la /dev > "$TMPFILE"
if [ -f "$LASTTMPFILE" ]; then
diff -u "$LASTTMPFILE" "$TMPFILE";
fi
cat "$TMPFILE" > "$LASTTMPFILE"
sleep $DELAY
done