������� Large Disk HOWTO
Andries Brouwer,
[email protected]
v2.2j, 25 �������� 1999
��� �� ������ �� �� �������� �� ����� ��� �� ���� �� 1024
�������. --- ��� ����������� ����, ���������, ��� ������ �� ���
�������� �������� ������������ �� ��� �������� ������ ���
�������:
[email protected] HOWTOs!large disk HOWTOs!disk,
large
1. �� �������
Disks!Interface with BIOS BIOS!Interface with disks �� ���� ��� ����
��� ����� �� 1024 ��������. �� ��������� ��� ���� �� ���
��������� �� ������������ ��� ����� INT13 BIOS ��������� �� �� �/�
�� �����. ��� ���� �������, �� ��� � ��������� ������������
����� �� 10-bit ��� ��� �������� ��� �� �/�, ���� �������� ����
�� 1024 ��� ����� �����������.
���, �� Linux �� ������������ �� BIOS, ���� ��� ������ �������.
������, ���� �� �� ��������:
(1) ���� ������ �� ������, �� Linux ��� ����� ���� ���� ���
�������� �� ������� �� ���������� �� BIOS. ��� ��� �������
��������� ��� LILO ��� �������� ������� ���������.
(2) ����� ���������� ��� ��� �� ���������� �� ������������ ���
����� �� ����� �� ���������� �� �����������. �� ���� ����, ���
�������������� Linux ���, �� ����, DOS �� ��� �����, ��� ������ ���
�� �� �� ��������� ��� ������ ���������� �� ��� ���� ����. ���
��� ������� ��������� ��� ��� ����� �� Linux ��� �� fdisk.
������� �������� ��� ���������� �������� ��� �� ������ ������.
�������� ��� ������������� ��� ����� 2.0.8 �� ������. �����
������� ������ �� ������� ������.
2. �������
����� ���� �������� ������ �����. �� ������; �� ��� ����� ��
���������: �������������� �� fdisk (�, �������, cfdisk) ��� ��
������������ ��� �����������, ��� ���� �� mke2fs ��� �� ������������
��� ������ �����, ��� ������ mount ��� �� ������������ �� ��������
������ ���� �������.
�� ���������� �� ��������� �� �� HOWTO ���� ��� ������ no
���������� �� ������� ������ ���� ��� �����. � �������� ��
���������� ������������ �� ������� �� ������� ��� ������ ��
��� ������� ��� ���������� ��� ���������� ����� � ������������
�� fdisk �� expert mode, � ������ �� �������� �� ����� ��� LILO �
���� �����.
����� ���, ����� ���������� �����: (�) ����������� ���������,
(�) ����� ���������� ���� ���� ����� ���, ������� �����, (�) �
��������.
������:
��� ������� ������ SCSI: �� Linux ��� ����������� �� ��� ����.
��� ���������� �� ������ ������.
��� ������� IDE ������ (��� �� 8.4GB): ������ ��� ��� �������
������ ����� (2.0.34 � ������). ����� ��� �� ��������, ������ ��
�� �������� �� �� BIOS ���������� LBA ��� �� ������.
��� ��� ������� IDE ������ (��� �� 33.8 GB): ����� �� ``IDE
���������� �� 34+ GB ������'' �������.
��� �� LILO ������� ���� ��� ��������, ������ ��� ��� linear �����
������� /etc/lilo.conf.
������ �� ������� ���������� �� �� �������� �� ������ �� ���� ��
�� ����� ���� �����/LILO/fdisk.
��� ���� ���� fdisk ��� ������������ ��� ``�������������''
�����������: �������� ��, � ������� �������������� �� cfdisk ��� ���
����� �������� �������.
��� �������� ��� ���� ���� ����� �� �� ������� �� �����,
����������� ��� �� ��������� ��� ������� �� ��� ��������� ``'',
��� ������ ��� � �������� ����� �� ������� �� df �� ���� �����
����� ����� ���� ���� ���� �������� �� �� ������� ��� ����������
�� ������ ��������� �� �� ������.
�� ���� �������� ��� ������ �������, � ���� ����� ���������,
�������� �������.
3. ������� ��� ������
units!megabyte units!gigabyte ��� kilobyte (kB) ����� 1000 bytes. ���
megabyte (MB) ����� 1000 kB. ��� gigabyte (GB) ����� 1000 MB. ���
terabyte (TB) ����� 1000 GB. ��� ����� �� SI ������. ����� ���,
������ ����� �� ������������ �� 1 MB=1024000 bytes ��� ���� ���
1.44 MB �������� ��� ������� �� ������� ��� 1 MB=1048576 bytes. ��
������ �� ����������� standard ��� ���� Ki, Mi, Gi, Ti ��� ���
������� �������, ���� �� �������� ����� 1440 KiB (1.47 MB, 1.41 MiB),
1 MiB ����� 1048576 bytes (1.05 MB), 1 GiB ����� 1073741824 bytes
(1.07 GB) ��� 1 TiB ����� 1099511627776 bytes (1.1 TB).
����, �� ������������ ����� �������� �� SI ������ ���
������������ ��������� �������. ����� ���, ������ ������� ��
Linux ��� ������ fdisk ����������� ������������ �� ������ MB ��� GB
��� ������, � ��� ������ �������-��������� �������. ��� ��, ����
�������� ��� � ������ ��� ����� ��������� �� ��� �� ���
����������, ���������� ���� �� ��������� �� ������� �� ���������
������� (� ���� bytes).
������ �� ��� �������� ��� ��� ���������� �� ������ ������, �
Knuth ��� ��� ����������� ������, ����������� �� �������������
KKB, MMB, GGB, TTB, PPB, EEB, ZZB, YYB ��� �� �� ������ ������
kilobyte, ������ megabyte, ... ������ yottabyte. ����� `��������
��� �� �� ������ �� ����� �� ���� ������ ������� ��� ����� ���
������. ����� ��� ���� ������, �� �� `������ gigabyte' ��������
������� �� �� `gibibyte'. ��� ��� �������� ��� �� ��� �� ������
�� ��������� ����� ��� ��� megabyte ��� ������ 1000000 bytes, ���
������� ����� ���� ��� ������� ���������� �� ������� ���� ����.
3.1. ������� �����
disk!sectorsize ��� ���� ������� ��� ������ ��� 512 bytes. ���
����� ���� ����� �������, ���� �� ������� MO �� ������������
2048 bytes, ��� ���� �� ������������ �� �������� ������� ������ ��
��������������� ��� �������. (���� �������������� �� fdisk ��
������� ������ , ����������� ��� ���� ������ 2.9i ��� �� , ���
���� ��� ��������� `-b 2048'.)
3.2. ������� �����
disk!disksize ��� ������ �� C ��������, � ������ ��� S ������ ���
���� ��� C*H*S ������ ������� ��� ����������� C*H*S*512 bytes.
��� ����������, �� � ������� ���� C/H/S=4092/16/63 ��� � ������ ���
4092*16*63=4124736 ������ ��� ������ 4124736*512=2111864832 bytes
(2.11 GB). ���� ������, ������� C/H/S=16383/16/63 ��� ������
���������� �� 8.4 GB, ��� �� ������� �� ����� �� ������ ��� ��
��������� �� ��� ����� C/H/S �� ���������� �� �� �����.
4. ������� �����
��� �� ��������� � �� ������ ���� �� �� �����, ������ �� ������� ��
���� ��� �����, �������� ��� ���������� ��� ����� � ��� ������. �� �
������ ����� SCSI, ��� � ������ �� ����� �������� ��������� ����
������ SCSI ��� � ������ ��� ������������. �� � ������ ����� IDE
�������������� LBA, ���� �� ����. ���� �� � ������ ����� ����� RLL
� MFM � IDE ��� ���-LBA �����, ��� � ������ ��������� ��� �����
����� (�������, �����, �����) ��� �� ���������� �� ������.
� ���������� ����� ��������� �������� ��� ��� 3D ������������
�����: ��� ��� ����� �� C ��������, H ������ ��� S ������/���� �
���� (c,h,s) �� 3D � CHS ����� � ���� ���� �� c*H*S + h*S + (s-1) ��
�������� � LBA. (�� ����� ��� ����� ������ �� ������ ������ ����
�������� �� �� 1, ��� �� 0 ��� ��� 3D).
���� �������, ��� �� ������� �� ���� ��� ����o ��-SCSI �����,
������ �� ������ ��� ��������, ������, ��� ����� C, H ��� S.
4.1. ������� �� BIOS ��� �� ���� �� 1024 �������
�� Linux �� ������������ �� BIOS, ���� ���� �������� ��
������������. �� BIOS, �� ��������� �� LBA, �������� ��� �������
����� INT13 �� ������� (c,h,s) ����������. (�����������: �� AH
�������� �� ��������� �� �� ����������, �� CH ����� �� ��� 8 bits
�� ������� �� ��������, �� CL ��� ��� bits 7-6 �� �� �� bits
�� ������ �� ������� ��� ��� bits 5-0 ��� ����� �� �����, DH
����� � ������ ��� ������, ��� DL ����� � ������ �� ����� (80h �
81h). ��� ������ ������ �� ������� �� ������ ����������.)
����, ���� �� CHS ������������� �� 3 bytes, �� 10 bits ��� �� �����
�� ������� , 8 bits ��� ��� ����� ��� 6 bits ��� ��� �����
���� ����� (1-63). ���������� ��� �� �������� ������ �� ����� ��
0 �� 1023 ��� �� ������ �� ��������� ��� �� 1024 �������� �� ��
BIOS.
�� DOS ��� �� Windows ��� ������� ���� IDE ������ �� ���������� LBA
�����������, ���� �� DOS ��� �� Windows ������ �� �����������
�������� �����, ���� �� ���� �� �� ��������� �� �� �/� ��
�����, ���� ��� ��� �� ���������� �� �� BIOS. ��� ���� ��������
��� �� Linux ���������� �� �������� ��� ���������� �� �� BIOS � ��
���� ���������� ����������, ���� ��� �� ��������� ������.
���� � ��������� ���������� �� �������� ������� ����� ������, ���
����������� ���� ����� ������ �� �� �������� �� ������ �� ���
���������� INT13 (����� �� 10+8+6=24 bits ��� (c,h,s) ��� ������ ��
��������� ��� �� 8.5 GB) ��� ��� ��� ��������� �� �� BIOS
����������: �� ������������ Extended INT13 ����������, ��� ��
DS:SI ������ ��� 16-byte Disk Address Packet �� ������������ ����
8����� ����� �������.
��� ���� � ����� ��� Microsoft �������� ���� �� ����� ��� ��
Extended INT13 ���������. ������ �� ������ ����� �� ������, ������
�������� ������ �� �� ���������� �� �������� �� �����.
4.2. ������� �� BIOS ��� �� ���� �� IDE
ATA Specification (��� IDE ������) - �� ���� �� 137 GB
�� ��� 65536 �������� (����������� 0-65535), 16 ������
(����������� 0-15), 255 ������/���� (����������� 1-255) ��� ���
������� ����������� 267386880 ����� (512 bytes � �������),
������, 136902082560 bytes (137 GB). ��� ���� ��� �����
������� (�� 1999), ���� �� ����� �� ������ ����� �� ������.
BIOS Int 13 - �� ���� �� 8.5 GB
�� ��� 1024 �������� (0-1023), 256 ������ (0-255), 63
������/���� (1-63) ��� ������� ����������� 8455716864 bytes
(8.5 GB). ���� ����� ���� ������ ������ ���������� ������.
�������� ��� �� DOS �� ������ �� �������������� ��� ����
������� ������.
�� ���� �� 528 MB
�� �� ����� ����� c,h,s ��������������� ��� �� BIOS Int 13 call
��� ��� �� �/� �� �DE �����, ��� �� �� �����������
���������� ��� ������� �� ��������������� �� ��� 1024
��������, 16 ������ ��� 63 ������/���� ��� ������� ������
����������� 528482304 bytes (528MB), �� ������� ���� �� 504
MiB ��� DOS �� ���� BIOS. ��� ����� ������� �� 1993 ���
��������� ����� ���������, ��� �� ���� (LBA), ��� firmware
(������������ �� BIOS) ��� �� software (����������� �����).
� ������ ��� '���������' �������� (1994): �� BIOS ������� ��
������������ ��� �������� ���� ����������� �� �� ����� ���
����, ����, �������� ���� ������ ��� DOS, ��� �� ���������
����� ���.
�� ���� �� 2.1 GB (�������� 1996)
������ ����� BIOS ������������ ��� 12 bits ��� �� ����� ���
CMOS RAM �� ����� ��� ����� �� �������. ���� �������, �
������ ��� ������ �� ����� �� ��� 4095, ��� ���
4095*16*63*512=2113413120 bytes ����� ����������. �� �� ������
���������� ������ ��� �� ���������� �� �������� ���� ���
��������. ��� ����� ������ �� �������� 4092/16/63 ������
��������. ���� ��� ������ ������ ������� ������ �� �������
�� ������� ��� ����������� �� 4092/16/63. ����� ��� ��
over2gb.htm.
�� ���� �� 3.2 GB
����� ��� ������ bug ��� Phoenix 4.03 ��� 4.04 BIOS �� ��
����� �� ������� ��� CMOS setup ��� ������ ���������� ��
3227MB. ����� �� over3gb.htm.
�� ���� �� 4.2 GB (���������� 1997)
� ���� �������� �� BIOS (ECHS=Extended CHS, ������� �����
������� ��� `Large disk support' � ���� `Large') ��������� ��
��� ���� ���������� �� ������ �� ����� ��� ���
������������� �� ������ �� ������� �� ��������� ��� DOS,
���� �� �������� �� ����� �� ��� 1024. �� DOS ��� �� Windows
95 �� ������ �� ����������� 256 ������, ��� ���� ��������
�� � ������ ������� 16 ������, �� �������� ��� � ����
��� �������� ������ �� ������ ��� ����
8192*16*63*512=4227858432 bytes (�� ���� �������� �� 1024
��������, 128 ������, 63 ������/����). �������� ��� ��
ECHS ��� ������� ��� ����� �� ����� ��� ����, ���� �� ���
����� 63, �� ���� �� ����� ���� ���������. ����� ��
over4gb.htm.
�� ���� �� 7.9 GB
���� ��� ����� BIOS ������� �� �� ������� �� �� ������
���� �� ������ �� ����� �� 15 (`revised ECHS'), ���� �
����� �������� �� ����������� �� 240 ������, ����� ���
1024*240*63*512=7927234560 bytes.
�� ���� �� 8.4 GB
�����������, �� �� BIOS ����� �,�� ������ ��� ��� �����
��������, ������������ 255 ������ �� 63 ������/����
(`assisted LBA' or just `LBA') ��� ������ ��
1024*255*63*512=8422686720 bytes, ���� �������� �� ��
���������� ���� �� 8.5 GB, ���� ��������� �� 256 ������
������ �� ����������. (� �������� �� �������������� ��� ���
����� ����� ��� ����� � �� ��� �������� 16, 32, 64, 128,
255 ��� ��� ����� � ������� ����������� ������ ���
1024*H*63*512, ��� ���� ���������� ��� ����� �� ������� C ��
��� ����������� ���������� �� (H*63*512).)
The 33.8 GB limit (August 1999)
�� ������ ������ ������ �� ������ �� �� 33.8 GB. ��
������� ����� ��� �� 16 ������ ��� 63������/���� ��
���������� �� ����� ������� ��� �� 65535, �� �� ������ ��
short �����. �� ���������� BIOS ������ �� ������ ��
��������� ������� ������. (����� Asus upgrades ��� ����
������� �� ������.) ������ ���������� �� 2.2.14 / 2.3.21
����������� patch. ����� ``IDE ���������� �� 34+ GB ������''
�������.
��� �������� ������� ��� �� ������� ����� Breaking the Barriers
���, ��� ����������� ������������, IDE Hard Drive Capacity Barriers.
������ ���������� �� 8.4 GB ������� �� �������� ��� ��
16383/16/63. ��� �������� ��� � '��������' ����� ��������� ��� ���
� ������� ����������� �� ������ �� ����������� �� �� ��������.
5. ��������
booting!BIOS usage during disk!BIOS access during booting ���� ��
������ ������, �� BIOS �������� ��� ����� 0 (����� ��� �� MBR -
Master Boot Record) �� ��� ���� ����� (� �� ������� � CD-ROM) ���
�������� ��� ����� �� ������� ���� - ����� ���� ������. ���� ��
�������������� ����� ��� ������� ������ ��� ������������ ��
BIOS. ��� �������� ��� � ������ �� Linux ������ �� ������� ���
���� ��������� �������� ���� ����� 1024 ��������.
�� ������� �� ������ ��� �����: ����������� ��� � ������ (���
��� ��� ���� ����� �� ����������� ���� ��� ��������, ��� �� �����
�� LILO) ���������� �� ��� ��������� �� ��������� �� ��������
���� ����� 1024 �������� ��� ��� �� BIOS ������ �� ��� �������
- �� �������� ��� ���� � ������ �����.
����: ����������� ��� ���������, �� ���� 10MB, ���� �� ������ �����
��� ������� ������, ����������� ��� ��������� ������� ����
����� 1024 �������� �� ���� � ������ �����. ����������� ���
��� /boot ���� �� LILO �� ����� �,�� ���������� ����.
5.1. �� LILO ��� � ������� `linear'
���� ��� ������ ��� ����� � ������� ��� �� BIOS ������ �� �����
����� � �������� �� �����. To LILO ��� ��� ����� ��� ��
��������, ���� ��� ��� ����������� ��������������� ����� ��� ���
���� ������� �� ������� �� �������� �� ��� ������ ����������,
���� �� ���� ��� LILO �� �� ������������ �� BIOS. ����, � ��������
�� ��� ����� ����� ��� ������. �� ���� ��� ���������� �����
������� �� ������ ��� LILO ��� ������� `linear'. �� ���������� �����
��� �� LILO �� ���������� �� �������� ���� ��� ����������� ��
������ ���� ����� �� ��������� ��� ��������� �������� ���� ���
��������. ��� ����� �� ��� ���� �� ������; ������ ���
�����������: �� ��� ������� `linear' �� LILO ��� ����� ��� ��� �����
�� �������, ���� ��� ������ �� ��� �������������� �� ����� ��
����� ����� ������������� ���� �� ����� �� 1024 ������� ��� ������
�� ���������� �� ��� ������ �� ��� ������.
5.2. �� 1024 �������� ��� ����� 1024 ��������
� Tim Williams �����: `��� ��� ��������� �� Linux ���� �����
1024 �������� ��� ���� ��� ��������. ��� ���� �� ����� ���� �� 1
GB �����'. �� ������� ��; ���� ���� ���� SCSI ������ ��
AHA2940UW ������� �� ������������ ���� H=64, S=32 (������ ��������
�� 1 MiB = 1.05 MB), � H=255, S=63 (������ �������� �� 8.2 MB),
������� �� ��� �������� ���� ����� ��� �� BIOS. ������������ �� BIOS
�������� �� ����, ���� �� 1024 �������� ������ ���� �� 1 GiB, ��
�� Linux ������������ �� ������ ��� �� LILO ����� ��� �� ���� ����
��� 8.4 GB.
6. �������� �����, ����������� ��� `���������'
disk!geometry disk!partitions ��� ���� ������ ���������� ��������
���� ������ ���, ��� ������ ������������ ��� � �����������
�����������. ��� ������ ��� �� �� ���������� ���� �� �����������
�� ��� ����������� ������������.
�� MBR ������� ���� ������ ���������� �� ��������� �� ����������
�� (���������) �����������. ������� 4 ������� ��� 4 ���������
�����������, �� ���� ��� �� �����
struct partition {
char active; /* 0x80: bootable, 0: not bootable */
char begin[3]; /* CHS for first sector */
char type;
char end[3]; /* CHS for last sector */
int start; /* 32 bit sector number (counting from 0) */
int length; /* 32 bit number of sectors */
};
(��� CHS ����� Cylinder/Head/Sector).
����� �� ���������� ����� ��������: � ������ ��� ���������� �������
��� �� �� ����� �� 24-bit begin ��� end, ��� �� �� ����� ��
32-bit start ��� length.
�� Linux ������������ ��� �� ����� start ��� length ���, ����, ������
�� ����������� ����������� �� �� ��� 2^32 ������, ������,
����������� �� ��� 2 TiB. ��� ����� 100 ����� ���������� �� ���
��������� ������, ���� ������ �� ����� ����� ��� �� ������ 8
������ �����. (����, �� ����������� ������ �� ����� ��� �������,
���� ������ � ������ ���������� ��� �� ��� ext2 ������ ����� ��
������� �� 32-bit �������� ��� ����� �� ������ �� ����� ���������
�� 2 GiB.)
�� DOS ������������ �� begin ��� end �����, ��� ������������ ��� BIOS
INT13 ����� ��� ������� ��� �����, ��� ���� ������ �� ��� ������ ��
��� 8.4GB, ���� ��� �� BIOS �� ����� ��������. (�� ����������� ��
������ �� ����� ��� �� 2.1 GB �� ���������� �� FAT16
���������). �� ���� ���� ��� ��� �� Windows 3.11 ��� WfWG ���
Windows NT 3.* ��� Novell NetWare.
�� Windows 95 ��� ���������� ��� �� Extended INT13, ���
������������ ������� ���� ���������� (c, e, f ���� ��� b, 6, 5)
��� �� ������ ��� � ��������� �� �������������� ����. ���� ���� ��
���� ���������� ���������������, �� ����� begin ��� end �������
������ ������� (1023/255/63). �� Windows 95 OSR2 ��������� �� FAT32
������ (���� ���������� b or c), �� ��������� ����������� �� ���
2 TiB.
�� ����� ��� �� ��� ������ �� fdisk ��� `�������������'
�����������, ���� ���� ������������� ��� ����� �������; ������ ����
'�����': �� ����� �� begin ��� end ����� ������ ����������, ���
����� �� DOS, �������������. (��� �� �� ������ �� ��������, ��
�� ����� ��� �� ������ �� ���������� ������� ������� �� ��
1024 - �� ������ ����� '�������' ���� ���� ����������� �� 1024
��������.). ����� ���, �� ����� �� start ��� length �����, ���
����� �� Linux, ��� �� Windows 95 ���� �������� ���������� �� ���
c, e � f, ��� ��� ����� �������. ����, �������� ��� ���������������
�� ���� �� cfdisk ����� ������������� ��� ���� ��� ����� ��� ��
Linux. �������� ���� � ������ ���������� �� �� DOS. �������������� ���
������� cfdisk -Ps /dev/hdx ��� cfdisk -Pt /dev/hdx ��� �� ����� ���
������ ���������� �� /dev/hdx.
7. �������� ��� ����������� �����
disk!geometry translation BIOS!translating BIOS!LBA support �
�������� �� ����� (�� ������, �������� ��� ���) ����� ���� ��
��� ���� �� MFM ��� �� RLL. ������� ��� ����� ��� ���� �
�������������. ������, �� �� IDE � SCSI, ������ ��� ����������� ����
����� � `����������' �������� ��� �����. ����, � ������ ��
����� ��� ���� ����� ���������: ������ ����������� ������ ���
������� �� ����� ��� ���� ��� ������ `����������' ������ �����
��� ����. ��������: � IDE ������ INITIALIZE DRIVE PARAMETERS (91h)
��������������� ��� �� ���� ���� ����� ���� ������ ��� ������/����
���������� ��� ���. ����� ������ �� �� ����� ��� ������ ��������
����� �� 2 ������ �� ������� 15 � 16 ������ ��� BIOS, �� �� BIOS
�� ������� 255 ������ ��� �����������.
��� ��� ������ ����� ������� �� ��� �� ����� �� ��� ������� �����
����� ����������� �� 0, 1, ..., ��� �� ����� �� ����������� ��
���� �� ��������� � ���� ������ ���� �����. ���� � �������� ��������
������� LBA.
���� � ������ ����� ����� �� ����: �� DOS, � ������� ����� �������,
���� ��� BIOS, ���������� �� (c,h,s). �� BIOS �� ���������� �� LBA
�������������� ��� ������ �������� �� ������������ � �������. �� �
������ ����� �� LBA ��� ��� � ���� ��������������� ��� ���
�������. �����, ������������ ��� �� (c',h',s') �������������� ��
�������� �� ������� � ������ ��� ���� ������� � �������.
�������� ��� ������ ������ ���� ���� ����� �� `LBA': ��� ����
�� ��������� ��� ��������� �� ����� �������� `��������
������������� ������ = Linear Block Addressing' (�� �������� ��
�� ������������� CHS). ��� ���� ��� BIOS Setup, ��������� ���
����� ��������� �� ������� ����� �������� `��������� LBA = assisted
LBA' - ����� ������� �� ```'''.
���� ������� �������� ���� � ������ ��� ������������ �� LBA ���� ��
BIOS ����� ��� ��������. (��� setup �� ����� ����������
`Large'.) ���� �� BIOS ���������� �������� (C,H,S) ��� ���������
������ ��� ������������ (C',H',S') ���� ���������� �� ��� �������.
����� S = S', C = C'/N ��� H = H'*N, ���e N ����� � ���������
����� �� �� �� �������� ��� C' <= 1024 (���� � �����������
������������ ���� �� ��� �� C' = C/N). ��� ��������� �������
���� 8.4 GB (7.8 GiB).
(� ����� ������� ��� setup ����� ����� � `Normal', ��� �� �������
����� ��������.)
��� �� BIOS ��� ����� �� `Large' � `LBA', ��� ������ ����� ��
�����������. ����������� ����� ��� �� OnTrack � EZ-Drive
������������ ��� ������� ���������� �� BIOS �� ��� ����� ���.
��� ����� ����������� �� �� �� ������ � ������ �� ����������
��� MBR ��� ��������� ������ (�� OnTrack �������� ��� ��� �����
DDO: Dynamic Drive Overlay), ���� �� ���������� ���� �� ���������
������. ���� ����� � ���� �� ������ �� ������ ���������� ��
������� ��������� �� ������� �� ������� ��� ������ ��� �����������
�����.
�� ���������� ����� ����-��� �� ���� �� �� �������� �� BIOS - ����
�� ������ ���������� ���������� �������� ���� ���� ����� ���
������������ ����� ����������.
�� Linux ����������� �� OnTrack �� ��� ������ 1.3.14, ��� �� EZ-Drive
�� ��� ������ 1.3.29. ����������� ������������ �������� �������.
8. �������� �� ����� ��� ������ IDE
disk!translation done by kernel ��� � ������ �������� ��� ������
������ ���������� ����� �� ���� IDE �����, �� ����������� ��
��������� ��� ����� ��� � �����������, ���� �� Linux �� ������ ���
����� ����������� �� �� ������, ��� ����������, �� DOS �� �� OnTrack
� �� EZ-Drive. ����� ���, ��� ������� �������� ���� � �������� ���
������ ��� ������ ������ - ���� � ������ `hd=cyls,heads,secs' ������
�� ��������� ��� ��������� �� �� ���������� �����.
� ����������� ������� �������������� 4, 8, 16, 32, 64, 128, 255
������ (�������� �� H*C ������) ���� ���� C <= 1024 � H = 255.
�� ������������ �������� - �� �������������� ����� �� ������� ��
����������� ���� ��� ��������. �� ��� ��������� ���� �� �� ��
������� �� ���� �� ���������� �������� �� ����������� ������.
8.1. EZD
disk!EZ-Drive translation disk!EZD translation �� EZ-Drive ���������
�� �� ��� � ���� �������� ��������� ��� ��� 55. � ��������
���������� ��� ����������� ������� ���� �� ������ ���������� ��
����� 0 - � ������� ���������� �� ��� ����� 1. �� ������� ������
�� ����� ��� ����������, ���� ������� ���� ����� 0
���������������� ���� ����� 1. ���� � ��������� ������ �� �������
����������������� ��� ����� �� #define FAKE_FDISK_FOR_EZDRIVE 0
��� ide.c.
8.2. DM6:DDO
disk!OnTrack DiskManager translation disk!DM6:DD0 translation �
OnTrack DiskManager (���� ���� �����) ��������� �� �� ������ ���
� ���� �������� ��������� ��� ��� 54. � �������� ����������
��� ��������� ������� ��� �������� � ������ ������������� ���� 63
������ (���� � ����� ������ 63 �� ����� � ������ 0). ����, ���
�������� MBR (�� ��� ������ ����������) ���������� �� ��� ��� �����
0. ����� �� ������� ��� �� ����������� ����� ��� �� DDO - ��� ��
��� ������� ��� � ������ ���� �������� ������.
8.3. DM6:AUX
disk!OnTrack DiskManager translation disk!DM6:AUX � OnTrack
DiskManager (���� ����� ������) ��������� �� ��� ����
�������� ��������� �� ��� ��� 51 � 53. � �������� ����������
��� ����������� �������.
8.4. DM6:MBR
disk!OnTrack DiskManager translation disk!DM6:MBR ��� ���������
������ �� OnTrack DiskManager ��� ��������� �� ��� ��� ����������
���� �� �� ������� ��. (�������� �� � ��������� �� ���������
��� ���� 2 ��� 3 bytes �� MBR ��� ����� ������� �� 430, �� �
������ ����� ��� �� 0�55AA ��� �� ����������� �� ��� byte). ���� �
�������� ���������� ��� �������.
8.5. PTBL
disk!PTBL translation �����, ������ ���� ������ �� ��������� ��
���� �� �������� �� ��� ����� start ��� end �� ��������
����������: ��� ������ ��������� ��� ���� ��� ����� ����� 1 ���
63 ��������� ��� ��� ������� ������ 31, 63, 127 � 254, ���, ����
����� �� ����������� �������� ��� ���� �� �������, ���, ������,
�� IDE ����������� �� ��� 16 ������, ������������ ��� �� BIOS
��������� ��� � �������� ������� ��� �� �������������� 32, 64, 128
� 255 ������ ���������. ����� ���, ��� ������� ����� ������ ���� �
���� �������� ��� ��� 63 ������ ��� ���� ��� ��������� 63
������ (�� ����� ��� ��� ��� ����� ��� ������ ���������).
9. ��������
disk!consequences of translation �� �������� ��� ���; ��� ���
������� �� Linux ��� ��� ������: ������ �� ��������� ��� �� LILO
��� �� fdisk ������������ �� ���� ��������, ��� ���� ��� ��
fdisk ����� � �������� �� ��������������� ��� �� �� ����
���������� ���� ���� �����, ��� ��� �� LILO ��� �� �� �������� ��
���� ���������� �� �� BIOS ���� ��� �������� (����� ��� �� ��
��������).
�� ����� �� fdisk ��� �� ��������; ��� ��� �����, ��������������
�� HDIO_GETGEO ioctl, ���� � ������� ������� ��� ��������.
�� ����� �� LILO �� ��������; ��� ��� ����� �������������� ��
HDIO_GETGEO ioctl. ���� � ������� ������ �� ������� ��������������
��� ������� `disk=' ��� /etc/lilo.conf (����� �� lilo.conf(5)).
�������� �� ����� ��� ��� linear ������� ��� LILO, ��� �� ����������
LBA ��������� ���� ��� CHS ���� ����� ��, ��� �� ���� �� ��������
���� ��� �������� (�������������� ��� INT 13 Function 8 ��� ��
������ ��� �� ��������).
�� ����� � ������ �� �� ���������; ���� ��' ���, ������� ������ ��
��� ������ �� �������� �� ��� ������ `hda=cyls,heads,secs' ����
����� (����� bootparam(7)), ��� ����������� � ������� ��� boot
loader �� ���� ��� ��� ��������� ���� �����. ��� ����������
�������� �� ����� ��� LILO �� ���� ��� ������ ��������� ������������
�� `append = "hda=cyls,heads,secs"' ��� /etc/lilo.conf (�����
lilo.conf(5)). ���������� � ������ �� �������, ������
�������������� ����� �� ����� �� �� BIOS � ��� �����.
����� ����� (�� ��� ����� 2.1.79) �� �������� �� �������� ����
����� �������������� �� /proc. ��� ����������
# sfdisk -g /dev/hdc
/dev/hdc: 4441 cylinders, 255 heads, 63 sectors/track
# cd /proc/ide/ide1/hdc
# echo bios_cyl:17418 bios_head:128 bios_sect:32 > settings
# sfdisk -g /dev/hdc
/dev/hdc: 17418 cylinders, 128 heads, 32 sectors/track
#
9.1. ������������� ��� ���������� �� LILO
������� ����� ����� ������� �� ������� �� �������� �������������� ��
`hda=cyls,heads,secs' ��� ������ ������ �� �����. ����� �����
���������� secs=63, ��� � ���� �� �� ���������� ����� ��� ��
������� �� heads. (������� ����� ������ ����� heads=16 ���
heads=255.) �� �� ������ �� ������� ��� �� cyls? ������ ��� �����
�� �� ���� �� ���� ������� ����������� ��� C*H*S ������. ���
����������, ��� ��� ����� �� 71346240 ������ (36529274880 bytes) �� C
������������ �� 71346240/(255*63)=4441 (��� ���������� ��������������
��� �������� ��� �� bc), ��� � ���������� ��������� �����
hdc=4441,255,63. �� ������ ��� ���� �����������; ��� ����������,
# hdparm -g /dev/hdc | grep sectors
geometry = 4441/255/63, sectors = 71346240, start = 0
# hdparm -i /dev/hdc | grep LBAsects
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=71346240
����� �� ����� �� ����� ��� ������ ����� ����� 71346240. �
������ ��� �����
# dmesg | grep hdc
...
hdc: Maxtor 93652U8, 34837MB w/2048kB Cache, CHS=70780/16/63
hdc: [PTBL] [4441/255/63] hdc1 hdc2 hdc3! hdc4 < hdc5 > ...
�� ��� ���� ��� (���������) 34837*2048=71346176 ��� ���
(���������) 70780*16*63=71346240 ������. �� ��� ��� ��������, �
������ ���� �������� �� ����� ����, ���� ������ ��� �� �� ������
�� ��������������� ���� �� ���. ���� ����� ���� ���� ����� ��
������������ �� ������� �� ����� ���� �� hdparm ��� �����
���������. ���� ��� ������� ��� ������ ���� ��� �� cyls! ����
�������� �� SCSI ����� � ������� ������ �� ����� ������� ����
��� ��������:
SCSI device sda: hdwr sector= 512 bytes. Sectors= 17755792 [8669 MB] [8.7 GB]
(��� �� MB, GB ����� ����������������, ��� ���� �� ���, ���
`������').
10. ������������
10.1. IDE - �� ��� ���������
disk!IDE geometry setting � IDE ����� ��� ����� ����� ���������
��� �� ��������. � ���� (G_user) ����� ��� �� �������� �� ���
������ ��� ������ ������. � ������ (G_bios) ����� � �������
��������� ����� �� BIOS (Fixed Disk Parameter Table) (��� ��� ����
��� ������ ����� ���) �� ���������� ���� ��� �������� ��
���������, ���� ��� ������ �� ��������� 32-bit. � ����� (G_phys)
��� ������� (G_log) ������������ �� ��� ������� IDE �� �������� ����
������ IDENTIFY - ����� � `������' ��� `������ ������' ��������
���������.
�� ��� ����, � ����� ���������� �� ����� ��� �� ��������: �� ��
��� ��� G_fdisk, �� ����������� �� �� HDIO_GETGEO ioctl, ��� ��
��� ���� ��� G_used, �� ��������������� ��� �� ��������� I/O. ��� ��
�� ������������ �� G_user ��� ��� �����, �� G_bios ���� ���� ��
���������� ����� ���������� ���� �� �� CMOS, � �� G_phys �� ������
�� �� ���������� ��� ����� ���������. ��� �� G_log �������� �����
��� �� G_used ��������� �� ��. ����������, �� �� G_used ��� �����
��� ��� �� G_phys �������� ����� ��������������� �� G_phys ��� ��
�������� �� G_used. `�����' �������� ��� � ������ �� �����
����� 1-16.
�� ���� ����: � ������ ������ ���������� �� BIOS, ��� �� ���������
�� �� ��� �� fdisk, ���� �� ��������� ��� ����������� �������� (��
������� �� 16 ������), ��� �� �/� �� ����� �� �������������� ��
����� ��� ������� IDENTIFY.
�������� ��� �� G_bios ����� ������ ����������: ��� �������� ��
�������� �� SCSI � ����� ��� ������� ������ ������ �� ����� SCSI
��� � �������� �� ������� �� BIOS ��� sda ������ �� ��������������
�� ��� ����� ��� �� hda. ������, �� ������ �� ��� ���������� ���
setup �� BIOS ��� ��������� �� �� BIOS. ��� �������� ���, �.�., ��
��� ������ �� IDE ������ ���, �� �� hdb �� ����� ��� BIOS setup, �
�������� �� ��������� �� �� BIOS ��� ��� ���� ��� ������ �����
�� �������������� ��� �� hda ��� hdc.
10.2. SCSI ������������
disk!SCSI geometry setting ���� �������� �� SCSI �� �������� �����
���� ����������, �� �� SCSI ������� ��� ������������ �������
�������, ���� � `��������' ����� ������ ����� �� �� �/�. �����
���, � ������� ���������� ����� �����, ��� ���� �� fdisk ������ ��
���� �� ��������, �� ������������ ��� �� HDIO_GETGEO. ����, ��
fdisk ��� �������� ����� �� IDE ��� SCSI �����. ��� �� �����
�� ��� ������� ��������, �� ������� ������ ������������ � �������
���� ���������� ��������. ������ ���������� ���������.
�� ��� �������������� �� DOS, ��� ������� ���� ��� ������� ��
���������, ��������������� 64 ������, 32 ������/���� (��� ���
����� 1 MiB ��� �������), �� ����� �����, ���� �� ��� ����
���������� ���� ��������� ��� ����� �� ��� ���� ������� ���� ����.
������� SCSI ������ (aha152x, pas16, ppa, qlogicfas, qlogicisp) ��� ��
���������� ��������� �� �� DOS �� �� ��� �������� ��
��������������� ��� �� 8 GiB ���� ��� �� ������ �� ��� Linux.
��� ����� bug.
���� ����� � ���������� ��������; � �������� �������� ����� ��� ���
������. ���� �� �� �����, �� ������ �� ��� ������ ��� ������ ����
�� �� ����� ��� fdisk � �� LILO � ��� ����� ���� �����. ����� ������
����� �� SCSI ������� ��� �� �����. �� �� ��������: ��� �������
������ ���� ��� fdisk/LILO/kernel ��� ���������� �������� ��� SCSI
�����.
���� �� ����� ��������� ��� ��������� �������� �� ������� ��� �����.
������ � ��������� ������ READ CAPACITY �� �� ���� �� ������� ��
����� ��� ������ ��� � MODE SENSE ������ �� ��� ������ Rigid Disk
Drive Geometry (04) ����� ��� ����� �� ����� ��� �� �������
(��� �� ������ �� �������) ��� ��� ������ Format (03) ����� ���
����� �� bytes ��� ����� ��� ����� ��� ����. �� �������� ������
��� ����� ������, �� � ������ �����/���� ��������� �� ���
������ �� �����: ��� ������� �� ����� ������ �����������
������/����. �� �������� scsiinfo ��� Linux �� ��� ���� ���� ���
����������. ������ ������ ������������ ��� ��������� ��� �����
�������� ��� ������ (��� ��� �� ���� �� ���������) �� ����� ��
�����. ����, ���� ��� ��������� �� fdisk ��� �� LILO, � �������
���������� ����� �� ��� C/H/S=4476/27/171 - ����� �� �� ������ ��
�������������� �� �� fdisk �� � ������� ���������� ������������
10/8/6 bits ��� �� C/H/S.
��� ��� �� �� �� HDIO_GETGEO ������� ��� ����������; �� ���
������� SCSI � �������� ��� ��������. ������� ������ ������� ���
������ ��� ���������� �������� ����, ������, ������ ��� �,�� ��
DOS � �� fdisk �� OS/2 (� �� AFDISK ��� Adaptec, ���) ������������.
�������� ��� �� fdisk �� linux ���������� ��� ����� ����� ���
�����/���� � ��� S ��� �� ��������� LBA ������ �� c/h/s ���� �
������ �� ������� C ��� ����������. ������� ������ ������������
(C,H,S) = (1023,255,63) ��� �� ������ ��� � ����������� �� �����
����� ��������� 1023*255*63 sectors. ��� ����� ����, �� ���
��� ����� �� ��������� ������� ��� �� ���������� �� ���������� fdisk
�� ������ 8 GiB - ���� ������ ������ ����������.
���� �������� �������, �� � ������ ��� ������� ����������� ��
����� ��� C, H, S � ������ �� �������, ����� ��� ������/����.
����� �� H, S �� ��������������� �� C �� M / (H*S).
���� ������, H=64, S=32.
aha1740, dtc, g_NCR5380, t128, wd7000:
H=64, S=32.
aha152x, pas16, ppa, qlogicfas, qlogicisp:
H=64, S=32 ���� ��� C > 1024, ���� H=255, S=63, C = min(1023,
M/(H*S)). (�� C ���������� ��� �� H*S*C ��� ����� ����������
�� M. ��� �� �������� ��� ����������� ������� �� fdisk.)
�� ppa.c ������������ M+1 ���� �� M ��� ���� ��� �� �����
�� ��� bug ��� sd.c, ��� �� M ����� ���� ���� 1.
advansys:
H=64, S=32 ���� �� C > 1024 ��� ���� � ������� `> 1 GB' ��
BIOS ����� ��������������, ���� H=255, S=63.
aha1542:
������ ��� ������� ���� �� ��� �� ���������� ������������
��� �������������� ���� H=255, S=63 � H=64, S=32. ���� ����
�������� �� ����� ���� ��� �������� "aha1542.c: Using extended
bios translation".
aic7xxx:
H=64, S=32 ���� �� C > 1024, ��� ���� � ������� "extended" ����
��� �������� ������� � �� `extended' bit ��������������� ���
SEEPROM � BIOS, ���� H=255, S=63. ��� Linux 2.0.36 ��� �
�������� ����� ��������������� �� �� ������ SEEPROM, ���� ���
Linux 2.2.6 �� �� ������ SEEPROM � �������� ��������������� ��
� ������� �� �������, �������������� ��� ��������� ���������
(�� ������ SEEPROM, � ���������� ���������). ��� �������� ���
�� setup �� ������ ��� 2.0.36 ������ �� ��� ��������� ���
2.2.6 (��� �� ������� ��� ������� `linear' ��� LILO, � ���
��������� `aic7xxx=extended' ���� �����).
buslogic:
H=64, S=32 ���� ��� C >= 1024, ��� � extended ��������
�������������� ���� �������, ���� �� M < 2^22 ��� H=128, S=32;
����� H=255, S=63. ���, �� ����� ��� � ������� ���
(C,H,S), � ������� ���������� ���������� ��� �� ��� ��� �����
���������� (H,S) = (64,32), (128,32), (255,63) � ����
�����H=H-1 ������, ������ �� ������ (H,S) ���������������, ���
�� ����� "Adopting Geometry from Partition Table" �������
���� ��� ��������.
fdomain:
������ �� �������� ���� ���������� ����� �� BIOS, � ��������
��� ������ ���������� ��� �������������� H=��������H+1,
S=��������S ��� ��� ���� ���������, ���� ����� �����, �
�������������� H=64, S=32 ��� M < 2^21 (1 GiB), H=128, S=63 ���
M < 63*2^17 (3.9 GiB) ��� H=255, S=63 ����������.
in2000:
�������������� �� ���� �� �� (H,S) = (64,32), (64,63),
(128,63), (255,63) �� �� ���� C <= 1024. ���� ��������
��������, ��� �� C �� 1023.
seagate:
�������� �� C,H,S �� ��� �����. ��� �� C � S ����� ���
������, ��� ����� S=17, H=2 ��� ����������� �� H ���� C <=
1024. ��� �������� ��� �� H �� ����� 0 �� M > 128*1024*17 (1.1
GiB). ��� ����� bug.
ultrastor and u14_34f:
��� �� �� ���� (H,S) = (16,63), (64,32), (64,63)
���������������, ������� �� ��� ���� ���������� �� �������.
�� � ����� ��� ����� �� ��������, �������� �������������� ���
������ ���������� � �������������� ��� ������� �����������.
�������� ��� ������ ����������. �����, ���� ������, �� �����������
�������� �� ���� ��������, �������, �� �������� ��� ���� =
(�����C,�����H,�����S) ��� ����������� ���������, ���� ������ H =
�����H+1 ��� S = �����S. (�������� ��� �� ������ ���������� ��
�� 1.) �� ����������� ������������, �������� �� �������. �� ���
������ ������� ���������, ��������� ��� ��������� �� �� ���������
����C. ��� ��� ��� ���������, ������� �� �����+1, ������������
������������ �� ��� ��� ����� ��� ����������� ��� � ���������
�������� �� ���� �������. �� ��� �� �� ����� ����� � ��
�����C = 1023 ��� ���+����� ����� ������� ����������� ��
(�����H+1)*�����S, ��� ��������� ��� � ��������� ����� ����
������������� �� �� ���� �� �������, ��� ������ H = �����H+1
��� S = �����S. �� �� ������, ���� ������ ��� ������
�����������, ���� ������ ��� ��������� �����, ��� ������� ���� ���
�� ����������� �� ����� �. ���������: ������ H = M/(62*1024)
(���������������� ���� ���), S = M/(1024*H) (����������������
���), C = M/(H*S) (�������������� ���). ��� ��� �� ���������� ��
���� �� (C,H,S) �� �� C �� ��� 1024 ��� �� S �� ��� 62.
11. �� ���� �� Linux �DE �� 8 GiB
O Linux IDE ����� ������� �� �������� ��� ����������� �� �����
(��� ���� �����) �������������� ��� ����� ATA IDENTIFY. ����
������, � ����� �� �� ������ ��� ����������� ���� ��� lba
������������ (lba_capacity), �� ���� ��� �� 10% �� ���
������������ �� C*H*S. ����� ���, �� ������������, �� ������� IDE
������ (�� ����������� �� 16514064 ������) ��������� �� C=16383,
H=16, S=63, ��� ��� ����� 16514064 ����� (7.8 GB), ���������� ��
���������� ��� �������, ���� ����� ��� ���������� ����������� ��
lba.
�� ������� ������ (2.0.34, 2.1.90) �� ����� �� ��� ��
��������. �� ���� ��������� ����� ��� �� ������ ��
��������������, ��� � ������ ������ ��� 8 GiB �� ���� ���
��������� �����, ��������� �� �������� �� ������ lba_capacity_is_ok
��� /usr/src/linux/drivers/block/ide.c �� ���� ���
static int lba_capacity_is_ok (struct hd_driveid *id) {
id->cyls = id->lba_capacity / (id->heads * id->sectors);
return 1;
}
��� ��� ��� ���������� ������ ����� �� 2.1.90.
11.1. BIOS ���������
��� ���� ������, �� ������� ������ ��������� C=16383, H=16, S=63
���������� �� �� ��������� ��� �������, �� �� ��������� �������
����������� �� LBAcapacity. ������ BIOS ��� �� ���������� �� ���
��������� �� 16383/16/63 �� ���� �� �������� �������� ���
����������� ������, �.�. 1024/255/63 � 1027/255/63. ����, � ������
�� ������ �� ���������� �� �������� 16383/16/63, ���� ��� ���
����������� ������� ��� �� BIOS. �� ��� ����� 2.2.2 ��� ���
���������� (�������������� �� � ��� S �� BIOS ��� ������������� ��
C = �����������/(H*S)). ����� �� ������� ������ �� �� ��
�������� � ������ �� Normal ��� BIOS (� ���� ������� �� None, �����
�� �������� ����� ��� BIOS). �� �� ��� ����� ���� ������ ������
�� ���������� �� ��� � �������������� DOS/Windows ��� � ����������
�� 2.2.2 � ��������� ������ �� �������, �������������� ����������
��������� ���� �����.
11.2. �����������
������ IBM ������ ��� ����������� (jumpers) �� ��������� ��
��������� ����� �������� 15 � 16 �����. �� ������� �������� ��
��� ���� 16 ������. ������� ����� ��� �� �� ��������� ����� ���
���� ����� �����, ������� ����� �� 15 ������ �������� ��������
������. ������ ���� ���� ���� ��� ��� ��� �������: � Petri
Kaukasoina �����: `���� 10.1 Gig IBM Deskstar 16 GP (IBM-DTTA-351010)
���� ���������� ��� 16 ������ ���� ��� ���� PC (�� AMI BIOS) ���
�������� ��� ������ �� �� ����� �� 15 ������. �� hdparm -i ����
��� RawCHS=16383/15/63 ��� LBAsects=19807200. ���������� 20960/15/63
��� �� �� �� ������� �����������.' � �������� 16383/15/63 ���
������������ �� ��� �����, ���� ����������� ���������� ���������.
��� ��� �������� �����
http://www.storage.ibm.com/techsup/hddtech/hddtech.htm.
11.3. ����������� �� ������ �� ������� �����������
������ ������ ��� ����������� �� ����� ��� ����� �� ��������
���������. ������ �����, ��� ������ ������� ������� �� Linux �� ��
����� �� �� ��������������, ���� ������ BIOS ������� �� �������
������. � ������ ��� ����� �� ��������� ��� ����� �� �� �� BIOS.
���� �� ������� ��� �� ��� ����� � ������ ���������.
�� ���� ����� ���� ���� �� 4096 ������� (������, 16 ������ ���
63������/����, 2.11GB). ��� ����������, ���� Fujitsu MPB3032ATU 3.24
GB ������ ��� �������� 6704/15/63, ���� ������ �� ��������� ��
4092/16/63, ��� ���� ������� LBA ����������� 4124736 ������, ���� ��
��������� ������ �� ������ �� ������� ��� ���� �������������
����� ����������. �� ��� ��� �������� (�� ��� BIOS �� ������� ����
��� ��� ������� ����� � ������ ���� ������������� ���� �� ����������
� ����������) ����������� ���������� ��������� ��� �� ����� ��� Linux
�� ������� �� �����.
�� ����������� ������ ������ �� ��������� �� ������ 2GB ��� ����
�� ������� ��� ������� �������� �� 4092/16/63 � 4096/16/63, ����
���� ������� ��� ����� LBA �����������. ������� ������ ������
���� ��� ������� ��� ����� ����������� ��� Linux, ����� �� ���
������ �� ����������.
��� ��� ������ ���� ����� ``�� ���� �� 33.8 GB''. ������
���������� �� ��� 2.3.21 ����������� patch ��� �� �������� ��
�������������� ���������� IDE ������ �� 33.8GB. �������
���������� ������ ������ �� �������� �� ����������� ���� ��
����������� �� 33.8 GB. ��� ����������, � IBM Deskstar 37.5 GB
(DPTA-353750) ������ �� �������� ���� �� ���������� �� 33.8 GB, ���
���� ������� �������� 16383/16/63 ��� ���� �� ������� ������, ����
LBA ����������� 66055248 (��������� �� 65531/16/63 � 4111/255/63)).
�����, ���� �������� �� 33.8GB, ����������� ���������� ��� �����
����������� ��� Linux. ����� �� the BIOS 33.8 GB limit.
12. �� ���� �� 65535 ������� ��� linux
�� HDIO_GETGEO ioctl ��������� ��� ����� �� ������� �� ���
short. ��� �������� ��� �� ��� ��� �� 65535 ��������, � ������
����������� ��� (��� ��� ���� SCSI ����� �� 1 MiB ��� �������)
���� ������ 80 GiB �� �������� �� 16 GiB. ����� ����������� �� ��
�������, ��������� �����.
12.1. IDE ���������� �� ������ 34+ GB
������ ���������� �� 33.8 GB �� ������ �� ������ ����������
�� 2.3.21. �� ������������ �����: �������� ��� ��������� ��� ���
IBM-DPTA-373420 ����� �� ����������� 66835440 ������ (34.2 GB).
������ ���������� �� 2.3.21 �� ��� ���� ��� �� ������� �� �����
����� 769*16*63 = 775152 ������ (0.4 GB), �� ����� ����
�����������. ��� �������� ��� ���������� hdc=4160,255,63 �� �������
����� - ���� ���������. �� ��������; � ������ idedisk_setup()
������� �� �������� �� ������� � ������ (�� ����� 16383/16/63) ���
����������� �,�� ����� � ������� ��� ������ ������, ���� �� ��������
�� ������ �� ��������������� ��� ��� �� �������� �� BIOS. �
������ current_capacity() � idedisk_capacity() ���������� ��� �����
������� �� 66835440/(16*63)=66305, ���� �� ����������� �� short
�����, ������� 769. ����� � lba_capacity_is_ok() ��������� ��
id->cyls, ���� ������ ����� �� �� �� ����� ����� ��� � ������ ��
����� 769*16*63. ��� ������ ������ ������ patch. ��� ��� 2.0.38
������ �� ������ ��� ftp.kernel.org. ��� ��� 2.2.12 ����� ���
www.uwsg.indiana.edu. �� 2.2.14pre ������ ����������� ���� ���
������. ���� 2.3.* ������, ������ ���������� �� ��� 2.3.21.
�����, �� ������� ������ �� `����' ``�������������� ���
�����������'' ��� �� ����� �� ������� �� 33.8 GB. �� ������
���������� ��� ``���������� �� BIOS'' �� ��������� �� ������ ��
���������� �� ������ �� �� �� �����.
13. ����������� ��� ������� �����������
``�������,'' ������ ��� �� ���� �� MBR (������ 0): ������ ��
������ ������������ �� 4 ������� ���������� 16 byte � ���� ���,
����������� �� �� AA55 �������. ����������� ��� 5 � F � 85
(����������) ��� ������ �������: ��������� �����������
�����������: �������� �� ����� �� �� ���������� �� �������
�����������. (����, ��� ���������� ��������� ����� ���� ��� �����,
�� ������ �� �������������� �� ��� ���, ���� ��� �� ������
���������� �� �������.) ��� � ��������� �� ���� ����� ����
����������� ���������� ����� ���������. ���� � ����� ������ �������
���� ������ ���������� �� 4 �������: ��� ������, ��� ���������� ���
�� ��������������. �� ��� ��� ���� ������ �� ����������� ���
������ ������ ����������� ����� ���� �����, ��� � ����� �������
��������� ����� ��������� ����������� ��� ��� ����������, ��� ����
������� ������� ��������� ��� ������ ��������� ��� ��� ����� ��
������ ������.
����� �������� �� �� ���������� ��: ���� ������� ������� �����
������ ������� ���������� ��� ����� ��, ����� �� �����: ����� ��
�������� �� ���� ����; � �������� ����� ����� ���. ���� ��
������������� ������� �����������, ��� �� ������� �� ���������
��� ����������� ���� �������� ���� ��� �� ���������� ��� ��� ��
�������� �� ������ ���� �������.
�� sfdisk �� ������ ��� ��� ������. �.�.,
# sfdisk -l -x /dev/hda
Disk /dev/hda: 16 heads, 63 sectors, 33483 cylinders
Units = cylinders of 516096 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End #cyls #blocks Id System
/dev/hda1 0+ 101 102- 51376+ 83 Linux
/dev/hda2 102 2133 2032 1024128 83 Linux
/dev/hda3 2134 33482 31349 15799896 5 Extended
/dev/hda4 0 - 0 0 0 Empty
/dev/hda5 2134+ 6197 4064- 2048224+ 83 Linux
- 6198 10261 4064 2048256 5 Extended
- 2134 2133 0 0 0 Empty
- 2134 2133 0 0 0 Empty
/dev/hda6 6198+ 10261 4064- 2048224+ 83 Linux
- 10262 16357 6096 3072384 5 Extended
- 6198 6197 0 0 0 Empty
- 6198 6197 0 0 0 Empty
...
/dev/hda10 30581+ 33482 2902- 1462576+ 83 Linux
- 30581 30580 0 0 0 Empty
- 30581 30580 0 0 0 Empty
- 30581 30580 0 0 0 Empty
#
����� ����� �� ����������� ���������� �������. ������ ������
������� �� ���� �� ������ ���������� ��������� ������ ��� ����
��� ��� � �� ���������� ��������� ���� ������. ����� ����� ��
������ �� ����������� ����������� �� ������� ������ ���� � ������
�� �������. (��� ����������, �� ������ �� ����� �� ��� fdisk ���
���������� �� 5, F, 85 �� ����������� ���� ��� ����������� ��� 5
����� �� ��� F.) ������ ���� fdisk �� ������ �� ��������� �������
�����������, ���� ���������� ���� ������ �� �� ���� ��� ��
��������. � ������ �� Linux �� ����� ��� ��������� ������ ��
������� �������. ������, �������� �� ���� �� ������� ��� �������
�����������. ������� ����� �� ����� �������, �� �������� �� ����
��� 5 ��� �� DOS ��� ��� 85, ����� ��� DOS, ��� �� Linux, ���� ��
fdisk �� DOS �� ��� �������� ������ �� ����������� ��� ����� �����
�� 1024 �������.
14. ������� ����������
������ ������� ��� ��� �������, �� ���� ������������� ���
������ ������. � ������� ��� �� ���������� �� ��� ��������� ���
�������� �� �����, �� �� ��� ��� �� ����� ������ �� �� �������
���. �� ������� ������ �� ��������� ��������� ���� � ��������
����� ���� ������ ���: ����� ��� ��� ����� ��� ��� �� ����� ���
���ܷ � �� ��� �� ����� ��� ��������� `linear' ��� LILO �� ���
������� ���� �� `LI' ���� ������. �������� �� ������� �� �����
��� ��������: ��� ���������� ��������� ��� �������� (���������
������ ��� �������� ��� LILO, �� fdisk ��� ��� �����) ���
��������� ����� �� �� ������. �������� ��� ����� ������� �� ���
���.
��� ��������: ������ ��� Linux �� �������������� � ��������, ����
������ ������� �� ������ �� ����������� �� ����. � ��������
�������������� ��� �� �� LILO ��� �� fdisk. ����, �� �� LILO ���
������ ��� �����, ������ �� ����� ������� ���������. �� ����������
���������� ��� ������������ ��� ������ ����������, ������ �� �����
������� ���������. ������ ����������. �����������, �� �� mount ��
������ ��� �������� ��� �� �������� �� ������� ����� ����.
14.1. �������: �� Linux ������������ ����� �������� ��� ��� �����
��.
����� ����� ���� ������ �� ����� ����� ��������. � ������ ��� ��
BIOS ��� �� hd0 ��� hd1 (��� ������ 80H ��� 81� ���� �� �� BIOS)
��� �������� ��� ����� ��� �� hda ��� hdb. ���� �� ��������� �� SCSI,
�� ����� �� ������ ������ �� ����� SCSI ��� � ������� ������, ��
����� ����� IDE hda ������, ������� �� �������� �� sda. ���
������ ����� �� ��� ��������� ��������� `hda=C,H,S' �� ���
���������� ����� C, H ��� S, ���� ���� ��� �������� � ���
/etc/lilo.conf.
14.2. �������: ����� ������ ��� ���������� ��������
`��� �� ������ ������ 10GB IBM. �� fdisk ����� ��������� �������
���� ������. �����:
# fdisk /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 /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
�� ���;'
�� �������� ��; ���� �� ���, �� ������ ����� �������� 10GB: �� hdb
��� ������� 255*63*1232*512 = 10133544960, ��� �� hdd 16*63*19650*512
= 10141286400, ���� ������ �� �������� ��� � ������ ��� ������ ���
��� �� ��� 10.1 GB. ����� � ������ ��� �������; ��� ��������
������ � ������ ������� ��� ���������� ��� ��� ����� �� IDE
������ �� �� BIOS, ��� �� BIOS ��� ����� ���� hdb 255 ������ (���
16*19650/255=1232 cylinders). � �������������� �������� ���� 8MB.
�� ������ �������� �� �������� ��� hdd �� ��� ���� ���� ��� �� �����
���� ����� ���� ��� �������� `hdd=1232,255,63'.
14.3. �������: �� fdisk ������ ���������� ���� �� �� df
To fdisk �� ��� ��� ��� ������ (blocks) ������ ���� �����. ��
������������ ������ �����, �.�. �� �� mke2fs, ��� �� ������
����� ���� ���� ��� ���� ���������� ������ 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 blocks, ������ ��� ext2 ������, ��
���������� ��� ������ ���� ��� 3574475 blocks� 521501 blocks (12%)
������� ��� inodes ��� �� ���������. �������� ��� � ������ �����
�� 3574475 ��� �� 3369664 blocks ����� �� 13 �� ���������������
��� �� 204798 �� ���������� ��� ��� ���������. �� �������� ������
������ �� ������� �� �� 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 blocks (3.3%) ��������������� ��� inodes, ����
���� 384 MB ���������� �� ����. (������ ���� inode ������������
128 bytes). �� ��� ����, ������� �� ���� �� ��� 1024000 �����
(������� �� ������), ���� �� 4096000 (���������� �����) �� �����
����.