Як зробити знімок btrfs?


22

Мій / домашній розділ складається з цілого фізичного диска. Він відформатований як btrfs. Я хочу зробити це. Мене бентежить, зокрема, з приводу іменування підтонів.

Мені відомо, що є подібні запитання, але, схоже, кожне подібне запитання задає щось інше, ніж я задаю (а вони старші, що означає, ймовірно, застарілі, враховуючи швидкий розвиток btrfs). Наприклад, відповідь на це питання , мабуть, не є відповіддю на моє запитання, тому що мій / домашній розділ є окремим томом, а сторінка man для 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"  

громада вирішить про репо ...
Одна нуль

Відповіді:


19

Яка правильна команда для створення знімка мого домашнього розділу на Ubuntu 12.04?

Враховуючи той факт, що home знаходиться на розділі btrfs і він монтується як / home, правильна команда:

sudo btrfs subvolume snapshot /home/ /home/<any_name_you_choose_for_the_snapshot>

Ось мої результати:

Перш ніж запустити команду сьогодні:

$ btrfs subvolume list /home  
ID 256 top level 5 path @home  
ID 257 top level 5 path @home/@snapshot_20120521_1936

Команда:

$ sudo btrfs subvolume snapshot /home/ /home/@snapshot_20120611_1307  
Create a snapshot of '/home/' in '/home/@snapshot_20120611_1307'

Після запуску команди сьогодні:

$ btrfs subvolume list /home  
ID 256 top level 5 path @home  
ID 257 top level 5 path @home/@snapshot_20120521_1936  
ID 258 top level 5 path @home/@snapshot_20120611_1307

Єдине питання цього методу полягає в тому, що знімки відображаються, коли ви ls (список) / home.

Для спільноти Ubuntu оновлено рішення для цього. Ось:

Як працювати зі знімками в макеті Ubuntu

Для роботи зі знімками / або / home в макеті Ubuntu дуже зручно монтувати файлову систему btrfs в окремому місці та працювати з верху дерева btrfs, а не з змонтованих підпунктів. <- це рішення. На жаль, це не зручно .

sudo mount /dev/sdX# /mnt

Для створення знімка використовуйте той самий синтаксис, який я використовував вище:

sudo btrfs subvolume snapshot /mnt/@ /mnt/@_snapshot

Це створить знімок @ subvolume з назвою @_snapshot, розташований також у верхній частині дерева btrfs. Оскільки він знаходиться у верхній частині дерева, він не відображатиметься при переліку файлів у змонтованому томі.

Щоб повернутись до знімка, просто потрібно змінити його ім'я на ім’я, яке монтується та перезавантажиться ubuntu. Ось як змінити назву:

sudo mv /mnt/@ /mnt/@_badroot
sudo mv /mnt/@_snapshot /mnt/@

Щоб видалити знімок, використовуйте:

sudo btrfs subvolume delete /mnt/@_badroot

Знімки btrfs самі по собі є підпунктами та є автономними, видаляючи старий @ subvolume на зразок цього добре, за умови, що у нас є заміна.

ПРИМІТКА: Команда btrfs-tools set-defaultпорушить макет Ubuntu.


Так ти там прав? Тепер ви маєте змогу монтувати свої знімки.
турбо

Я насправді ще не намагався їх встановити. І я щойно побачив відповідь psusi про пакет apt-btrfs-snapshot. Це виглядає цікаво, правда?
MountainX для Моніки Селліо

Так, я це згадав і в третьому пункті. Вибачте, треба було це вказати;)
turbo

Я пропоную вам позначити своє рішення як відповідь тоді.
турбо

Існує рішення знімків, які відображаються, коли ви / вдома. Я зараз редагую свою відповідь інформацією.
MountainX для Моніки Стейліо

11

Перш за все добре:

  • Назва підтомника, який ви дивитесь, @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як домашню, оскільки він встановлений таким чином. Це особливо важливо, якщо ви хочете відкотитись: НЕ слід використовувати 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-знімок-обертання - один із прикладів. Використовуйте їх з обережністю, оскільки жоден з них насправді не дозрів і не набрав достатньої тяги, тобто вони дуже добре можуть містити помилок.


Я отримую помилку:$ sudo btrfs subvolume snapshot @home home/@snapshot_20120611_1257 ERROR: error accessing '@home'
MountainX для Моніки Стейліо

Також у мене ще не було успіху btrfs device scan. Будь-який варіант, в тому числі з використанням sudoдає помилку «Помилка: не вдалося перевірити пристрій" / DEV / SDX "» , де Х являє собою будь-який допустимий ім'я , такі як, a1, B, і т.д.
MountainX для Моніка Cellio

@OneZero: У мене поки немає всіх відповідей, але я зрозумів правильну команду, щоб створити знімок мого домашнього розділу на Ubuntu 12.04, і я надав цю інформацію як відповідь нижче.
MountainX для Моніки Селліо

це справді дивно. Я перевірив свій btrfs розділ, btrfs sub snap @ /mnt/randomі він працював на мене. Потім я знову був у / mnt, де було встановлено @. Вибачте за плутанину
турбо

@turbo: Ваша відповідь була дуже корисною. Не потрібно вибачатися за спробу допомогти. Навіть сторінки Ubuntu незрозумілі. Ми все зрозуміємо врешті-решт.
MountainX для Моніки Селліо

10

Встановіть 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 бачить речі проти того, як ядро ​​бачить речі, на що впливають параметри монтування (конкретно субвол = аргумент).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.