Linux: преобразование ext4 в ext3

Зачастую бывает необходимо изменить тип файловой системы, сохранив все ее содержимое. Мне понадобилось преобразовать ext4 в ext3, т.к. OpenSolaris не работает с ext4, а мне нужен доступ к файлам на ext3 разделах. Единственный способ преобразовать ext4 в ext3 — перенести файлы на временный раздел, отформатировать старый раздел в ext3 и перенести файлы обратно.

Намного проще все это сделать с помощью утилиты fsarchiver (есть в SystemRescueCd). Благодаря этой утилите можно перенести содержимое файловой системы вместе с атрибутами файлов и прочей служебной информацией в один архивный файл. Каждый файл копируется блоками, для каждого блока сохраняется CRC, для файла в целом MD5. Утилиту можно использовать в некоторых случаях вместо dd, т.к. она позволяет переносить именно необходимые данные.

Сохраняем содержимое раздела в файл:

fsarchiver -v savefs /путь/к/файлу/backup /dev/sda5


-[00][ 99%][REGFILEM] /etc/profile
-[00][ 99%][DIR ] /etc/xen
-[00][ 99%][REGFILEM] /etc/xen/xmexample.vmx
-[00][ 99%][REGFILEM] /etc/kdc.conf
-[00][ 99%][REGFILEM] /etc/mke2fs.conf
-[00][ 99%][DIR ] /etc/tor
-[00][100%][DIR ] /etc/opengl
Statistics for filesystem 0
* files successfully processed:....regfiles=480420, directories=57399, symlinks=23395, hardlinks=884, specials=796
* files with errors:...............regfiles=0, directories=0, symlinks=0, hardlinks=0, specials=0


Все ок. Теперь восстанавливаем файлы обратно, поменяв файловую систему с ext4 на ext3 (или на что-либо еще, например, reiser):

fsarchiver -v restfs /путь/к/файлу/backup id=0,dest=/dev/sda5,mkfs=ext3


============= extracting filesystem 0 =============
executing [mke2fs -V]…
command [mke2fs -V] returned 0
executing [mke2fs -V]…
command [mke2fs -V] returned 0
executing [mke2fs /dev/sda5 -q -r 1 -b 4096 -I 256 -O has_journal,resize_inode,dir_index,filetype,^extent,^journal_dev,^flex_bg,large_file,sparse_super,^uninit_bg -E stride=32733 ]…



-[00][ 99%][REGFILEM] /etc/kdc.conf
-[00][100%][REGFILEM] /etc/mke2fs.conf
Statistics for filesystem 0
* files successfully processed:....regfiles=480420, directories=57399, symlinks=23395, hardlinks=884, specials=796
* files with errors:...............regfiles=0, directories=0, symlinks=0, hardlinks=0, specials=0
  • +4
  • 12 ноября 2010, 13:11
  • Sergei_T

Комментарии (6)

RSS свернуть / развернуть
+
0
Прикольно. Нужно попробовать виндовый раздел клонировать. Поддержка ntfs заявлена.
avatar

yababay

  • 12 ноября 2010, 16:13
+
0
Вот Это ДА! Круто !
avatar

Markony

  • 12 ноября 2010, 19:45
+
0
а разве классический tar с ключами не может забыкапить с сохранением служебной информации все? то есть создать маленький конвеер, тар \ мкфс \ унтар
avatar

ksandras

  • 12 ноября 2010, 19:46
+
0
Тоже об этом подумал. тар вроде как сохраняет права/атрибуты.
avatar

durman

  • 12 ноября 2010, 20:42
+
0
а жесткие ссылки?
avatar

Sergei_T

  • 12 ноября 2010, 20:47
+
0
Я тоже поначалу хотел съязвить типа «tar уже отменили?», но потом прошел по ссылке на сайт проекта, а также подумал, что вряд ли чувак, способный написать такую прогу, стал бы огород городить, если бы всё решалось через tar.
avatar

yababay

  • 12 ноября 2010, 23:40

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.