Як перейменувати підтомник BTRFS?


24

У мене є файлова система BTRFS з набором підпунктів. Все йде нормально. Мені потрібно змінити назву підтомника, на жаль, btrfsпрограма не дозволяє мені перейменувати підтомник. Пошук за допомогою Google дав деякі результати, один сказав, що я можу просто mv, а другий сказав, що я можу просто snapshotдо нового імені та видалити старий підпункт. Перш ніж я збію свій розділ і мені доведеться перезавантажити його з резервної копії (він досить великий), моє питання:

  • Який на даний момент найкращий спосіб перейменувати підпункт?
  • Це нормально просто mvце, чи це призведе до недійсності деяких внутрішніх структур?
  • Чи робиться новий знімок і видаляється старий підпункт, який потрібно пройти, чи є у цього деякі недоліки?

Я знаю, що все ще експериментально, але для моїх цілей це працює досить добре (до цих пір, і я маю додаткові резервні копії на кожен день).


1
рада почути, що btrfs працює для вас. Це також добре для мене поки що. Немає проблем.
MountainX для Моніки Селіо

Відповіді:


16

Просто mvце. Це рекомендований спосіб у документації спільноти Ubuntu .

А для подальшого уточнення, чому це правильний спосіб зробити це, ось цитата з посібника щодо системи btrfs sysadmin:

Знімки

Знімок - це просто підтомник, який обмінюється своїми даними (та метаданими) з деяким іншим підпунктом, використовуючи можливості COW btrfs. Після того, як зроблено [записуваний] знімок, немає різниці в статусі між початковим підпунктом та новим підпунктом знімків. Щоб повернутись до знімка, відключіть змінений оригінальний підпункт та встановіть знімок на його місце. На цьому етапі оригінальний підпункт може бути видалений за бажанням. Оскільки знімок є підпунктом, можливі також знімки знімків.


8

слід зазначити кілька важливих речей. Назви:

btrfs Subvolume - незалежна insideфайлова система контейнера даних . Він представлений у вигляді каталогу існуючої ФС. Якщо ви створюєте новий підтомник, він буде порожнім, готовим до використання логічного блоку даних всередині файлової системи. Дуже зручно використовувати там, де дані повинні бути логічно розділені, наприклад, різні VM або різні клієнти в різних підтомниках. Це дозволяє very fastвидалити весь логічний блок даних за допомогою команди просто видалення підпункту

Знімок btrfs - копія existingпідпункту з усіма його даними на даний момент зробленого знімка. Може використовуватися як операційна резервна копія для відновлення налаштувань або змін, наприклад, зробити знімок підгрупу, внести зміни (VM або дані), перевірити, чи все в порядку, після деякого пільгового періоду зніміть знімок. Важливо зауважити: знімки можна читати лише ( -rперемикати) і, таким чином, можуть використовуватися як посилення блоків змін FS і, можливо, передані абсолютно іншим BTRFS!

Поточні (2016-12-30) обмеження BTRFS:

Копіювання або переміщення даних між підтомниками, наприклад, mv dir1/dataset1 dir_subvolume1/створює весь реальний io для копіювання даних в інший підтомник, а в разі переміщення - видалення з оригіналу. І дуже ефективне копіювання тонн даних шляхом створення посилань і, таким чином, використання функції КРС BTRFS:

cp -a --reflink=always dir1/dataset1 dir_subvolume1/

а за потреби:

rm -rf dir1/dataset1

Знімок лише для читання підрозділу може бути перейменований (переміщений mv) на існуючому рівні каталогу, але не може бути перейменований / переміщений на інший рівень підкаталогу. наприклад , mv /btrfs/subvol_snap1 /btrfs/.snaphotsНЕ представляється можливим, виробляє не так багато пояснив помилку: mv: cannot move 'subvol_snap1' to '.snapshots/subvol_snap1': Read-only file system. Щоб мати змогу перемістити такий знімок, потрібно створити новий знімок лише для читання наявного знімка лише для читання до нового бажаного місця, а потім видалити старе:

btrfs sub snap -r /btrfs/subvol_snap1 /btrfs/.snaphots/subvol_snap1
btrfs sub del /btrfs/subvol_snap1

Просто для більш простого життя:

btrfs sub list /btrfs

Сподіваюся, це заощадить багато часу для всіх нових шанувальників btrfs :)


4

Якщо ви хотіли перейменувати том кореня в вкладений підтомник, вам слід зробити його знімок, а потім зробити a, find $ROOT_VOL -xdev -deleteщоб видалити попередній вміст кореневого тома. Зворотна маніпуляція (перейменування підтомника на кореневий том) не здається можливою.

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