[sisyphus] После обновления ядра с 2.6.25 до 2.6.30 не монтируется раздел

Sergey Vlasov vsu на altlinux.ru
Чт Окт 22 13:41:31 UTC 2009


On Thu, Oct 22, 2009 at 11:29:46AM +0500, Денис Черносов wrote:
> Есть интернет-шлюз с Office Server 4.0 (kernel-image-std-smp-2.6.18).
> Понадобилось мне включить на нем модули для трассировки rtsp. А в ядре
> их не оказалось... Стал я обновляться.
> dist-upgrade до 4.1 + ядро  2.6.25-std-def-alt8.M41.5 - модулей нет,
> но полет нормальный.
> 
> Поставил ядро kernel-image-std-def-2.6.30-alt14 - система перестала
> загружаться. Во время загрузки аварийный режим и сообщение:
> 
> /dev/sda5 filesystem size (according to the superblock is 6018460 blocks
> physical size of the device is 6018299
> Either the superblock or the partition table is likely to be corrupt!
> 
> Если снова загрузиться с ядром  2.6.25-std-def-alt8.M41.5, то
> нормально загружается и показывает размер /dev/hda5 (не sda5!) 6018460
> блоков.
[...]
> Помогите пожалуйста разобраться - кто из них неправ и что делать
> (желательно без переформатирования раздела :) ).

Видимо, на диске есть Host Protected Area - область, которая должна
быть скрыта от ОС (такая область, например, создаётся многими версиями
BIOS от Gigabyte для хранения резервной копии кода BIOS).  Старые
драйверы IDE при загрузке всегда отключали HPA (во время написания
этого кода была причина для подобных действий - отключение ограничения
размера диска, поставленного для обхода ошибок BIOS при работе с
большими дисками); в новых драйверах libata отключение HPA по
умолчанию не производится.  В результате при переходе с ide на libata
без дополнительных настроек возможно уменьшение доступного размера
дисков; причём, начиная с 2.6.28, если какой-либо раздел выходит за
пределы диска, ядро автоматически уменьшает доступный размер этого
раздела с выдачей сообщения вида:

  sdXY: pN size M limited to end of disk

(а если и начало раздела за пределами диска, такой раздел полностью
игнорируется).  Ядра до 2.6.28 в аналогичной ситуации показывали
размер разделов полностью, но выдавали ошибки ввода-вывода при попытке
обращения к недоступной части разделов.

Решать такую проблему можно несколькими способами:

 - Наиболее правильный - переразбить диск с учётом HPA (чтобы
   исключить возможность конфликтов с тем кодом в BIOS, который
   использует эту область).  Для ext2/3/4 есть возможность уменьшить
   размер ФС без переформатирования с помощью resize2fs.

 - Можно попробовать снять HPA - например, с помощью hdparm (опция -N), но
   это может не пройти, если BIOS устанавливает HPA при каждой загрузке
   (тогда команда установки постоянного значения HPA пройдёт только после
   передёргивания питания диска); кроме того, подобная функция может быть
   в утилитах от производителя диска.  Однако даже после успешного снятия
   HPA при следующей перезагрузке BIOS может вновь установить своё
   значение (если там нет в этом месте правильной проверки содержимого
   таблицы разделов).

 - Наконец, можно заставить драйверы libata отключать HPA, как это
   делали старые драйверы ide:

     options libata ignore_hpa=1

   В этом варианте наибольший риск конфликтов с BIOS (поскольку BIOS
   считает, что HPA на диске есть и может использоваться BIOS для своих
   целей, однако ОС на самом деле использует эту область диска для
   хранения данных).  В случае материнок от Gigabyte в качестве меры
   защиты вроде бы годится переключение контроллера из режима IDE в AHCI
   (если эта опция доступна) - похоже, эти BIOS в режиме AHCI не умеют
   использовать HPA для сохранения резервной копии BIOS.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20091022/a14233a2/attachment.bin>


Подробная информация о списке рассылки Sisyphus