Я хочу преобразовать блочное устройство ext4 объемом 3 ТБ, заполненное на 80%, в btrfs и оценить риски, связанные с этим процессом.
Если во время преобразования я случайно отключу питание системы, потеряю ли я данные?
За два года работы с btrfs файловая система показала себя лишь умеренно безопасной во время аварий с отключением электроэнергии — она уничтожала часть моих данных, если питание отключалось два или более раз подряд.
решение1
Потеря данных вероятнее всего происходит из-за сбоя операции записи контроллера на диск, при этом возможно повреждение всей таблицы разделов диска.
Как уже было сказано, предварительно сделайте резервную копию, но сама операция преобразования спроектирована так, что НИКАКИЕ ИСХОДНЫЕ ДАННЫЕ не затрагиваются. Btrfs делает снимок исходной версии FS и использует свободные блоки для выполнения дальнейших операций.
Если вы создадите новую файловую систему ext4 на разделе размером 100 ГБ и запустите
#df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 99G 60M 94G 1% /ext4convert2btrfs
затем размонтируйте и запустите преобразование:
#unmount /ext4convert2btrfs
#btrfs-convert /dev/sda3
creating btrfs metadata.
creating ext2fs image file.
cleaning up system chunk.
conversion complete.
затем снова смонтируйте, запустите df, и вы увидите что-то вроде этого:
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 100G 1.8G 66G 3% /ext4convert2btrfs
Остальное пространство используется основным снимком FS. Только системный администратор может решить, когда безопасно удалить снимок и разрешить перезапись исходных данных.
Чтобы освободить свободное место и сделать преобразование постоянным, выполните следующие действия:
#cd /ext4convert2btrfs
#btrfs subvol delete ext2_saved
#btrfs balance start /ext4convert2btrfs
#df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 100G 544K 99G 1% /ext4convert2btrfs
Вот и все :)
решение2
Возможно, что ваши данные могут быть повреждены в случае отключения питания во время преобразования разделов. Для этого всегда рекомендуется делать резервную копию перед выполнением таких операций.
Однако Btrfs-convert имеет -r
переключатель для отмены преобразования, так что вы можете прибегнуть к нему deconvert
в случае, если вам придется отменить его. Также я нашел один отчет пользователя, что восстановление обычно происходит намного быстрее в одном из ответов здесь:https://askubuntu.com/questions/256652/ext4-to-btrfs-conversion-how-long-it-take-space-requirements
Конвертация относительно быстрая, поэтому не стоит ожидать, что на ее выполнение уйдут дни. Недавно я конвертировал раздел размером ~20 Гб на SSD-диске, и это заняло всего несколько секунд. Если предположить, что эти 3 Тб данных находятся на HDD, то это займет больше времени.