<p>В данном примере показано восстановление образа снятого с "криво" записанного диска FreeBSD 6.0.<p><b>1.</b> Находим при помощи гугла rsync-зеркала с интересующими нас образами. Для задачи из примера их список можно увидеть <a href="http://www.freebsd.org/doc/en/books/handbook/mirrors-ftp.htm...здесь</a>.
<p>Выбираем ближайшие зеркала с отметкой rsync напротив адреса:
ftp2.ru.freebsd.org и ftp5.ru.freebsd.org.<p><b>2.</b> Узнаем какие "модули" доступны у выбранных rsync-серверов при помощи команды:
<pre>
rsync -n -vv ftp2.ru.freebsd.org::
</pre>
<p>Ответ - два слова FreeBSD, откуда заключаем, что имя интересующего нас модуля - FreeBSD. Для сервера ftp5.ru.freebsd.org узнать имя модуля таким способом не удастся - этот сервер возвращает в ответ только информацию "рекламного" характера. Пояснения к команде: ключ -n не позволяет утилите rsync загружать ничего; ключ -vv позволяет увидеть на экране больше информации о происходящем; два двоеточия после имени сервера обязательны (можно использовать вместо них rsync:// перед именем сервера, но это длиннее).
<p><b>3.</b> Изучаем расположение каталогов и файлов на сервере:
<pre>
rsync -n -vv ftp2.ru.freebsd.org::FreeBSD/
</pre>
<p>К предыдущей команде добавлено имя модуля и следующий за ним слэш (/). Слэш нужен для указания того, что необходимо отобразить листинг директории, а не ее саму. В результате выполнения команды можно увидеть, что файловая структура (в данном случае) повторяет расположение файлов на FTP-сервере. После чего определяем где лежат искомые образы (листаем интересующие нас каталоги) и продолжаем. К сожалению, у меня не получилось заставить работать ключик --list-only из man rsync и пришлось находить вышеописанный способ методом научного тыка.
<p><b>4.</b> Предположим, что образ диска уже снят, например так:
<pre>
readcd dev=ATA:1,0,0 speed=8 -noerror f=/path/to/6.0-RELEASE-i386-disc1.iso
</pre>
<p>(Подробности в man readcd) И контрольная сумма образа не совпадает с суммой образа с официального веб-сайта.<p><b>5.</b> Восстанавливаем образ командой:
<pre>
rsync --stats --progress -z -vv \
ftp5.ru.freebsd.org::FreeBSD/ISO-IMAGES-i386/6.0/6.0-RELEASE-i386-disc1.iso \
/path/to/freebsd/6.0-RELEASE-i386-disc1.iso \</pre>
<p>Пояснения к команде: -z желателен для сжатия передаваемой информации (действенность не проверял); --stats выводит после окончания подробную информацию о сделанном; --progress отображает процент выполнения текущей задачи.<p><b>6.</b> Убеждаемся, что сумма восстановленного образа совпадает с суммой образа с официального сайта.
<p>Данным методом я восстановил образы дисков с FreeBSD 6.0, записанных при помощи программы Nero добрым человеком с толстым каналом. readcd ругался на эти диски в самом конце каждого из них. Входящий трафик, в моем случае, для обоих дисков составил меньше 1 Mb.
URL:
Обсуждается: http://www.opennet.me/tips/info/977.shtml
огромное спасибо автору!кстати, аналогично "полечил" образ 5.4r:
вначале с помощью md5 -q fbsd5.4-release.iso ; cat
обнаружил что хеши не совпадают с теми что на www.freebsd.org, затем сделал:rsync -n -vv ftp2.ru.freebsd.org::FreeBSD/ISO-IMAGES-i386/5.4/
- посмотрел что на серваке в папке FreeBSD/ISO-IMAGES-i386/5.4/
и в итоге "починил" образ - траффик составил менее 200к:
rsync --stats --progress -z -vv \
ftp2.ru.freebsd.org::FreeBSD/ISO-IMAGES-i386/5.4/5.4-RELEASE-i386-disc1.iso \
./fbsd5.4-release.iso
Воспользовался инструкцией для востановления
Все СУПЕР!
Спасибо
Спасибо! Отличная хаутушка.
А если смещения поехали (не хватает допустим одного байта где-нибудь в начале файла)? rsync не подавится?
>А если смещения поехали (не хватает допустим одного байта где-нибудь в начале
>файла)? rsync не подавится?не подавится, разработчики учли, что rsync'у на блюдечке с голубой каемочкой тепличные условия не принесут
помогло но надо опцию -crsync --stats --progress -z -c -vv mirror.yandex.ru::calculate/CDS/10.4/x86_64/cds-10.4-x86_64.iso cds-10.4-x86_64.iso