en ru
SF.net Project Page Download Forums

anyconvertfs

Section: Maintenance Commands (8)
Updated: 19 Jan 2008
Index
 

НАЗВАНИЕ

anyconvertfs - конвертирует файловую систему.  

СИНТАКСИС

anyconvertfs [--tmpdir directory] [--blocksize blocksize] [-f] [--dry]
   [--inodetable inodetable] [--color|--no-color] [--label label] 
   [--debug] [--dont-delete-it] [--success-delete-it]
   [--dontstop] [--pause seconds] [--use-anyfs|--use-anyfuse] [--] 
    device [source_fs] destination_fs

 

ОПИСАНИЕ

Этот скрипт вас напоит, накормит и спать уложит.. Да, о чём это я?

На самом деле этот скрипт постарается сделать всё от него зависящее, чтобы вам не пришлось читать эту страницу руководства (и другие) до конца.

Я вам скажу как его можно запустить:

$ anyconvertfs /dev/hda1 xfs

Где /dev/hda1 -- ваше устройство, а xfs -- файловая система, в которую нужно сконвертировать текущую ФС устройства. Всё. Остальное вам расскажет скрипт. Дальше можете не читать, если вам это не интересно.

anyconvertfs сконвертирует файловую систему устройства за 5 шагов, причём 2 из них в большинстве случаев будут пропущены. Опишем эти шаги последовательно.

Шаг 1. Построение внешней таблицы инф.узлов (при помощи build_it).
Этот шаг может быть пропущен только в том случае, если вы конвертируете из anyfs используя существующую таблицу инф.узлов.

Шаг 1a. Спасение (копирование) файлов невыровненных по границам блоков.
Этот шаг выполняется при конвертировании из ФС ntfs-3g для копирования сжатых/шифрованных файлов на уровне ФС.

Шаг 2. Без операционное (проверка свободного места) изменение размера блока anyfs (при помощи reblock).
Этот шаг будет выполнен, если размер блока для новой ФС не равен размеру блока старой ФС. reblock при этом может сообщить о нехватке места на диске. В этом случае скрипт предложит освободить место для новой файловой системы.

Шаг 3. Изменение размера блока anyfs (при помощи reblock).
Этот шаг также будет выполнен лишь при необходимости. При этом при увеличении размера блока это первый шаг, на котором старая файловая система может быть уничтожена, о чём предупредит скрипт и предложит нажать Ctrl+C, если вы вдруг передумали.

Шаг 4. Без операционное (проверка свободного места) построение новой файловой системы (при помощи build_e2fs/build_xfs).
Этот и следующий шаг будет пропущен при конвертировании в anyfs (для которой нужна лишь внешняя таблица инф.узлов). На этом шаге утилита построения ФС также может сообщить о нехватке места на устройстве, и скрипт предложит его освободить в этом случае.

Шаг 5. Построение новой файловой системы (при помощи build_e2fs/build_xfs).
Это шаг на котором старая файловая система уничтожается наверняка, поэтому (если она не была уже уничтожена на пятом шаге), скрипт может предложить вам нажать Ctrl+C, если вы вдруг передумали.

Шаг 5a. Перемещение спасённых файлов на новую файловую систему.
Этот шаг также как и 1a выполняется только при конвертировании из ntfs-3g.

anyconvertfs не обязательно, чтобы файловая система была размонтирована -- он всё равно будет её монтировать. Если ФС уже смонтирована он воспользуется этим (за исключением случая конвертирования из ntfs-3g), а заодно будет знать какие опции монтирования использовать.

Кроме того, если файловая система была смонтирована, то anyconvertfs также смонтирует и новую файловую систему в ту же точку монтирования.         
 

ОПЦИИ

--tmpdir directory
Директория для временных файлов (по умолчанию "/tmp")
--blocksize blocksize
Размер блока для новой файловой системы. По умолчанию -- 4096.
-f
Потребуется при конвертировании образа, а не блочного устройства.
--dry
"Сухой" запуск. Вывести параметры конвертирования, ничего не делать.
--inodetable inodetable
Таблица инф.узлов -- нужна лишь при существовании готовой таблицы инф.узлов, для конвертирования из anyfs.
--color
Включить цветовую подсветку (по умолчанию при выводе на терминал).
--no-color
Выключить цветовую подсветку (по умолчанию при выводе в поток или файл).
--label label
Метка для новой файловой системы. По умолчанию скрипт постарается сохранить метку старой файловой системы.
--debug
Отладка. Включает режим вывода основных команд конвертирования (build_it, reblock, build_xfs, build_e2fs)
--dont-delete-it
Не удалять таблицу инф.узлов ни при каких условиях. По умолчанию таблица инф.узлов удаляется в случае, если процесс конвертирования прервался на шаге до первого шага, разрушающего старую ФС.
--success-delete-it
Удалять таблицу инф.узлов при успешном завершении всех шагов конвертирования. По умолчанию таблица инф.узлов удаляется в случае, если процесс конвертирования прервался на шаге до первого шага, разрушающего старую ФС.
--dontstop
Не останавливаться. По умолчанию скрипт предлагает вам внимательно проверить основные параметры конвертирования прежде чем начать и ждёт нажатия "Enter". Эта опция поможет заблаговременно сказать скрипту: "я уверен".
--pause seconds
Пауза в секундах прежде чем разрушить старую файловую систему. По умолчанию скрипт даёт вам шанс в течении семи секунд нажать Ctrl+C, чтобы сохранить старую файловую систему.
--use-anyfs
Использовать anyfs модуль ядра в качестве драйвера anyfs (по умолчанию при его наличии)
--use-anyfuse
Использовать anyfuse модуль FUSE в качестве драйвера anyfs (по умолчанию при отсутствии модуля ядра anyfs)
--
Конец необязательных опций
device
Устройство (или образ) для конвертирования ФС.
source_fs
Исходная файловая система. По умолчанию скрипт постарается примонтировать устройство без указания mount опции -t, чтобы узнать исходную ФС, или узнает файловую систему от mount, если устройство уже примонтировано. Файловую систему ntfs-3g в любом случае придётся указать, так как скрипт такую смонтированную ФС будет видеть как fuse или fuseblk.
destination_fs
Файловая система назначения. На данный момент поддерживаются ext2/ext3/xfs/any. При указании файловой системы anyfs скрипт создаст таблицу инф.узлов и при необходимости изменит размер блока на ней. При этом реальной ФС на устройстве создано не будет.

 

