Мой / домашний раздел состоит из целого физического диска. Он отформатирован как btrfs. Я хочу сделать снимок. Я в замешательстве, в частности, в отношении имен субобъема.
Я знаю, что есть похожие вопросы, но каждый похожий вопрос, похоже, задает что-то отличное от того, что я спрашиваю (и они старше, что, вероятно, устарело, учитывая быстрое развитие btrfs). Например, ответ на этот вопрос, по-видимому, не является ответом на мой вопрос, потому что мой раздел / home - это отдельный том, а на странице руководства для btrfs показана другая команда для создания моментальных снимков.
другая похожая проблема, нет твердого решения .
кто-то такой же смущенный, как и я, по вопросам именования
Мой вопрос:
Начнем с простого: это правильная команда для создания простого снимка моего домашнего раздела?
btrfs subvolume snapshot /home/@home /home/@home_snapshot_20120421
Я получил действительно смелый и проверил это, и это не работает. Ошибка есть error accessing /home/@home
. Как показано ниже, @home указан в списке.
Я явно запутался в подобъемных именах. Нужно ли использовать их при создании снимков? В некоторых примерах показано, как сделать снимки домашнего использования /home
в качестве параметра источника, но на основе примеров корневых томов мне кажется, что мне нужно использовать /home/@home
.
Будет ли эта команда работать? А если нет, то почему?
btrfs subvolume snapshot /home /home/@home_snapshot_20120421
Это @
просто соглашение об именах? Это имеет смысл вообще?
Вот некоторые результаты, которые могут иметь отношение:
btrfs subvolume list /home
ID 256 top level 5 path @home
Я не уверен, что это значит, точно. При попытке btrfs device scan
выдает ошибку (например, невозможно сканировать устройство / dev / sda1). Моя файловая система не имеет ошибок. Все хорошо.
Вот мои разделы. В ответ на один ответ no / home - не единственный мой раздел btrfs.
/dev/sda1: (boot partition) TYPE="ext2"
/dev/sda2: (root partition) TYPE="btrfs"
/dev/sdb1: (home partition) TYPE="btrfs"
/dev/sdc1: (shared partition) TYPE="btrfs"
/dev/sdc2: TYPE="swap"
Ответы:
Какова правильная команда для создания снимка моего домашнего раздела в Ubuntu 12.04?
Учитывая тот факт, что home находится в разделе btrfs и монтируется как / home, правильная команда:
Вот мои результаты:
Перед запуском команды сегодня:
Команда:
После запуска команды сегодня:
Единственная проблема, связанная с этим методом, заключается в том, что моментальные снимки отображаются при выполнении ls (list) / home.
Вики сообщество Ubuntu было обновлено с решением для этого. Вот:
Как работать со снимками в макете Ubuntu
Чтобы работать со снимками / / / home в макете Ubuntu, очень удобно монтировать файловую систему btrfs в отдельном месте и работать с вершины дерева btrfs, а не из смонтированных подобъемов. <- это решение. К сожалению, это не удобно .
Для создания снимка используйте тот же синтаксис, который я использовал выше:
Это создаст снимок @ подобъекта с именем @_snapshot, расположенного также в верхней части дерева btrfs. Поскольку он находится в верхней части дерева, он не будет отображаться при перечислении файлов в подключенном томе.
Чтобы вернуться к снимку, вам просто нужно изменить его имя на имя, которое Ubuntu монтирует и перезагружает. Вот как можно изменить имя:
Чтобы удалить снимок, используйте:
Снимки btrfs сами по себе являются субобъемами и самодостаточны, удаляя старый @ субобъем, как это хорошо, если у нас есть замена.
ПРИМЕЧАНИЕ. Команда btrfs-tools
set-default
нарушит макет Ubuntu.источник
Хорошо обо всем по порядку:
Имя подсоба, на которое вы смотрите,
@home
как показаноbtrfs subvolume list /home
. Он установлен в/home
. @home - это имя подобъема, также он имеет идентификатор 256, поэтому, скорее всего, только ваш / home форматируется как btrfs.Теперь, чтобы создать снимок @home, вы должны выполнить:
sudo btrfs subvolume snapshot /home/ /home/@home_snapshot_20120421
Подобъем может иметь любое имя. @ - это соглашение Ubuntu во время установки. (Если вы используете
apt-btrfs-snapshot
корневой подобъем, его нужно назвать@
btw.) Вики сообщества настоятельно рекомендует сохранить его@
как root и@home
как home, поскольку он смонтирован таким образом. Это особенно важно, если вы хотите выполнить откат: вы не должны использовать btrfs subvolume set-default (не синтаксис, выделенный целью).Для
btrfs device scan
вас нужно использоватьsudo
.Для удаления подобъема вы можете использовать
sudo btrfs subvolume delete @home_snapshot_20120421
Все BTRFS команда может быть сокращена до тех пор , пока они являются однозначными, так, например ,
sudo btrfs device scan
может быть усечена доsudo btrfs d s
,sudo btrfs dev sc
или что - нибудь между ними.Я надеюсь, что ответил на ваши вопросы. Есть несколько инструментов для регулярного резервного копирования, одним из примеров является btrfs-snapshot-вращение . Используйте их с осторожностью, так как ни один из них не является действительно зрелым или набрал достаточную тягу, то есть они могут содержать ошибки.
источник
$ sudo btrfs subvolume snapshot @home home/@snapshot_20120611_1257 ERROR: error accessing '@home'
btrfs device scan
. Любой вариант, включая использование,sudo
выдает ошибку «ОШИБКА: невозможно сканировать устройство '/ dev / sdX'», где X - любое допустимое имя, такое как a, a1, b и т. Д.btrfs sub snap @ /mnt/random
и он работал для меня. Затем я снова был в / mnt, где @ был установлен. Извините за путаницуУстановите
apt-btrfs-snapshot
пакет и использовать его подкомандыlist
,snapshot
,delete
иset-default
.Это скрипт, который оборачивает команды нижнего уровня
btrfs
. Он работает, сначала монтируя корневую файловую систему btrfs где-нибудь. Под этим я подразумеваю реальный корень, а не тот,/@
который обычно монтируется как/
. Другими словами, вам нужно запустить ,mount /dev/sda1 /mnt
так что вы можете просматривать подобъемов , которые будут перечислены в качестве/mnt/@
,/mnt/@home
и любые другие , которые Вы создали. Оттуда вы можетеbtrfs subvolume snapshot /mnt/@home @snapshot-today
, который создаст снимок/@home
имени/@snapshot-today
. Сравните это с запускомbtrfs subvolume snapshot /home /home/@snapshot_today
, который вместо этого создает снимок как дочерний элемент/@home
, следовательно, он появляется, когда выls /home
и его настоящее имя/@home/@snapshot-today
.Откат снимка - это просто операция переименования
mv /mnt/@home @backup ; mv /mnt/@snapshot-today @home
. В следующий раз при загрузке, когда он идет к горе/@home
в/home
, он найдет снимок.Немного сложно обернуть голову, потому что вы должны иметь в виду разницу между тем, как btrfs видит вещи, и тем, как ядро видит вещи, на что влияют параметры монтирования (в частности, аргумент subvol =).
источник