LINUX.ORG.RU

Замена WinRAR'а


0

0

Можно ли с помощью свободного софта под GNU/Linux с удобством (а не мучениями) сделать многотомный шифрованный архив с защитой от повреждений? Причём такой, чтобы при знании пароля легко просматривалось оглавление и
можно было бы быстро извлечь любой нужный файл (в смысле - извлечение за минуту файла 1МБайт из архива размером 50 ГБайт, содержащего 100 000 файлов, на P4 2000 МГц)?

7-zip попробуй

nu11 ★★★★★
()

>многотомный

split

>шифрованный


mcrypt, gpg ..

> защитой от повреждений

тоже что-то было

>можно было бы быстро извлечь любой нужный файл (в смысле - извлечение за минуту файла 1МБайт из архива размером 50 ГБайт, содержащего 100 000 файлов, на P4 2000 МГц)


solid отпадает...
из за размера zip тоже


7zip вашим критериям не соответствует полностью. Жмите Rar for Linux

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

Спасибо за наводку на mcrypt, давно хотел такую штуку :-)

Получается, что в принципе задача решаема длинными конвеерами из
tar + bzip2 + vdm_fec + mcrypt + split, но это только если выкинуть из условий задачи лёгкий поиск и быстрое извлечение любого файла. Да и проблемы с большими файлами возможны: по крайней мере vdm_fec пока 32-разрядный.

> Жмите Rar for Linux

А у него разве всё в порядке с кириллицей? По крайней мере на каких-то версиях WinRAR под Wine'ом и Rar for Linux кириллицу в архивах понимали по-разному.

Никто, кстати, не использовал DAR (http://dar.linux.free.fr/)? С первого взгляда вроде почти то, что надо.

И ещё: кто-нибудь имел дело с PAR'ом (http://parchive.sourceforge.net/#docs)?

sergey_feo
() автор топика
Ответ на: комментарий от sergey_feo

>WinRAR под Wine

это совершенно не показатель ;)

nu11 ★★★★★
()

архив tar из файлов, сжатых и зашифрованных любым подходящим алгоритмом. А насчет "спасательной" записи... Она хоть раз кому-то помогала? Сия бесполезная фича имела смысл во времена дискет, но ныне он не прибавляет надежности ни на йоту

annoynimous ★★★★★
()

во! par + dar - это именно то, что вам надо. par кстати очень хорош. как-то восстановил инфу с сидюка, процарапанного гвоздём...

sda00 ★★★
()
Ответ на: комментарий от sda00

dargui - этого на первое время за глаза и зв уши хватит :)

sda00 ★★★
()

в wine winrar прекрасно работает

record ★★★★★
()
Ответ на: комментарий от sergey_feo

> vdm_fec пока 32-разрядный.

а это оно где вообще?

> не использовал DAR

почти незаменимая штука для бэкапов, за счет инкрементальности. но что-то не помню я там ничего на тему избыточности.

dmiceman ★★★★★
()
Ответ на: комментарий от sda00

> оно в связке с par просто конфета :)

спасибо, надо глянуть. хотя, честно признаться, избыточность для моих задач несколько избыточна.

dmiceman ★★★★★
()
Ответ на: комментарий от anarquista

> Не пойдёт ли под это дело squashfs?

А к ней можно прикрутить шифровку и ECC, не затратив кучу времени?

>> vdm_fec пока 32-разрядный.

> а это оно где вообще?


Ой, это я зря '_' поставил. Вот оно:
http://freshmeat.net/projects/vdmfec/

Кстати, какая из мордочек к dar кому показалась удобнее: kdar или dargui?

sergey_feo
() автор топика
Ответ на: комментарий от Durp

>PeaZip умеет делать многотомные архивы. Он несвободный, но бесплатный.

PeaZip свободный, написан некромантом на паскале.

linux4ever
()
Ответ на: комментарий от sergey_feo

dargui: "bugs: [...] Most features are unavailable if the version of Dar installed is configured to use a language other than English."

