<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.dev/tips/info/977.shtml