Когда файловая система виртуального контейнера TrueCrypt повреждена и со всех щелей попёрло - rsync: readlink_stat() failed: Structure needs cleaning (117)
; /dev/mapper/truecrypt2 is mounted. e2fsck: Cannot continue, aborting.
; umount: /dev/mapper/truecrypt2: target is busy
.
Проявиться проблема может, например, при синхронизации файлов и директорий:
$ rsync -vurc --delete --include-from='/mnt/src/rsync_include.txt' --exclude='*' '/mnt/src/' '/mnt/dst' sending incremental file list rsync: readlink_stat("/mnt/src/os/unix/etc/sysctl.d/README.sysctl") failed: Structure needs cleaning (117) IO error encountered -- skipping file deletion sent 288,132 bytes received 1,256 bytes 4,486.64 bytes/sec total size is 306,063,203 speedup is 1,057.62 rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1207) [sender=3.1.3]
Где оно замонтировано?
$ mount|grep ext ... /dev/mapper/truecrypt2 on /mnt/src type ext4 (rw,relatime)
Есть некая прога testdisk
, которой предлагается выявлять проблемные участки диска. По-факту она (доступна из апт дебиана) не является полноценной заменой стандартной fsck
, но в некоторых случаях может быть весьма полезна
$ apt-cache show testdisk
...
Description-ru: сканирование разделов, восстановление дисков и файлов TestDisk проверяет разделы и загрузочные секторы на ваших дисках. Его применение очень полезно в судебной деятельности для восстановления потерянных разделов. Программа поддерживает:
* DOS/Windows FAT12, FAT16 и FAT32
* NTFS ( Windows NT/2K/XP )
* Linux Ext2 и Ext3
* BeFS ( BeOS )
* дисковые метки BSD ( FreeBSD/OpenBSD/NetBSD )
* CramFS (сжатая файловая система)
* HFS and HFS+, иерархическая файловая система
* JFS, журналируемая файловая система IBM
* Linux Raid
* Linux Swap (версии 1 и 2)
* LVM и LVM2, логические тома Linux
* Netware NSS
* ReiserFS 3.5 и 3.6
* дисковые метки i386 Sun Solaris
* UFS и UFS2 (Sun/BSD/...)
* XFS, журналируемая файловая система SGI
.
В состав пакета также входит утилита PhotoRec для восстановления фотографий в памяти цифровых фотоаппаратов и даже на жёстких дисках. Возможности данной программы расширены для поиска заголовков разных типов, помимо аудио/видео. Программа ищет остатки файлов следующих типов и может отменить их удаление
(то есть может восстановить их):
* аудиоданные Sun/NeXT (.au)
* аудио/видео RIFF (.avi/.wav)
* изображения BMP (.bmp)
* сжатые с помощью программы bzip2 данные (.bz2)
* исходные коды, написанные на C (.c)
* изображения Canon (Raw, файл .crw)
* каталоги Canon (.ctg)
* подпапки FAT
* документы Microsoft Office (.doc)
* файлы Nikon dsc (.dsc)
* страницы HTML (.html)
* изображения JPEG (.jpg)
* видео MOV (.mov)
* аудио MP3 (MPEG ADTS, layer III, v1) (.mp3)
* видео Moving Picture Experts Group (.mpg)
* изображения Minolta (Raw, файл .mrw)
* изображения Olympus Raw (.orf)
* Portable Document Format (.pdf)
* сценарии Perl (.pl)
* изображения в формате Portable Network Graphics (.png)
* изображения в формате Fujifilm RAW (.raf)
* изображения Contax (.raw)
* изображения Rollei (.rdc)
* форматированный текст Rich Text Format (.rtf)
* сценарии оболочки (.sh)
* архивы Tar (.tar )
* Изображение в формате - Tag Image File Format (.tiff)
* аудио Microsoft ASF (.wma)
* изображения Sigma/Foveon X3 Raw (.x3f)
* архивы zip (.zip)$ apt-get install testdisk
- TestDisk - CGSecurity Download
- GitHub - cgsecurity/testdisk_documentation: Documentation for TestDisk & PhotoRec
- TestDisk Documentation.pdf
$ ./testdisk_static /dev/mapper/truecrypt2 TestDisk 7.2-WIP, Data Recovery Utility, Novembre 2020 Christophe GRENIER <grenier@cgsecurity.org> https://www.cgsecurity.org TestDisk is free software, and comes with ABSOLUTELY NO WARRANTY. Select a media (use Arrow keys, then press Enter): >Disk /dev/mapper/truecrypt2 - 4351 MB / 4149 MiB >[Proceed ] [ Quit ] Note: Disk capacity must be correctly detected for a successful recovery. If a disk listed above has an incorrect size, check HD jumper settings and BIOS detection, and install the latest OS patches and disk drivers. TestDisk 7.2-WIP, Data Recovery Utility, Novembre 2020 Christophe GRENIER <grenier@cgsecurity.org> https://www.cgsecurity.org Disk /dev/mapper/truecrypt2 - 4351 MB / 4149 MiB Please select the partition table type, press Enter when done. [Intel ] Intel/PC partition [EFI GPT] EFI GPT partition map (Mac i386, some x86_64...) [Humax ] Humax partition table [Mac ] Apple partition map (legacy) >[None ] Non partitioned media [Sun ] Sun Solaris partition [XBox ] XBox partition [Return ] Return to disk selection Hint: None partition table type has been detected. TestDisk 7.2-WIP, Data Recovery Utility, Novembre 2020 Christophe GRENIER <grenier@cgsecurity.org> https://www.cgsecurity.org Disk /dev/mapper/truecrypt2 - 4351 MB / 4149 MiB - 8498944 sectors Partition Start End Size in sectors > P ext4 0 8498943 8498944 [ Type ] >[Superblock] [ List ] [Image Creation] [ Quit ] Locate ext2/ext3/ext4 backup superblock TestDisk 7.2-WIP, Data Recovery Utility, Novembre 2020 Christophe GRENIER <grenier@cgsecurity.org> https://www.cgsecurity.org Disk /dev/mapper/truecrypt2 - 4351 MB / 4149 MiB - 8498944 sectors Partition Start End Size in sectors ext4 0 8498943 8498944 superblock 0, blocksize=4096 [] superblock 32768, blocksize=4096 [] superblock 98304, blocksize=4096 [] superblock 163840, blocksize=4096 [] superblock 229376, blocksize=4096 [] superblock 294912, blocksize=4096 [] superblock 819200, blocksize=4096 [] superblock 884736, blocksize=4096 [] To repair the filesystem using alternate superblock, run fsck.ext4 -p -b superblock -B blocksize device >[ Quit ] Return to Advanced menu fsck.ext4 -p -b superblock -B blocksize device
Начались проблемы с fsck.ext4
/ umount
$ sudo fsck.ext4 -p -b 32768 -B 4096 /dev/mapper/truecrypt2 or $ sudo fsck /dev/mapper/truecrypt2 fsck from util-linux 2.33.1 e2fsck 1.44.5 (15-Dec-2018) /dev/mapper/truecrypt2 is mounted. e2fsck: Cannot continue, aborting.
umount не арбайтен, /dev/mapper/truecrypt2
оккупирован
$ umount /dev/mapper/truecrypt2 umount: /dev/mapper/truecrypt2: target is busy.
Найти и ликвидировать оккупанта /dev/mapper/truecrypt2
:
$ fuser -am /dev/mapper/truecrypt2 /dev/dm-4: 14222c $ fuser -amk /dev/mapper/truecrypt2 /dev/dm-4: 14222c $ fuser -am /dev/mapper/truecrypt2 /dev/dm-4: $ umount /dev/mapper/truecrypt2 $
14222c
- убился браузер имевший временные каталоги в контейнере.
Then just run fsck, можно с флагом -y шоб сразу на все вопросы утвердительно ответить:
$ sudo fsck /dev/mapper/truecrypt2 fsck from util-linux 2.33.1 e2fsck 1.44.5 (15-Dec-2018) /dev/mapper/truecrypt2 contains a file system with errors, check forced. Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Unattached inode 8358 Connect to /lost+found<y>? yes Inode 8358 ref count is 2, should be 1. Fix<y>? ...
Итого должно быть:
$ sudo fsck /dev/mapper/truecrypt2 fsck from util-linux 2.33.1 e2fsck 1.44.5 (15-Dec-2018) /dev/mapper/truecrypt2: clean, 6201/266112 files, 828251/1062368 blocks $ mount /dev/mapper/truecrypt2 /mnt/src
Готово.
P.S. Подобные проблемы файловых систем обычно возникают при внезапном отключении электричества, некачественных шлейфах на физических жёстких дисках.