С GUI в СПО почти всегда так :-(

sergey_feo
() автор топика
Ответ на: комментарий от sergey_feo

> kdar

да. во время приступов паранойи, я запускаю именно его что бы бекапы сделать.

dmiceman ★★★★★
()
Ответ на: комментарий от sergey_feo

Ну что ж, начинаю тестировать dar+par под Slackware 12.1.

Первые впечатления.

Сначала про установку.

C dar'ом проблем вроде не было. А вот с par'ом пришлось повозиться.
Началось с того, что dar рассчитан на par2, а у par'а дают скачивать par 1.1. Оказалось, надо брать par2cmdline 0.4. Почему не назвать par 2.4?
Этот par2cmdline 0.4 отказался собираться под моей Слакой. Как выяснилось, ему не понравился GCC 4.2.3 и это общеизвестная проблема. Она в подробностях расписана на bug tracker'е (и Дебиановцы сделали заплатку, но почему-то она до сих пор не вошла в официальную версию). Там же на bug tracker'е (http://sourceforge.net/tracker/index.php?func=detail&aid=1553429&grou...) народ предложил заменить
в файле
reedsolomon.cpp
участки
bool ReedSolomon
на
template <> bool ReedSolomon
Помогло - собралось.

Теперь про использование.
Для начала я решил посмотреть всё как есть, без GUI.
Сразу хочу отметить прекрасную документацию dar'а. Файл Tutorial.html помог быстро войти в курс дела.
dar приятно удивил обстоятельным подходом к ограничениям. Если во многих других утилитах обычно относятся к этому "авось не наткнёмся на переполнения в ближайшем будущем" - то в dar'е всё заранее продумано, просчитано и задокументировано. Чтобы не иметь ограничений по разрядности int в 32 или 64 бита там даже реализован специальный "неограниченный" int - infinint.
В комплекте с dar'ом есть несколько программ. Одна из них - dar_cp. Пока не использовал, но как понял из man'a - это что-то вроде dd_rescue, которую я при надобности использую с vdmfec. Помогает скопировать битый файл, пропустив повреждённые места.

dar умеет жать алгоритмами gzip и bzip2, шифрование - в основном blowfish.

Тестирование и восстановление архива в dar'е почему-то объединены.
Согласно man'у сначала у dar'а указываются команды, затем - опции. Я поначалу перепутал порядок -c и -B. dar молча проигнорировал -B. А должен был выругаться, поэтому и получил соответствующую запись в bug tracker.

Изучать опции par'а не пришлось: им полностью управляет dar.
Главное отличие par'а от vdmfec - это то, что он добавляет ECC (error correction codes) в отдельных файлах, а не делает из незащищённого файла защищённый. Это и достоинство (для доступа к защищённому файлу не надо его раскодировать), и недостаток (при хорошем повреждении файлов с ECC основной побитый файл уже не починить).
vdmfec рассчитан на восстановление файлов, у которых часть данных изменилась, но данные при этом не сместились. То есть если поменять несколько байт - то наверняка восстановит, а если открыть в текстовом редакторе и нажать где-нибудь "Ввод" - то наверняка не восстановит.
Как я понимаю, большинство ошибок как раз относятся к изменению данных, а не к смещению, так что это не очень серьёзный недостаток vdmfec. Тем не менее, достоинство par'а - он у меня смог восстанавить даже файл со смещением данных.

Количество избыточных данных, добавляемых par'ом, можно задавать в процентах. Но не с командной строки dar'а, а редактированием файла dar_par.dcf. Странно, но par не совсем точно слушается этого числа. На маленьких файлах (около 30 кбайт) при заданной избыточности 2% реальная избыточность у меня получалась почти с порядок (килобайт 200, если правильно помню). На больших файлах (несколько мегабайт) избыточность гораздо больше похожа на заданную. Похоже, у par'а есть какое-то ограничение на размер его файлов снизу. Ну да ладно, больше - не меньше :-)

Если использовать просто dar без par'а - то получается файл имя_архива.dar или если несколько секций - файлы имя_архива.номер_секции.dar. Если использовать dar+par - то почему-то обязательно задавать режим разбиения на секции. Получаются минимум (если одна секция) файлы
имя_архива.1.dar,
имя_архива.1.par и
имя_архива.1.volчисло+число.par.
Насколько я понял из описания формата файлов par (http://parchive.sourceforge.net/docs/specifications/parity-volume-spec/articl...), когда файл ...volчисло+число.par - это файл со всякой служебной информацией и ECC, а когда просто .par - только со служебной информацией, без ECC. Сделано вроде бы для дублирования служебной информации.

Да, и нельзя не сказать про быстродействие. Сам по себе dar быстрый, а вот par - относительно медленный.
Я пробовал архивировать около 25 МБайт картинок и всякой ерунды с разными опциями - и вот что примерно получилось со скоростями на Celeron'е-2000 (плюс-минус 5 секунд):

tar + vdmfec - 2s
tar + bzip2 + vdmfec - 35s

dar (без bzip2, без шифровки) - 1s
dar (bzip2=9, без шифровки) - 35s
dar (без bzip2, без шифровки) + par - 50s
dar (bzip2=9, без шифровки) + par - 75s
dar (bzip2=9, шифровка) + par - 75s

Командные строки получились примерно такие:
Заархивировать (сжатие bzip2, шифровка, разбиение на секции, добавление ECC):
dar --create путь/имя_архива --alter=SI --slice размер_секции --bzip2=9 --key blowfish: --fs-root путь/архивируемый_каталог --batch /usr/local/share/dar/samples/dar_par.dcf

Проверить и при побитости исправить зашифрованный архив с ECC:
dar --test путь/имя_архива --key : --batch /usr/local/share/dar/samples/dar_par.dcf

Распаковать в каталог имя_архива зашифрованный архив:
mkdir куда_положить/имя_архива && dar --extract где_лежит/имя_архива --key : --comparison-field=ignore-owner --fs-root куда_положить/имя_архива -B /usr/local/share/dar/samples/dar_par.dcf

Имя архива указывается без расширения.

sergey_feo
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.