СРАВНЕНИЕ С ДРУГИМИ УТИЛИТАМИ

В сравнении с другими закрытыми утилитами anyconvertfs имеет следующие преимущества:

+1. Открытость. Вы наверняка знаете что она делает.

+2. Вы знаете что делать, если что-то пойдёт не так. Во всяком случае при применении утилит из anyfs-tools должен остаться файл внешней таблицы инф.узлов с помощью которого и драйвера anyfs можно считать файлы, даже при повреждении файловой системы. В конце концов anysurrect -- тут, рядом.

+3. Конвертирование из ISO9660 :-). На самом деле это скорее побочный эффект, но anyconvertfs не будет долго думать даже, если в качестве входящей файловой системы вы ему подсунете ISO-образ.

Недостатки в сравнении с другими закрытыми утилитами:

-1. Пока ещё узкий список файловых систем назначения.

-2. Может быть скорость. Так как в целом метод для каждого конвертирования остаётся одним и тем же, мы не можем использовать какие-либо возможные похожести структур файловых систем.


Преимущества перед открытой convertfs (http://tzukanov.narod.ru/convertfs/):

+1. Более широкий список исходных файловых систем. convertfs при всей гениальности реализуемой идеи имеет один существенный недостаток -- драйвер исходной файловой системы не может быть только для чтения, нужна возможность записи(!), более того записи с поддержкой sparse-файлов. Таким образом convertfs не сможет сконвертировать даже из vfat.

+2. Скорость. В сравнении с convertfs anyconvertfs должен быть быстрее (в разЫ), т.к. ему не требуется копировать всё дерево файловой системы.

+3. Документация. Документация у convertfs оставляет желать лучшего.

Кроме того проведя один простой тест (конвертирование образа в 607 Мб), я обнаружил что convertfs покоцал два файла. Автору был отправлен баг-репорт, но он так и не ответил.

Недостатки перед открытой convertfs:

-1. Пока ещё узкий список файловых систем назначения.

-2. Размер convertfs действительно мал!

?3. Идея у anyfs-tools несколько более простая и очевидная.


Преимущества перед вседоступным cp && mkfs && cp:

+1. Размер дополнительно используемого пространства. У пользователя редко находится место чтобы спокойно скопировать целый раздел..

+2. Скорость. cp && mkfs && cp -- это медленнее чем даже convertfs -- двойное копирование!

Недостатки перед вседоступным cp && mkfs && cp:

-1. Пока ещё узкий список файловых систем назначения.

-2. cp && mkfs && cp не требует поддержки драйвером исходной файловой системы даже вызова ioctl FIBMAP. Достаточно только чтения!

-3. Надёжность cp && mkfs && cp не знает границ.. Если только не битый промежуточный раздел.

 

ПЛАНЫ

Основные планы развития утилиты связаны с расширением списка файловых систем назначения.

Скорее всего следующей реализуемой файловой системой назначения станет JFS.

 

ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ

Для конвертирования устройства /dev/hda1 в файловую систему xfs наберите
# anyconvertfs /dev/hda1 xfs

Для конвертирования образа /path/image в ext3fs:
# anyconvertfs -f /path/image ext3

Конвертирование /dev/sda1 в ext2fs с размером блока 2048:
# anyconvertfs --blocksize 2048 /dev/sda1 ext2

Конвертирование /dev/hdb2 в xfs с меткой "Белая метка":
# anyconvertfs --label "Белая метка" /dev/hdb2 xfs

 

АВТОР

Николай Кривченков aka unDEFER <undefer@gmail.com>

 

СООБЩЕНИЯ ОБ ОШИБКАХ

Сообщения о любых проблемах с применением пакета anyfs-tools направляйте по адресу: undefer@gmail.com

 

ДОСТУПНОСТЬ

последнюю версию пакета вы можете получить на сайте проекта: http://anyfs-tools.sourceforge.net

 

СМ. ТАКЖЕ

anyfs-tools(8), build_it(8), reblock(8), build_e2fs(8), build_xfs(8), anyfs(8), anyfuse(8)


 

Index

НАЗВАНИЕ
СИНТАКСИС
ОПИСАНИЕ
ОПЦИИ
СРАВНЕНИЕ С ДРУГИМИ УТИЛИТАМИ
ПЛАНЫ
ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ
АВТОР
СООБЩЕНИЯ ОБ ОШИБКАХ
ДОСТУПНОСТЬ
СМ. ТАКЖЕ

This document was created by man2html (from man 1.5o1), using the manual pages.
Time: 21:52:22 GMT, August 16, 2008
SourceForge.net Logo Valid HTML 4.0 Transitional