Large-Disk-HOWTO : Решение проблемы

Next Previous Contents

## 15. Решение проблемы

Многие люди думают что у них есть проблемы, хотя на самом деле их нет. Или они думают что проблемы связаны с геометрией диска, хотя на самом деле она не причем. Все описанное в этом документе выглядит достаточно сложным, хотя работа с геометрией диска обычно предельно проста,обычно не нужно ничего делать вообще либо задать LILO параметр linear, если загрузка идет лишь до LI. Внимательно изучайте сообщения выдаваемые при загрузке и помните чем больше вы изменяете геометрию(устанавливаете число головок и цилиндров и т.д.) тем меньше вероятность что все это будет правильно работать. Проще говоря чаще всего все бывает установлено правильно по умолчанию.

И помните Линукс не использует геометрию диска практически не где, поэтому проблемы возникающие во время работы не могут быть вызваны геометрией.Геометрия используется только LILO и fdisk. Если разные операционные системы не воспринимают таблицу разделов, то тогда это возможно проблема с геометрией. Во всех других случаях геометрия НЕ используется. Например если у вас проблемы с mount, то геометрия здесь не причем.

## 15.1 Проблема: Мой IDE диск получает неправильную геометрию, когда я загружаюсь с SCSI..

Такая ошибка вполне вероятна. Ядро Линукс опрашивает BIOS о hd0 и hd1 (Диски номер 80H и 81H) и применяет эту геометрию к hda и hdb. Но на системе, которая загружается с SCSI,первые два диска,вполне могут быть SCSI дисками, и поэтому пятый диск (первый IDE диск), получает геометрию sda. Эта проблема легко решается путем задания загрузочных параметров. `hda=C,H,S' с необходимыми C, H и S, во время загрузки или в /etc/lilo.conf.

## 15.2 Не проблема: Идентичные диски имеют различную геометрию?

`Я имею два одинаковых диска 10 GB IBM . Но, fdisk показывает для них различные размеры.

> `

>     # fdisk -l /dev/hdb
>     Disk /dev/hdb: 255 heads, 63 sectors, 1232 cylinders
>     Units = cylinders of 16065 * 512 bytes

>        Device Boot  Start      End   Blocks   Id  System
>     /dev/hdb1           1     1232  9896008+  83  Linux native
>     # fdisk -l /dev/hdd
>     Disk /dev/hdd: 16 heads, 63 sectors, 19650 cylinders
>     Units = cylinders of 1008 * 512 bytes

>        Device Boot  Start      End   Blocks   Id  System
>     /dev/hdd1           1    19650  9903568+  83  Linux native

> `

Как такое может быть?'

В чем же дело ? Первый из всех этих дисков действительно 10 Гиг размером: hdb имеет размер 255`*`63`*`1232`*`512 = 10133544960, а hdd имеет размер 16`*`63`*`19650`*`512 = 10141286400, т.е. все правильно , и ядро видит оба диска как 10.1 ГБ. Почему же есть разница в размерах ? Ядро получает информацию о первых двух дисках у BIOS, а BIOS переразметил hdb на 255 головок (и 16`*`19650/255=1232 цилиндров). Округление этой цифры в меньшую сторону стоит вам около 8 МБ.

Если вы захотите переразместить hdd таким же образом, задайте такие загрузочные параметры :`hdd=1232,255,63'.

## 15.3 Не проблема: fdisk видит гораздо больше места,чем df?

fdisk показывает количество блоков на диске. Если же у вас на диске создана файловая система, то она будет занимать какое то место на диске,обычно около 4%, размера файловой системы.Или даже больше если при создании вы запросили много inodes. Например:

> `

>     # sfdisk -s /dev/hda9
>     4095976
>     # mke2fs -i 1024 /dev/hda9
>     mke2fs 1.12, 9-Jul-98 for EXT2 FS 0.5b, 95/08/09
>     ...
>     204798 blocks (5.00%) reserved for the super user
>     ...
>     # mount /dev/hda9 /somewhere
>     # df /somewhere
>     Filesystem         1024-blocks  Used Available Capacity Mounted on
>     /dev/hda9            3574475      13  3369664      0%   /mnt
>     # df -i /somewhere
>     Filesystem           Inodes   IUsed   IFree  %IUsed Mounted on
>     /dev/hda9            4096000      11 4095989     0%  /mnt
>     #

> `

У нас есть раздел с 4095976 блоками, создаем файловую систему ext2 на нем,монтируем его и обнаруживаем что у нас только 3574475 блока - 521501 блоков (12%) было использовано для нужд файловой системы. Заметим, что разница между имеющимися 3574475 блоками и доступными пользователю 3369664 - это 13 использованных блоков + 204798 блоков зарезервированных для root. Позднее эту цифру можно изменить с помощью tune2fs. Размер блока `-i 1024' выгоден только для раздела содержащего очень много маленьких файлов. По умолчанию это будет выглядеть так:

> `

>     # mke2fs /dev/hda9
>     # mount /dev/hda9 /somewhere
>     # df /somewhere
>     Filesystem         1024-blocks  Used Available Capacity Mounted on
>     /dev/hda9            3958475      13  3753664      0%   /mnt
>     # df -i /somewhere
>     Filesystem           Inodes   IUsed   IFree  %IUsed Mounted on
>     /dev/hda9            1024000      11 1023989     0%  /mnt
>     #

> `

Теперь только 137501 блока (3.3%) используются для inodes, т.е. высвободилось 384 МБ свободного места. (Каждый inode занимает 128 байт.) С другой стороны данная файловая система может содержать только 1024000 файлов (более чем достаточно), против 4096000 (слишком много) бывших возможными ранее.

Next Previous Contents