Можно ли конвертировать btrfs в ext4 без потери данных? У меня очень низкая скорость операций чтения / записи на btrfs.
Я просто перехожу к имеющимся инструментам, а не к опыту или документации. Возможно, вы захотите протестировать это с помощью раздела (даже просто образа), который вы не против потерять, если всё пойдёт не так. Не пытайтесь это сделать, не делая резервную копию.
btrfs-convert
имеет функцию отката для отмены преобразования. Я не уверен, работает ли это для разделов, которые не были преобразованы в btrfs
с помощью btrfs-convert
.
Начните с размонтирования файловой системы. Если это необходимо для системы, загрузитесь на LiveCD.
Установите btrfs-tools
sudo apt-get install btrfs-tools.
.
Сбросить преобразование
sudo btrfs-convert -r /dev/sdXn
Я сделал это, используя систему с мультизагрузочными дистрибутивами (Ubuntu на ext4, Xubuntu на btrfs) ). Запуская Ubuntu, я взял домашний раздел Xubuntu btrfs и заархивировал его с помощью fsarchiver. Затем я смог восстановить его, снова используя fsarchiver, в другой раздел и указать тип файловой системы ext4. Похоже, это сработало.
Еще в Ubuntu я смонтировал корневой раздел Xubuntu в / mnt и отредактировал / mnt / @ / etc / fstab, чтобы изменить монтирование для / home так, чтобы он указывал на новый раздел ext4, изменив как UUID, так и тип fs. и удаление данных подтома. Я сохранил файл и перезагрузился в Xubuntu.
Произошла ошибка при загрузке, и загрузка была остановлена. Ошибка заключалась в том, что у меня был другой раздел, который я хотел смонтировать в каталог ~ / Documents, который не удался. Я решил исправить проблему вручную. Оказалось, что мой корневой раздел смонтирован как ext4, но когда я выполнил команду list, я получил
#ls /home
@home
Таким образом, исходная структура подтома btrfs все еще присутствовала в файловой системе ext4. Я ввел команду
mount --bind /home/@home /home
, затем нажал ctrl-D, чтобы продолжить загрузку, и Xubuntu продолжил загрузку, и все прошло нормально. Я еще этого не сделал, так как все еще нахожусь в начальной загрузке, но уверен, что могу поместить эту команду bind в свой файл fstab. Или, возможно, я мог бы оставить информацию о подтоме в записи fstab, я не знаю.
Но вместо этого (это не по теме) я сделаю более зрелый экземпляр / home (ext4 ) для Xubuntu с другого компьютера и используйте его. Я уже доказал, что это сработает.
Насколько я знаю, вы не можете конвертировать btrfs ни в какую другую файловую систему.
Решение, которое работает во всех случаях, - это, конечно, скопировать все из корневого раздела в каталог на другом разделе (при условии, что у вас достаточно свободного места), переформатировать /
как ext4
, скопируйте обратно. Я только что сделал это и обнаружил несколько проблем, поэтому я подумал, что напишу небольшое руководство:
/ mnt
для реального корневого раздела , и / dest
для раздела, служащего временным местом назначения) / var
, / opt
, / root
...). Лучше всего, вероятно, выполнить обычный chroot
танец ( mount --bind / dev / mnt / dev; mount --bind / sys / mnt / sys; mount --bind / proc / mnt / proc; chroot / mnt
), а затем mount -a -t btrfs
, чтобы все подтомы, описанные в / etc / fstab
, были смонтированы. cp -a / mnt / dest
umount /mnt[1239 visiblemkfs.ext4 / dev / * the_root_device *
mount / dev / * the_root_device * / mnt
cp -a / dest / mnt / * / mnt
А теперь (в chroot) don ' Не забудьте
/ etc / fstab
, чтобы удалить все подтомы, изменить тип файловой системы с btrfs
на ext4
и обновить UUID
(см. Вывод blkid
, или переключитесь на метку вроде LABEL = rootfs
после выполнения tune2fs -L rootfs / dev / * the_root_device *
) mkinitrd
и воссоздайте загрузчик (я использую другой дистрибутив, поэтому у меня нет точной команды для этого шага в ubuntu).
Скрестите пальцы и перезагрузитесь.
Наконец, не забудьте очистить копию / mnt во временном месте назначения.