Как заменить корневой подтом btrfs полученным снимком состояния?

С sed:

sed '/CCSID/ { s/ CHAR(/ NCHAR(/; s/ VARCHAR(/ NVARCHAR2(/ }' file
  • Первый шаблон ищет строки, содержащие CCSID. Затем вступает в силу часть внутри {...}.
    • s/ CHAR(/ NCHAR(/; заменяет CHAR( (с ведущим пробелом) на NCHAR(.
    • s/ VARCHAR(/ NVARCHAR2(/ и заменяет VARCHAR( на NVARCHAR2(.
1
12.05.2018, 22:14
1 ответ

So how do I replace a fresh writable root subvolume from a received snapshot?

Вы не можете.

В вашем случае верхний -уровень (корневой )подтом (с идентификатором 5 )является /вашей файловой системы Linux; Ничто не может существовать рядом с ним. Как вы обнаружили, btrfs-receiveсоздает подтом -только для чтения, поэтому вам нужно создать подтом для чтения -записи моментального снимка из только одного чтения -, и для этого вам понадобится чтобы иметь возможность создать подтом за пределами /; Следовательно, почему вы не можете заменить подтом верхнего уровня -.

Обратите внимание, что вы сказали:

I have created a readonly snapshot of the fs I want to convert first and started sending it into a subvolume in another fs.

Однако вы создали доступный -только для чтения моментальный снимок подтома , а не файловой системы BTRFS в целом. Я не понимаю, как вы сможете создать снимок верхнего -уровня. Странный.

Лучше всего использовать такой инструмент, как partclone, для резервного копирования всей файловой системы и последующего восстановления из нее. В противном случае вам придется изменить макет подтома с плоского , который у вас есть, на вложенный . С вложенным макетом у вас будет что-то вроде этого:

/ (top-level)
|
|__ /rootfs (subvolume)
|   |
|   _/home
|
|__ /rootfs-backup (read-only subvolume, which you can delete later)
|   |
|   _/home

Вложенный макет дает вам возможность создавать моментальные снимки любого подтома в файловой системе (, кроме верхнего -уровня, который вам в любом случае не понадобится ). Тогда вы просто смонтируете подтом rootfsна /вместо всей файловой системы. Например:mount -t btrfs /dev/sda1 -o defaults,subvol=/rootfs

1
27.01.2020, 23:43

Теги

Похожие вопросы