Использование Linux live USB для побитового копирования одного каталога с поврежденного жесткого диска

Если скрипт должен быть запущен в каталоге, в котором он должен работать, вам нужно сначала cdтуда. Что-то вроде этого:

find -type d -exec sh -c 'cd -- "$1"; exec /path/to/script.sh' sh {} \;

(изменить путь к скрипту, очевидно.)

В качестве альтернативы вы можете изменить сценарий так, чтобы он принимал имя каталога в качестве аргумента, это должно быть так же просто, как добавить cdв начало сценария.

#!/bin/bash
if [ "$1" ]; then
    cd -- "$1" || exit 1
fi
for file in *.*
...

Проверка, если $1сначала пусто, чтобы поведение по умолчанию по-прежнему работало в текущем каталоге (и чтобы случайно не вызвать cdбез аргументов :это пошло бы на пользователя$HOME).

А затем просто запустите прямой find -execс именем каталога в качестве аргумента скрипта:

find -type d -exec /path/to/script.sh {} \;
0
16.02.2020, 23:51
1 ответ

Хотя это было бы здорово и уменьшило бы нагрузку на уже поврежденный диск, бесплатные инструменты в Linux не очень хорошо справляются с поврежденной файловой системой NTFS. Единственная практическая вещь, которую вы можете сделать, это скопировать весь раздел (или даже весь жесткий -диск )на новый, а затем использовать инструменты Windows для его проверки. Я рекомендую ddrescue:

ddrescue /dev/damaged /dev/new logfile

Если файловая система -повреждена и не может быть использована, вы можете попытаться извлечь отдельные файлы с диска с помощью testdisk, photorec или других инструментов очистки. Имейте в виду, хотя :результаты часто разочаровывают.

2
28.04.2021, 23:23

Теги

Похожие вопросы