У меня есть диск с файловой системой btrfs, который монтируется в корневой каталог.

$ sudo btrfs subvol show  /media/qkiz/Corsair/
/media/qkiz/Corsair is btrfs root

На этом этот рут является снимком.

$ sudo btrfs subvol show  /media/qkiz/Corsair/snapshot/
/media/mkukielka/Corsair/snapshot
    Name:           snapshot
    uuid:           94d5d0fa-aaf4-d84c-b716-d5121accf7a0
    Parent uuid:        -
    Creation time:      2015-12-02 13:31:18
    Object ID:      258
    Generation (Gen):   23
    Gen at creation:    23
    Parent:         5
    Top Level:      5
    Flags:          -
    Snapshot(s):

Я делаю изменения в корневой файловой системе, и теперь я хочу вернуться к снимку. Если я изменяю подобъем по умолчанию:

$ sudo btrfs subvol set-default 258 /media/qkiz/Corsair/

Я могу видеть состояние из снимка, но дисковое пространство все еще используется корневым каталогом. Как удалить корневой каталог и использовать снимок как root??

1 ответ1

1

Чтобы сделать вашу жизнь проще, я бы порекомендовал, чтобы корневой подуровень btrfs (id = 5) использовался только для управления другими подобъемами и моментальными снимками. Не храните много данных в корневом подобъеме и не ссылайтесь на них в сценариях и т.д. Это облегчит вам создание снимков, выполнение отката и т.д.

Например, в fstab:

# Root of btrfs volume. Used for volume management.
# Do not reference /mnt/root-XYZ/ in scripts or software.
LABEL=XYZ /mnt/root-XYZ btrfs noauto,subvolid=5

# Software using data on this subvolume should reference this path:
#     /media/qkiz/Corsair/...
# and NOT /mnt/root-XYZ/corsair/...
#
LABEL=XYZ /media/qkiz/Corsair btrfs noauto,subvol=corsair

(вы бы изменили XYZ на ваш фактический ярлык btrfs)

Реализуйте это, вы можете создать моментальный снимок своего корневого подобъема и назвать его corsair. Вероятно, также сделайте снимок Corsair только для чтения, для целей резервного копирования. Затем удалите файлы из корневого подобъема. Например:

umount /mnt/qkiz/Corsair
mount /mnt/root-XYZ
cd /mnt/root-XYZ
btrfs subvol snap . corsair
btrfs subvol snap -r corsair corsair-YYMMDD

Убедитесь, что corsair-YYMMDD/ содержит ваши важные данные, затем удалите данные из корневого подобъема:

rm -rf ./datafiles....

Наконец, смонтируйте новый подобъем:

mount /mnt/qkiz/Corsair

Вы можете сделать ваш подпункт «корсар» по умолчанию, если вы хотите, но это не является строго необходимым. Это может быть полезно, если это переносной диск, и вы переносите его на другой компьютер с другим fstab. Таким образом, подуровень corsair будет установлен по умолчанию, а не корневой подобъем.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .