Я активно использую Linux. И стараюсь периодически делать резервные копии со своих устройств. Самым простым вариантом является создание DD образа всего диска. Дальше этот образ можно сжать GZIP-ом и положить на LTO картридж. И пару раз меня сильно выручали резервные копии. Я их полностью не разворачивал, только доставал часть данных.
Однако, есть одна проблема. На ноутбуках я всегда использую шифрование диска. На всякий случай. Ноутбук теоретически можно потерять. Его могут украсть. Зачем рисковать? В данной ситуации не сколько само устройство жалко, сколько данные на нем. А самое опасное — ssh ключи в различные места, где теоретически можно очень сильно чего-нибудь сломать.
Итак, начнем с простого. Как подключить образ. Речь идет про сырой, не сжатый. Тут поможет loop устройство. Этой командой мы подключаем образ и сразу сканируем его на наличие разделов.
sudo losetup -f --partscan <файл_образа>
После чего в /dev/
наблюдаем loop устройство с разделами.
[walhi@b590] $ ls -l /dev/loop*
brw-rw---- 1 root disk 7, 0 ноя 30 02:42 /dev/loop0
brw-rw---- 1 root disk 259, 0 ноя 30 02:42 /dev/loop0p1
brw-rw---- 1 root disk 259, 1 ноя 30 02:42 /dev/loop0p2
brw-rw---- 1 root disk 259, 2 ноя 30 02:53 /dev/loop0p3
brw-rw---- 1 root disk 7, 1 ноя 30 02:42 /dev/loop1
brw-rw---- 1 root disk 7, 2 ноя 30 02:42 /dev/loop2
brw-rw---- 1 root disk 7, 3 ноя 30 02:42 /dev/loop3
brw-rw---- 1 root disk 7, 4 ноя 30 02:42 /dev/loop4
brw-rw---- 1 root disk 7, 5 ноя 30 02:42 /dev/loop5
brw-rw---- 1 root disk 7, 6 ноя 30 02:42 /dev/loop6
brw-rw---- 1 root disk 7, 7 ноя 30 02:42 /dev/loop7
crw-rw---- 1 root disk 10, 237 ноя 30 02:42 /dev/loop-control
[walhi@b590] $
Для диска, у которого не используется LVM все просто. Монтируем разделы, получаем доступ к файлам.
При использовании LVM нужно немного больше действий. Для начала убеждаемся, что vgscan
находит volume group. Но учтите, что при одинаковых именах групп будут проблемы.
Командой sudo lvscan
можно посмотреть разделы. Если вы не обнаруживаете разделы из образа, то группа может быть отключена. Как её включить — дополню потом, если не забуду. Пишу статью в 3 ночи для будущего себя. Если кому оно нужно, но ещё не описано — пинайте в комментариях.
[walhi@b590] $ sudo lvscan
ACTIVE '/dev/backup-vg/root' [236,25 GiB] inherit
ACTIVE '/dev/backup-vg/swap_1' [976,00 MiB] inherit
ACTIVE '/dev/main-vg/root' [<64,73 GiB] inherit
ACTIVE '/dev/main-vg/swap_1' [3,88 GiB] inherit
ACTIVE '/dev/main-vg/home' [377,77 GiB] inherit
Когда увидели разделы — можно монтировать и получать доступ к файлам.
Иногда разделы автоматически не активируются и в lvscan
выводит следующую информацию:
walhi@ryzen:/media/walhi/TB$ sudo lvscan
ACTIVE '/dev/ryzen-vg/root' [<230,95 GiB] inherit
ACTIVE '/dev/ryzen-vg/swap_1' [976,00 MiB] inherit
inactive '/dev/stat-vg/root' [<221,63 GiB] inherit
inactive '/dev/stat-vg/swap_1' [976,00 MiB] inherit
Почему это происходит, когда имена разные — не знаю. Но активировать вручную сейчас ничего не мешает. Для этого используется команда lvchange -a y <раздел>
. В данном случае автодополнение по кнопке Tab не работает.
walhi@ryzen:/media/walhi/TB$ sudo lvchange -a y /dev/stat-vg/root
walhi@ryzen:/media/walhi/TB$ sudo lvscan
ACTIVE '/dev/ryzen-vg/root' [<230,95 GiB] inherit
ACTIVE '/dev/ryzen-vg/swap_1' [976,00 MiB] inherit
ACTIVE '/dev/stat-vg/root' [<221,63 GiB] inherit
inactive '/dev/stat-vg/swap_1' [976,00 MiB] inherit
Ну и следующий уровень, когда LVM зашифрован. Как раз мой случай. Тут после losetup нужно ввести пароль от контейнера. Делается это следующей командой.
cryptsetup luksOpen /dev/loop<нужный_раздел> crypt2
После ввода пароля vgscan
должен будет найти volume group. А что делать далее уже описано.
После работы нужно освободить loop
устройство. Для этого сначала отключаем контейнер командой cryptsetup luksClose <имя>
, после освобождаем устройство losetup -d /dev/loop<N>
.
Статейка получилась не совсем логичная, сложная для новичков. Но это скорее заметка для себя, чтобы потом полчаса не вспоминать и не гуглить команды.