TGViewer
DevOps Portal | Linux DevOps Portal | Linux @loose_code · 13.2K subscribers
Post #117 112
🔍 В этом посте покажу вам увлекательный трюк – как узнать физическое расположение файла на жестком диске, не просто его путь, а именно область, в которой файл находится. Вперед, начинаем! 🏃‍♂️

Для начала, создаем подопытный файл. Можно сделать это двумя способами:

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.

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

Надеюсь, этот пост был полезным! Если вам понравился, ставьте лайк. 😻
  • 👍 2
  • 🔥 2
More from @loose_code
  1. Oct 13, 2026Kubernetes: Client-Side Apply vs Server-Side Apply При выполнении команды kubectl apply по…
  2. Oct 12, 2026DevOps-инструмент недели: Popeye Со временем в Kubernetes-кластерах могут накапливаться не…
  3. Oct 12, 2026Безопасный код ≠ безопасный прод 16 октября на онлайн-трансляции PSD 2026 команда AppSec P…
  4. Oct 8, 2026Интересный и полезный опенсорс-инструмент Как часто приходилось открывать консоль AWS и др…
  5. Oct 8, 2026В этом туториале показано, как разворачивать и масштабировать большие языковые модели (LLM…
  6. Oct 6, 2026Как работает Kubernetes Cluster Autoscaler? Базовый флоу выглядит так Pending Pod → Cluste…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →