[Comm] Re: Что с моим /dev/hdc?
Sergey Vlasov
=?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Вт Июн 10 15:01:51 MSD 2003
On Tue, 10 Jun 2003 08:45:48 +0400
Прокопьев Евгений <john на rmts.donpac.ru> wrote:
> Кто-нибудь может объяснить такой феномен:
>
> #cfdisk /dev/hdc
> FATAL ERROR: Bad primary partition 0: Partition ends after end-of-disk
> Press any key to exit cfdisk
>
> # fdisk /dev/hdc
> The number of cylinders for this disk is set to 7476.
> There is nothing wrong with that, but this is larger than 1024,
> and could in certain setups cause problems with:
> 1) software that runs at boot time (e.g., old versions of LILO)
> 2) booting and partitioning software from other OSs
> (e.g., DOS FDISK, OS/2 FDISK)
>
> Command (m for help): p
>
> Disk /dev/hdc: 61.4 GB, 61492838400 bytes
> 255 heads, 63 sectors/track, 7476 cylinders
> Units = cylinders of 16065 * 512 = 8225280 bytes
>
> Device Boot Start End Blocks Id System
> /dev/hdc1 * 1 7477 60051568+ 83 Linux
>
> Command (m for help):
При этом 7476.0 * 255 * 63 / 2 = 60050970.0, что действительно меньше,
чем размер раздела в блоках.
В то же время ((60051568.0*2 + 1)/63 + 1)/16 = 119150.0 - т.е. размер
раздела ('+' в выводе fdisk обозначает лишний сектор) соответствует
геометрии 119150/16/63, а не используемой 7476/255/63.
> Собственно, так было после установки системы, раздел /dev/hdc1 был
> создан в fdisk, а на нем была создана XFS. На разделе лежит немаленькая
> БД и вроде нормально себя чувствует, хотя пока еще работает в отладочном
> режиме.
Вероятно, диск был совсем пустой, поэтому ядро не смогло определить
правильные параметры CHS (данные BIOS читаются только для /dev/hda и
/dev/hdb, для остальных IDE-устройств берутся без учёта преобразования
в BIOS, а потом корректируется по данным таблицы разделов). Поэтому
fdisk и создал раздел такого размера. Откуда потом взялась геометрия
/255/63 - не знаю; возможно, таблицу разделов чем-то "подправили"
(например, если диск при этом стоял на hda или hdb).
Посмотрите в вывод hdparm -i /dev/hdc и сообщения ядра при загрузке
(сначала распознаётся геометрия /16/63, а позже при Partition check
корректируется, при этом пишется [PTBL]).
> Кстати, абсолютно аналогично размечен /dev/hdc, но его видит и fdisk и
> cfdisk.
Не понял - и тут, и там hdc. Так где у вас диски?
И в чём разница в выводе fdisk -l на работающем и неработающем?
> И еще gkrellm отказывается рисовать графики по /dev/hdc, что тоже
> настораживает.
>
> Какие проблемы я могу получить в будущем?
Ядро использует LBA, так что вроде бы в Linux проблем возникнуть не
должно, но кто его знает...
Попробуйте запустить cfdisk -h 16 - если так запустится, вероятно,
именно эта геометрия правильная для такой разбивки. Можно попробовать
запустить fdisk -H 16 /dev/hdc и записать таблицу разделов - есть
вероятность, что после этого распознавание геометрии встанет на место.
А вот чтобы исправить на /255/63, придётся всё сносить и
переразбивать, предвариельно убедившись, что fdisk использует
правильную CHS-геометрию.
Подробная информация о списке рассылки community