FAQ FreeBSD - Решение проблем с носителями информации, IDE, SCSI и др.

ОГЛАВЛЕНИЕ

 

3. Решение проблем с носителями информации, IDE, SCSI и др. 

3.1. На моём винчестеры есть запорченные блоки!

Если это SCSI-устройство, то винчестер должен иметь возможность автоматической
переадресации таких блоков. Однако по непонятным причинам во многих постав
ляемых дисках эта возможность отключена...
Чтобы её включить, вам нужно изменить режим работы устройства, что во FreeBSD
может быть выполнено администратором посредством команды
    # scsi -f /dev/rsd0c -m 1 -e -P 3

и изменить значения параметров AWRE и ARRE с 0 на 1:-
    AWRE (Auto Write Reallocation Enbld):  1
    ARRE (Auto Read Reallocation Enbld):  1

Последующие параграфы были предоставлены Тэдом Миттельштадтом (Ted
Mittelstaedt):
Для дисков IDE появление запорченных блоков является признаком возможных
неприятностей. Все современные IDE-диски поставляются с включенной возможностью
переадресации испорченных блоков. Все производители винчестеров в настоящее в
ремя предоставляют расширенные гарантии и заменяют диски с запорченными
блоками.
Если вы всё же хотите спасти ваш диск IDE с запорченными блоками, вы можете
попытаться найти программу диагностики винчестеров от производителя и
протестировать ею диск. Иногда эти программы могут заставить электронику в
инчестера пересканировать диск в поисках испорченных блоков и заблокировать их.
В случае дисков стандартов ESDI, RLL и MFM, наличие испорченных блоков является
обычным явлением и не является большой проблемой. В ПК контроллер винчестера и
BIOS берут на себя работу по блокировке испорченных блоков. Это прекрасно
работает в случае операционных систем типа DOS, которые используют вызовы BIOS
для доступа к диску. Однако драйвер диска во FreeBSD не обращается к BIOS,
поэтому для обеспечения подобной функциональности существует bad144. bad144
работает только с драйвером wd (что означает, что эта утилита не поддерживается
во FreeBSD 4.0), её НЕВОЗМОЖНО использовать со SCSI. bad144 помещает все
найденные испорченные сектора в специальный файл.
У bad144 имеется особенность - специальный файл с испорченными блоками
помещается на последнюю дорожку диска. Так как этот файл может содержать список
испорченных секторов, находящихся в начале диска, где может располагаться файл
ядра /kernel, он должен быть доступен загрузчику, использующему вызовы BIOS для
чтения файла ядра. Это значит, что диск, который использует bad144, не должен
иметь размеры, превышающие 1024 дорожки, 16 головок и 63 сектора. Это ограничив
ает размер диска, обрабатываемого bad144, 500 мегабайтами.

Для использования bad144, просто установите "Bad Block" в положение ON на
экране программы fdisk во время начальной установки. Это работает начиная с
FreeBSD 2.2.7. Диск должен иметь размер, не превышающий 1024 дорожки.
Рекомендуется, чтобы до этого диск проработал не менее 4 часов для перехода в
рабочий тепловой режим и стабильный режим работы головок.
Если диск имеет размер, превышающий 1024 головки (как, например, большой диск
ESDI), контроллер ESDI использует особый режим трансляции, чтобы это работало в
DOS. Драйвер wd будет знать об этих режимах трансляции, ЕСЛИ вы укажете на
использование "преобразованных" параметров в команде "set geometry" программы
fdisk. Вы также НЕ должны использовать режим "dangerously dedicated" при в
ыделении раздела для FreeBSD, так как при этом параметры диска не принимаются в
о внимание. Также, хотя fdisk будет использовать изменённые параметры, он всё
же помнит настоящий размер диска, и попытается создать слишком большой раздел
FreeBSD. Если параметры диска изменились на транслированные, раздел ДОЛЖЕН быть
создан вручную с указанием количества блоков.
Самым быстрым способом является установка большого диска ESDI с контроллером
ESDI, загрузка DOS и выделение на нём раздела DOS. Затем запустите
инсталляционную программу FreeBSD и в экране программы fdisk найдите и запишите
размер блока и их количество раздела DOS. Затем установите параметры в те же
значения, которые использует DOS, удалите раздел DOS и создайте "совмещённый"
раздел FreeBSD с ранее записанным размером блока. Затем установите загрузку с
этого раздела и включите сканирование испорченных блоков. Во время установки
сначала, ещё до создания файловых систем, запустится bad144 (вы можете это ув
идеть по Alt-F2). Если возникнут проблемы при создании файла с запорченными
секторами, вы установили слишком большие параметры диска - перезагрузитесь и
начните всё сначала (включая повторные разбиение на разделы и форматирование в
инчестера в DOS).
Если переадресация включена и всё равно на диске присутствуют запорченные
блоки, то, по-видимому, остаётся только заменить винчестер. Количество
испорченных блоков с течением времени имеет тенденцию только увеличиваться.