🔍 В этом посте покажу вам увлекательный трюк – как узнать физическое расположение файла на жестком диске, не просто его путь, а именно область, в которой файл находится. Вперед, начинаем! 🏃♂️
Для начала, создаем подопытный файл. Можно сделать это двумя способами:
или так:
После создания файла, запускаем команду
Команда
Теперь, когда файл успешно создан, давайте посмотрим, что он содержит:
Ожидаемый вывод:
Итак, следующим шагом – узнать физическое расположение файла на диске. Для этого выполняем команду:
Эта программа покажет насколько сильно фрагментирован файл.
После выполнения команды, обращаем внимание на столбец
Теперь, давайте прочитаем содержимое файла прямо с диска:
Важно указать правильное значение
После выполнения команды, ожидаемый вывод:
Таким образом, даже если мы удалим файл
Этот трюк может быть полезен, например, для восстановления случайно удаленных данных, если мы знаем его физическое расположение на диске.
Надеюсь, этот пост был полезным! Если вам понравился, ставьте лайк. 😻
Для начала, создаем подопытный файл. Можно сделать это двумя способами:
printf '%s\n' {a..d} > /tmp/test.txt
или так:
echo {a..d} > /tmp/test.txt
После создания файла, запускаем команду
sync
. Хотя она не обязательна, так как Linux автоматически выполнит необходимые действия спустя несколько секунд. Но ради чистоты эксперимента я всегда запускаю sync
.Команда
sync
– это утилита Unix, которая обновляет файловые системы и синхронизирует данные на диске с данными в памяти. Это предотвращает потерю данных, хранящихся в кеше, при аварийном завершении работы.Теперь, когда файл успешно создан, давайте посмотрим, что он содержит:
cat /tmp/test.txt
Ожидаемый вывод:
abcd
Итак, следующим шагом – узнать физическое расположение файла на диске. Для этого выполняем команду:
filefrag -b512 -v /tmp/test.txt
Эта программа покажет насколько сильно фрагментирован файл.
После выполнения команды, обращаем внимание на столбец
physical_offset
. В моем случае, полученные значения:4612136..4612143
Теперь, давайте прочитаем содержимое файла прямо с диска:
sudo dd if=/dev/sda1 skip=4612136 status=none count=8
Важно указать правильное значение
/dev/sdX
для вашего диска и заменить skip
на первое значение из колонки physical_offset
.После выполнения команды, ожидаемый вывод:
abcd
.Таким образом, даже если мы удалим файл
rm /tmp/test.txt
, мы сможем восстановить его, зная physical_offset
.Этот трюк может быть полезен, например, для восстановления случайно удаленных данных, если мы знаем его физическое расположение на диске.
Надеюсь, этот пост был полезным! Если вам понравился, ставьте лайк. 😻