Как переименовать подобъем BTRFS?
У меня есть файловая система BTRFS с набором вложенных томов. Все идет нормально. Мне нужно изменить имя подтома, к сожалению, btrfs
Программа не позволяет мне переименовать подобъем. Поиск в Google дал некоторые результаты, один сказал, что я могу просто mv
Другой сказал, что я могу просто snapshot
к новому имени и удалите старый подобъем. Перед тем, как разбить мой раздел и перезагрузить его из резервной копии (он довольно большой), мой вопрос:
- Каков в настоящее время лучший способ переименовать подобъем?
- Это нормально, чтобы просто
mv
это, или это сделает недействительными некоторые внутренние структуры? - Является ли создание нового снимка и удаление старого подсобора способом, или это имеет некоторые недостатки?
Я знаю, что все еще экспериментально, но для моих целей это работало довольно хорошо (пока, и у меня есть дополнительные резервные копии на каждый день).
3 ответа
Просто mv
Это. Это рекомендуемый способ в документации сообщества Ubuntu.
И для дальнейшего разъяснения, почему это правильный способ сделать это, вот цитата из руководства btrfs sysadmin:
моментальные снимки
Снимок - это просто подобъем, который делится своими данными (и метаданными) с некоторым другим подобъемом, используя возможности COW btrfs. После создания [доступного для записи моментального снимка] нет разницы в статусе между исходным подобъемом и новым подобъемом моментального снимка. Чтобы выполнить откат к снимку, размонтируйте измененный исходный подобъем и установите его на место. На этом этапе исходный подобъем может быть удален при желании. Так как снимок является вложенным, снимки снимков также возможны.
Есть несколько важных вещей, чтобы отметить. Наименования:
btrfs Subvolume - независимый контейнер данных inside
файловая система. Представляется в виде каталога существующей ФС. Если вы создадите новый подобъем, он будет пуст, готов к использованию логического блока данных внутри файловой системы. Очень удобно использовать там, где данные должны быть логически разделены, например, разные виртуальные машины или разные клиенты на разных подобъемах. Это позволяет very fast
удаление всего логического блока данных только с помощью команды удаления subvolume.
btrfs Снимок - копия existing
Подобъем со всеми его данными на данный момент сделан. Может использоваться в качестве оперативной резервной копии для возврата настроек или изменений, например, для создания снимка с минимального объема, внесения изменений (ВМ или данные), проверки, если все в порядке, после некоторого льготного периода удалите снимок. Важно отметить: снимки могут быть только для чтения (-r
switch) и, таким образом, может использоваться как блоки приращений изменений FS и, возможно, переноситься в совершенно другую BTRFS!
Текущие (2016-12-30) ограничения BTRFS:
Копирование или перемещение данных между подобъемами, например mv dir1/dataset1 dir_subvolume1/
производит все настоящие операции ввода-вывода для копирования данных в другой подобъем и, в случае перемещения, удаления из исходного. И очень эффективное копирование тонн данных, просто делая ссылки и, таким образом, используя функцию COW в BTRFS:
cp -a --reflink=always dir1/dataset1 dir_subvolume1/
и при необходимости:
rm -rf dir1/dataset1
Только для чтения Снимок Subvolume может быть переименован (перемещен с 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:)
Если вы хотите переименовать корневой том во вложенный подобъем, вам нужно сделать его снимок, а затем выполнить find $ROOT_VOL -xdev -delete
удалить предыдущее содержимое корневого тома. Обратная манипуляция (переименование подобъема в корневой том) не представляется возможной.