Notice: file_put_contents(): Write of 4307 bytes failed with errno=28 No space left on device in /var/www/tgoop/post.php on line 50

Warning: file_put_contents(): Only 16384 of 20691 bytes written, possibly out of free disk space in /var/www/tgoop/post.php on line 50
Bash Days | Linux | DevOps@bashdays P.48
BASHDAYS Telegram 48
Вот и август на носу, еще совсем чуть-чуть и снова новый год. Как говорится — дорогу осилит идущий. Так что не останавливаемся и продолжаем изучать новое.

Сегодня покажу вкусный трюк, как узнать физическое расположение файла на диске. Нет, не его путь, а именно в какой области жесткого диска этот файл находится. Поехали. 🏃‍♂️

Создаём подопытный файл:

printf '%s\n' {a..d} > /tmp/test.txt

либо так:

echo {a..d} > /tmp/test.txt

После создания файла, нужно запустить команду sync, но можно и не запускать, спустя несколько секунд linux сам всё нужное сделает. Я запускаю, потому что мне важна чистота эксперимента.

sync — утилита Unix, предназначенная для обновления файловых систем и для синхронизации данных на диске с данными в памяти. При этом выполняется системный вызов sync, который вызывает запись всех буферизованных изменений метаданных файлов и данных в базовые файловые системы. Он гарантирует, что все, что хранилось в памяти, будет записано на диск, предотвращая потерю данных, хранящихся в кеше, при аварийном завершении работы.

Так, файл успешно создан, давай посмотрим что внутри:

cat /tmp/test.txt

abcd

Ок. Теперь давай узнаем физическое расположение файла на диске, для этого запускай команду:

filefrag -b512 -v /tmp/test.txt

Программа filefrag (из пакета e2fsprogs) показывает насколько сильно фрагментирован файл.

После выполнения команды, смотрим результат. Нам важна колонка: physical_offset в моём случае я получил такие значения:

4612136..4612143

Отлично. Теперь я знаю точное расположение файла на жестком диске. А давай прочитаем его прям с диска! Для этого стартуем:

sudo dd if=/dev/sda1 skip=4612136 status=none count=8

Важно правильно указать свой диск /dev/sdX. Ну и в параметр skip подставить первое значение из колонки physical_offset

По итогу запуска, я получаю ту же картину. Только без применения сторонних утилит вроде cat и т.п..

abcd

Ну и вишенка. Если я удалю файл rm /tmp/test.txt и затем выполню предыдущую команду:

sudo dd if=/dev/sda1 skip=4612136 status=none count=8

То получу тот же вывод «abcd», потому что файл на диске продолжает лежать и занимать место. Это визуально он исчез, чтобы тебе глаза не мозолить. Но зная его physical_offset вполне можно до него дотянутся и восстановить при желании.

Полезно? Полезно! Для чего это можно применить? Нууу не знаю, коллега к примеру таким образом восстанавливал базу данных, которую в пятницу вечером решили случайно удалить. А бэкапы съели мыши.🐁 Кстати успешно восстановил. Ну это уже лирика…

Очередную порцию полезных знаний я тебе выдал, ставь лайк, изучай. Увидимся! 😻

tags: #linux #bash

🟢 Подпишись: @bashdays
Please open Telegram to view this post
VIEW IN TELEGRAM
👍255



tgoop.com/bashdays/48
Create:
Last Update:

Вот и август на носу, еще совсем чуть-чуть и снова новый год. Как говорится — дорогу осилит идущий. Так что не останавливаемся и продолжаем изучать новое.

Сегодня покажу вкусный трюк, как узнать физическое расположение файла на диске. Нет, не его путь, а именно в какой области жесткого диска этот файл находится. Поехали. 🏃‍♂️

Создаём подопытный файл:

printf '%s\n' {a..d} > /tmp/test.txt

либо так:

echo {a..d} > /tmp/test.txt

После создания файла, нужно запустить команду sync, но можно и не запускать, спустя несколько секунд linux сам всё нужное сделает. Я запускаю, потому что мне важна чистота эксперимента.

sync — утилита Unix, предназначенная для обновления файловых систем и для синхронизации данных на диске с данными в памяти. При этом выполняется системный вызов sync, который вызывает запись всех буферизованных изменений метаданных файлов и данных в базовые файловые системы. Он гарантирует, что все, что хранилось в памяти, будет записано на диск, предотвращая потерю данных, хранящихся в кеше, при аварийном завершении работы.

Так, файл успешно создан, давай посмотрим что внутри:

cat /tmp/test.txt

abcd

Ок. Теперь давай узнаем физическое расположение файла на диске, для этого запускай команду:

filefrag -b512 -v /tmp/test.txt

Программа filefrag (из пакета e2fsprogs) показывает насколько сильно фрагментирован файл.

После выполнения команды, смотрим результат. Нам важна колонка: physical_offset в моём случае я получил такие значения:

4612136..4612143

Отлично. Теперь я знаю точное расположение файла на жестком диске. А давай прочитаем его прям с диска! Для этого стартуем:

sudo dd if=/dev/sda1 skip=4612136 status=none count=8

Важно правильно указать свой диск /dev/sdX. Ну и в параметр skip подставить первое значение из колонки physical_offset

По итогу запуска, я получаю ту же картину. Только без применения сторонних утилит вроде cat и т.п..

abcd

Ну и вишенка. Если я удалю файл rm /tmp/test.txt и затем выполню предыдущую команду:

sudo dd if=/dev/sda1 skip=4612136 status=none count=8

То получу тот же вывод «abcd», потому что файл на диске продолжает лежать и занимать место. Это визуально он исчез, чтобы тебе глаза не мозолить. Но зная его physical_offset вполне можно до него дотянутся и восстановить при желании.

Полезно? Полезно! Для чего это можно применить? Нууу не знаю, коллега к примеру таким образом восстанавливал базу данных, которую в пятницу вечером решили случайно удалить. А бэкапы съели мыши.🐁 Кстати успешно восстановил. Ну это уже лирика…

Очередную порцию полезных знаний я тебе выдал, ставь лайк, изучай. Увидимся! 😻

tags: #linux #bash

🟢 Подпишись: @bashdays

BY Bash Days | Linux | DevOps


Share with your friend now:
tgoop.com/bashdays/48

View MORE
Open in Telegram


Telegram News

Date: |

The group’s featured image is of a Pepe frog yelling, often referred to as the “REEEEEEE” meme. Pepe the Frog was created back in 2005 by Matt Furie and has since become an internet symbol for meme culture and “degen” culture. A few years ago, you had to use a special bot to run a poll on Telegram. Now you can easily do that yourself in two clicks. Hit the Menu icon and select “Create Poll.” Write your question and add up to 10 options. Running polls is a powerful strategy for getting feedback from your audience. If you’re considering the possibility of modifying your channel in any way, be sure to ask your subscribers’ opinions first. To view your bio, click the Menu icon and select “View channel info.” In handing down the sentence yesterday, deputy judge Peter Hui Shiu-keung of the district court said that even if Ng did not post the messages, he cannot shirk responsibility as the owner and administrator of such a big group for allowing these messages that incite illegal behaviors to exist. Although some crypto traders have moved toward screaming as a coping mechanism, several mental health experts call this therapy a pseudoscience. The crypto community finds its way to engage in one or the other way and share its feelings with other fellow members.
from us


Telegram Bash Days | Linux | DevOps
FROM American