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

Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости