В процессе эксплуатации моего второго, резервного NAS DNS-313, появилась проблема: в одной из директорий появился файл, который невозможно удалить. О его существовании подсказывает ls:
root@backup:/mnt/HD_a2/server/backups# ls -la
ls: ./.mysql_08_12_30.gz.qexFWx: No such file or directory
Директорию, в которой он находится, тоже не получалось удалить рекурсивно. Вывод один – надо лечить файловую систему. Только вот сразу обнаружилось, что файловая система для основного раздела – некая UFSD. В реальности же оказалась NFTS.
root@backup:/mnt/HD_a2# mount
…
/dev/sda2 on /mnt/HD_a2 type ufsd (rw,umask=0000)
На ходу файловая система отмонтировалась без проблем:
umount /dev/sda2
Комманда ntfsfix не нашла ничего плохого:
root@backup:/# ntfsfix /dev/sda2
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
NTFS volume version is 3.1.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
NTFS partition /dev/sda2 was processed successfully.
Вторая команда, похожая на нужную, не запускалась:
root@backup:/# chkntfs
chkntfs: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory
Данная проблема лечится коммандой:
ln -s /mnt/sda3/lib/libgcc_s.so.1 /lib
После чего утилита запустилась и вылечила файловую систему, файл исчез:
root@backup:/# chkntfs -f --verbose /dev/sda2
GetMount: "/dev/sda2"
GetMount: Device is not mounted
Checking Volume...
Verifying files...
Files verification completed.
Verifying meta files...
Meta files verification completed.
Veryfing $AttrDef.
Veryfing $Boot.
Verifying $UpCase.
$UpCase file is formatted for use in Windows NT/2K/XP
Verifying $LogFile.
Verifying $Volume.
Verifying folders...
Correcting error in index 0x30 ($I30) for file 0xfe.
Deleting entry ".mysql_08_12_30.gz.qexFWx" from index 0xfe "backups"
…
Примонтировать файловую систему обратно можно коммандой:
mount /dev/sda2 /mnt/HD_a2