This section gives information that is specific to disk drives.
All direct access SCSI devices with a block size of 256, 512, or 1024 bytes should work. Other block sizes will not work (Note that this can often be fixed by changing the block and/or sector sizes using the MODE SELECT SCSI command)
Sector size refers to the number of data bytes allocated per sector on a device, ie CDROMs use a 2048 byte sector size.
Block size refers to the size of the logical blocks used to interface with the device. Although this is usually identical to sector size, some devices map multiple smaller physical sectors (ie, 256 bytes in the case of 55M Syquest drives) to larger logical blocks or vice versa (ie, 512 byte blocks on SUN compatible CDROM drives).
Removable media devices, including Bernoulis, flopticals, MO drives, and Syquests.
In theory, drives up to a terabyte in size should work. There is definitely no problem with tiny 9G drives.
When partitioning, you get a warning message about "cylinder > 1024" or you are unable to boot from a partition including a logical cylinder past logical cylinder 1024.
This is a BIOS limitation.
See Disk Geometry and Partitioning for an explanation.
/dev/hd* aren't SCSI devices, /dev/sd* are.
See Device Files and Disk Geometry and Partitioning for the correct device names and partitioning procedure.
Linux attempts to lock the drive door when a piece of media is mounted to prevent filesystem corruption due to an inadvertent media change.
Please unmount your disks before ejecting them.
In some cases, the SCSI driver and BIOS will disagree over the correct BIOS mapping to use, and will result in LILO hanging after 'LI' at boot time and/or other problems.
To workaround this, you'll have to determine your BIOS geometry mapping used under DOS, and make an entry for your disk in /etc/lilo/disktab.
Alternatively, you may be able to use the "linear" configuration jfile option.
You must set heads sectors and cylinders.
You can do this from the extra functions menu.
and disk geometry is not 'remembered' when fdisk is rerun.
See Partitioning
Linux won't search LUNs past zero on SCSI devices which predate ANSI SCSI revision 1. If you wish devices on alternate LUNs to be recognized, you will have to modify drivers/scsi/scsi.c:scan_scsis().
We think this has been fixed, try upgrading to 1.1.38.
This is due to a microcode bug in the read-ahead and caching code.
>From Soenke Behrens of Conner tech. support :
During the past few weeks, we got several calls from customers stating that they had severe problems with Conner CFP1060x 1GB SCSI drives using the Linux operating system. Symptoms were corrupt filesystems (damaged inodes) reported by e2fsck on each system boot and similar errors. There is now a fix available for customers with a CFP1060x (microcode revisions 9WA1.62/1.66/1.68) and Linux. To apply the upgrade, you will need a DOS boot disk and ASPI drivers that can access the hard drive. The upgrade downloads new queuing and lookahead code into the non-volatile SCSI RAM of the drive. If you are experiencing problems with a disk that has microcode revision 9WA1.60, you will have to contact your nearest Conner service centre to get the disk upgraded. The microcode revision can be found on the label of the drive and on the underside of the drive on a label on one of the ICs. If you are confident that you can perform the upgrade yourself, please contact Conner Technical Support and have your microcode revision ready. Conner Technical Support Europe can be reached on +44-1294-315333, Conner Technical Support in the USA can be reached on 1-800-4CONNER. Regards Soenke Behrens European Technical Support
SCSI disks use block device major 8, and there are no "raw" devices ala BSD.
16 minor numbers are allocated to each SCSI disk, with minor % 16 == 0 being the whole disk, minors 1 <= (minor % 16) <= 4 the four primary partitions, minors 5 <= (minor % 16) <= 15 any extended partitions.
Ie, a configuration may work out like this (with one host adapter)
Device Target, Lun SCSI disk 84M Seagate 0 0 /dev/sda SCSI->SMD bridge disk 0 3 0 /dev/sdb SCSI->SMD bridge disk 1 3 1 /dev/sdc Wangtek tape 4 0 none 213M Maxtor 6 0 /dev/sdd
Etc.
The standard naming convention is
/dev/sd{letter} for the entire disk device ((minor % 16) == 0) /dev/sd{letter}{partition} for the partitions on that device (1 <= (minor % 16) <= 15)
Ie
/dev/sda block device major 8 minor 0 /dev/sda1 block device major 8 minor 1 /dev/sda2 block device major 8 minor 2 /dev/sdb block device major 8 minor 16
etc.
You can partition your SCSI disks using the partitioning program of your choice, under DOS, OS/2, Linux or any other operating system supporting the standard partitioning scheme.
The correct way to run the Linux fdisk program is by specifying the device on the command line. Ie, to partition the first SCSI disk,
fdisk /dev/sda
If you don't explicitly specify the device, the partitioning program may default to /dev/hda, which isn't a SCSI disk.
In some cases, fdisk will respond with
You must set heads sectors and cylinders.
You can do this from the extra functions menu.
Command (m for help):
and/or give a message to the effect that the HDIO_REQ or HDIO_GETGEO ioctl failed. In these cases, you must manually specify the disk geometry as outlined in Disk Geometry when running fdisk, and also in /etc/disktab if you wish to boot kernels off that disk with LILO.
If you have manually specified the disk geometry, subsequent attempts to run fdisk will give the same error message. This is normal, since PCs don't store the disk geometry information in the partition table. In and of itself, will cause _NO PROBLEMS_, and you will have no problems accessing partitions you created on the drive with Linux. Some vendors' poor installation code will choke on this, in which case you should contact your vendor and insist that they fix the code.
In some cases, you will get a warning message about a partition ending past cylinder 1024. If you create one of these partitions, you will be unable to boot Linux kernels off of that partition using LILO. Note, however, that this restriction does not preclude the creation of a root partition partially or entirely above the 1024 cylinder mark, since it is possible to create a small /boot partition below the 1024 cylinder mark or to boot kernels off existing partitions.
Under Linux, each disk is viewed as the SCSI host adapter sees it : N blocks, numbered from 0 to N-1, all error free, where as DOS/BIOS predate intelligent disks and apply an arbitrary head / cylinder / sector mapping to this linear addressing.
This can pose a problem when you partition the drives under Linux, since there is no portable way to get DOS/BIOS's idea of the mapped geometry. In most cases, a HDIO_GETGEO ioctl() can be implemented to return this mapping. Unfortunately, when the vendor (ie Seagate) has chosen a perverse, non-standard, and undocumented mapping, this is not possible and geometry must be manually specified
If manual specification of the is required, you have one of several options :
1 <= heads <= 256 1 <= cylinders <= 1024 1 <= sectors <= 63
You can either use a program like NU, or you can use the following program :
begin 664 dparam.com MBAZ``##_B+^!`+N!`(H'0SP@=/D\,'5:@#]X=`6`/UAU4(!_`3AU2H!_`P!U M1(I7`H#J,(#Z`7<Y@,*`M`C-$PCD=3-14HC()#\PY.@R`.@J`%J(\/[`,.3H M)0#H'0!8AL2Q!M+L0.@7`+K"`;0)S2'#NIP!ZR"ZQ0'K&[K5`>L6N]T!,=*Y M"@#W\8#",$N(%PG`=>^)VK0)S2'#=7-A9V4Z(&1P87)A;2`P>#@P#0H@("!O L<B`@9'!A<F%M(#!X.#$-"B1);G9A;&ED(&1R:79E#0HD("`D```````D``!O ` end
When run it prints the sectors, heads, and cylinders of the drive whose BIOS address was specified on the command line (0x80 is the first disk, 0x81 the second).
Ie, dparam 0x80
60 17 1007
Would mean that C: had 60 sectors, 17 heads, and 1007 cylinders.