Сначала я клонировал свой существующий жесткий диск, так что теперь у меня есть две точные копии. Теперь я хотел бы настроить RAID1 с ними, но избегая перезаписи добавленного диска, поскольку у меня нет другого хранилища для резервных копий, и я не хочу рисковать, имея только одну копию.
Обычная процедура добавления /dev/sdb
из /dev/sda
без конфигурации RAID вообще и из, /dev/sda
если я не ошибаюсь, будет выглядеть так:
btrfs device add /dev/sdb /
btrfs balance start -dconvert=raid1 -mconvert=raid1
Но в руководстве по btrfs-device сказано:
Если применимо, перед добавлением устройства выполняется операция полного удаления устройства (TRIM). Устройство с существующей файловой системой, обнаруженное blkid(8), не позволит добавить устройство и должно быть принудительно выполнено. Операция выполняется мгновенно и не влияет на существующие данные.
Как мне это выполнить?
решение1
Побайтовое клонирование btrfs очень опасно, прочтите это:
https://btrfs.wiki.kernel.org/index.php/Gotchas#Копии_устройств_на_блочном_уровне
Единственный способ преобразовать существующую btrfs в btrfs RAID1 — выполнить команды, которые вы упомянули в своем вопросе, но перед этим вам придется вручную стереть один из дисков ( wipefs -a /dev/sdX
), поскольку btrfs, которую вы хотите расширить, должна быть смонтирована, и вы никогда не должны пытаться монтировать ее, пока блочное устройство с копией этой btrfs видимо ядру.
Если вы случайно сделали это в какой-то момент, возможно, вы повредили либо одну, либо обе копии, поэтому по крайней мере запустите очистку и проверку только для чтения на btrfs, которую вы хотите расширить (конечно, отключите другой диск от системы для этого).
Если у вас >50% свободного места в Btrfs, вы можете перетасовать их так, чтобы при конвертации всегда сохранялось не менее 2 копий на 2 устройствах, но с Btrfs полного диска это еще сложнее по сравнению с разделами.