"Fossies" - the Fresh Open Source Software archive 
anyconvertfs [--tmpdir directory] [--blocksize blocksize] [-f] [--dry] [--inodetable inodetable] [--color|--no-color] [--label label] [--debug] [--dont-delete-it] [--success-delete-it] [--dontstop] [--pause seconds] [--] 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 (´ля к¾т¾р¾й ½уж½° лишь в½еш½яя т°±лиц° и½ф.у·л¾в).
к¾½вертир¾в°½ии в anyfs (´ля к¾т¾р¾й Н° эт¾¼ ш°ге
утилит° п¾стр¾е½ия ФС т°кже ¼¾жет с¾¾±щить ¾
½ехв°тке ¼ест° ½° устр¾йстве, и скрипт пре´л¾жит
ег¾ ¾св¾±¾´ить в эт¾¼ случ°е.
Ш°г 5. П¾стр¾е½ие
½¾в¾й ф°йл¾в¾й систе¼ы (при п¾¼¾щи build_e2fs/build_xfs).
†т¾ ш°г ½° к¾т¾р¾¼ ст°р°я ф°йл¾в°я систе¼° у½ичт¾ж°ется
½°вер½як°, п¾эт¾¼у (если ¾½° ½е ±ыл° уже у½ичт¾же½°
½° пят¾¼ ш°ге), скрипт ¼¾жет пре´л¾жить в°¼ ½°ж°ть
Ctrl+C, если вы в´руг пере´у¼°ли.
Ш°г 5a. Пере¼еще½ие
сп°сё½½ых ф°йл¾в ½° ½¾вую ф°йл¾вую систе¼у.
†т¾т ш°г т°кже к°к и 1a вып¾л½яется т¾льк¾ при
к¾½вертир¾в°½ии и· ntfs-3g.
anyconvertfs ½е ¾±я·°тель½¾, чт¾±ы ф°йл¾в°я систе¼° ±ыл° р°·¼¾½тир¾в°½° -- ¾½ всё р°в½¾ ±у´ет её ¼¾½тир¾в°ть. Если ФС уже с¼¾½тир¾в°½° ¾½ в¾сп¾ль·уется эти¼ (·° исключе½ие¼ случ°я к¾½вертир¾в°½ия и· ntfs-3g), ° ·°¾´½¾ ±у´ет ·½°ть к°кие ¾пции ¼¾½тир¾в°½ия исп¾ль·¾в°ть.
Кр¾¼е т¾г¾, если
ф°йл¾в°я систе¼° ±ыл° с¼¾½тир¾в°½°, т¾ 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.
Для к¾½вертир¾в°½ия ¾±р°·°
/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