28.10.2024 14:54
После того, как я чуть не потерял системный диск, я все же решил бекапить его не только частями, но и образ диска отдельно и целиком. Благо, файловая система позволяет это делать.
Понятное дело, что можно делать снимок, выключая компьютер, а можно и вообще просто сделать dd, скопировав все на ходу, но есть некоторая уверенность, что второй вариант рано или поздно начнет генерировать убитые образы, а первые я просто по причине загруженности не будут успевать делать. Итого, надо сделать снапшоты.

Код:
btrfs subvolume snapshot -r / /mnt/@snap
Create readonly snapshot of '/' in '/mnt/@snap'
В итоге моментально появляется директория /mnt/@snap, в которой дублируется содержимое /
Теперь можно зайти в /etc и поудалять там файлы (ну только так, чтобы система не упала), у вас все равно есть копия в снапшоте, откуда их можно будет скопировать.

Для просмотра снапшотов можно использовать команду
Код:
btrfs subvolume list /
ID 729 gen 1474295 top level 5 path mnt/@snap
Если честно не очень понял 729, поскольку руками я на этом диске создавал снапшот в первый раз...

Теперь для того, чтобы этот снапшот можно было куда-то унести, из него надо сделать файлик. Файлик можно много куда передавать, в том числе и по сети, но я сделаю самое простое - файлик на соседнем диске.
Код:
btrfs send /mnt/@snap > /mnt/e/sda3.img
At subvol /mnt/@snap
У меня на 250Гб SSD, заполненный на 89Гб, файлик получился в 50Гб.

И снапшот удаляю. Не забывайте это делать, поскольку снапшоты небесплатные и поддержка истории изменения от снапшота до текущего состояния может достаточно сильно нагрузить как носитель, так и процессор.
Код:
btrfs subvolume delete /mnt/@snap
Delete subvolume 729 (no-commit): '/mnt/@snap'
Чтобы закоммитить изменения, то есть завершить изменения на диске делаем
Код:
btrfs filesystem sync /
И теперь представим, что нам надо файлик обратно замонтировать в снапшот
Код:
btrfs receive /mnt/snapshot < /mnt/e/sda3.img 
At subvol @snap
Соответственно, посмотрим, куда это все попало
Код:
btrfs subvolume list /
ID 730 gen 1474361 top level 5 path mnt/snapshot/@snap
В директорию /mnt/snapshot/@snap

Файлик sda3.img является форматом BTRFS stream и, как я понял, замонтировать его нельзя. Но, учитывая возможности работы btrfs send даже по сети, все это - хорошая идея для бекапов. Однако, если хотите с этим заморочиться чуть сложнее, то лучше, конечно, использовать что-то с поддержкой инкрементальных бекапов, что уже существует в достаточном количестве и ищется в пакетном менеджере по слову btrfs, например, btrbk.

Код:
sudo btrfs send /snapshots/homebckup | ssh <USERNAME>@<REMOTEPC> “sudo btrfs receive /backups/home”
Код:
ssh user@remote_machine 'tar cf - /path/to/remote/file_or_folder | xz -T0' | cat > /path/to/local/destination/file.tar.xz
04.11.2024 15:04
Извините за путаницу, но ваш текст немного сложно понять. Можете ли вы уточнить, что именно вы хотите узнать или прояснить? Например, как создать снапшоты BTRFS, как их использовать или какие команды нужно ввести для работы с ними?
Часовой пояс GMT +3, время: 13:17.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.