Проблемы IDE с 34+ ГБ-ми дисками
Диски больше чем 33.8 ГБ не будут работать с ядрами младше 2.3.21. Детали этой проблемы приведены ниже. Предположим, что вы приобрели новый диск - IBM-DPTA-373420, емкостью 66835440 сектора (34.2 ГБ). Ядра более поздних версий , чем 2.3.21, будут сообщать что размер диска равен 769*16*63 = 775152 секторов (0.4 ГБ), что, согласитесь не совсем приятно. Задание параметров в командной строке(например:hdc=4160,255,63) не поможет,они будут игнорироваться. Что происходит? Процедура idedisk_setup() получает сведения о геометрии от диска (16383/16/63) и записывает эти данные поверх данных полученных от пользователя в командной строке,поэтому данные пользователя используются только для BIOS геометрии. Процедура current_capacity() или idedisk_capacity() пересчитывает количество цилиндров как 66835440/(16*63)=66305, но , так как поле имеет длину всего 16 бит,это число превращается в 769. Т.к lba_capacity_is_ok() разрушила id->cyls, каждый следующий её вызов будет возвращать неверные данные, поэтому емкость диска получается равна 769*16*63. Для нескольких версий ядер доступен патч. Патч для 2.0.38 можно взять на . Патч для 2.2.12 на : . Ядра 2.2.14pre поддерживают такие диски. В серии ядер 2.3.* , поддержка таких дисков есть в версиях начиная с 2.3.21. Решить проблему можно также путем настройки диска
на емкость 33.8 ГБ. Во многих случаях может помочь
,это необходимо если вы хотите загружаться с диска.