В данном примере показано восстановление образа снятого с "криво" записанного диска FreeBSD 6.0.
1. Находим при помощи гугла rsync-зеркала с интересующими нас образами. Для задачи из примера их список можно увидеть здесь.
Выбираем ближайшие зеркала с отметкой rsync напротив адреса:
ftp2.ru.freebsd.org и ftp5.ru.freebsd.org.
2. Узнаем какие "модули" доступны у выбранных rsync-серверов при помощи команды:
rsync -n -vv ftp2.ru.freebsd.org::
Ответ - два слова FreeBSD, откуда заключаем, что имя интересующего нас модуля - FreeBSD. Для сервера ftp5.ru.freebsd.org узнать имя модуля таким способом не удастся - этот сервер возвращает в ответ только информацию "рекламного" характера. Пояснения к команде: ключ -n не позволяет утилите rsync загружать ничего; ключ -vv позволяет увидеть на экране больше информации о происходящем; два двоеточия после имени сервера обязательны (можно использовать вместо них rsync:// перед именем сервера, но это длиннее).
3. Изучаем расположение каталогов и файлов на сервере:
rsync -n -vv ftp2.ru.freebsd.org::FreeBSD/
К предыдущей команде добавлено имя модуля и следующий за ним слэш (/). Слэш нужен для указания того, что необходимо отобразить листинг директории, а не ее саму. В результате выполнения команды можно увидеть, что файловая структура (в данном случае) повторяет расположение файлов на FTP-сервере. После чего определяем где лежат искомые образы (листаем интересующие нас каталоги) и продолжаем. К сожалению, у меня не получилось заставить работать ключик --list-only из man rsync и пришлось находить вышеописанный способ методом научного тыка.
4. Предположим, что образ диска уже снят, например так:
readcd dev=ATA:1,0,0 speed=8 -noerror f=/path/to/6.0-RELEASE-i386-disc1.iso
(Подробности в man readcd) И контрольная сумма образа не совпадает с суммой образа с официального веб-сайта.
5. Восстанавливаем образ командой:
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 \
Пояснения к команде: -z желателен для сжатия передаваемой информации (действенность не проверял); --stats выводит после окончания подробную информацию о сделанном; --progress отображает процент выполнения текущей задачи.
6. Убеждаемся, что сумма восстановленного образа совпадает с суммой образа с официального сайта.
Данным методом я восстановил образы дисков с FreeBSD 6.0, записанных при помощи программы Nero добрым человеком с толстым каналом. readcd ругался на эти диски в самом конце каждого из них. Входящий трафик, в моем случае, для обоих дисков составил меньше 1 Mb. |