Восстановление данных из папки, которая была целью монтирования [duplicate]

Это немного грубо, но это работает в крайнем случае:

find <path> -type f -print0 | cpio -0o >/dev/null

Вы можете сделать некоторые интересные вещи с помощью этой техники, включая кэширование всех файлов /lib и /usr/bin. Вы также можете использовать это как часть работы по бенчмаркингу:

find / -xdev -type f -print0 | 
sort -R --from0-file=- | 
timeout "5m" cpio -0o >/dev/null

Все имена файлов в корне находятся, сортируются случайным образом и копируют их в кэш на срок до 1 минуты. Выходные данные cpio сообщают вам, сколько блоков было скопировано. Повторите 3 раза, чтобы получить среднее количество блоков в минуту. (Обратите внимание, что операция поиска/сортировки может занять много времени - намного дольше, чем копирование. Было бы лучше кэшировать поиск / сортировку и использовать split для получения образца файлов.)

6
29.06.2018, 16:36
3 ответа

Легко,

umount /acme

Ваш исходный каталог /acmeпросто «спрятан» под точкой монтирования.

Если ничто не мешает вам размонтировать каталог, вы можете размонтировать его, скопировать данные в другое место и перемонтировать.

14
27.01.2020, 20:20

Монтирование не удаляет данные, но может скрыть данные, поскольку содержимое точки монтирования заменяется смонтированной файловой системой (, которая может быть пустой ). Конечно, могут быть побочные эффекты (программы, которые ведут себя по-разному в зависимости от того, как что-то монтируется ), поэтому все может пойти ужасно неправильно, если вы неправильно управляете своими точками монтирования.

Если вы смонтировали пустую файловую систему не в том месте, достаточно просто размонтировать:

umount /acme

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

mkdir /mnt/root
mount --bind / /mnt/root
ls /mnt/root/acme

Это сложнее, если несколько слоев файловой системы смонтированы друг над другом. Используйте lsblkи cat /proc/mounts, чтобы выяснить структуру. Вы можете привязать -монтирование каждого слоя отдельно во временную директорию и проверить содержимое.

Обратите внимание, что монтирования bind -по умолчанию доступны для записи, поэтому их можно изменять, переименовывать и удалять файлы. Для просмотра только для чтения -просто добавьте --read-only.

15
27.01.2020, 20:20

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

3
27.01.2020, 20:20

Теги

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