Преобразование ext4 в btrfs: если я случайно отключу питание системы во время преобразования, потеряю ли я данные?

Преобразование ext4 в btrfs: если я случайно отключу питание системы во время преобразования, потеряю ли я данные?

Я хочу преобразовать блочное устройство 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, то это займет больше времени.

Связанный контент