On 10/30/09, John Doe jdmls@yahoo.com wrote:
Hi,
I modified my kickstart to do some custom partioning and formating in a pre-install script. I am trying to align the partitions on the RAID stripe (and format with a correct stride). But, sfdisk complains that it does not start/end on a cylinder boundary (used -L option to limit complaining). Since the cylinder size is not a multiple of the stripe size, I cannot align on both. I tried to align the begining on the stripe and the end on the end of a cylinder, but sfdisk still compains... Basicaly, I have a 128KB (256 sectors) stripe, and 255*32 = 8160 sectors cylinders. What I am doing is: begin = ( begin / 256 ) * 256 end = ( end / 8160 ) * 8160 -1 So, for my first partition (96MB): begin=256 size = ( ( 96 * 1024 * 2 ) / 8160 ) * 8160 = 195840 sectors end = 195840 - 1 - 256 = 195583 Any idea what I am doing wrong in my calculations or logic?
Logic! Well not logic but knowledge about the physical layer inside the disk.
Most disks today do not have a constant number of blocks per track/ cylinder. Most disk partitioning tools just guess and do some rounding. There can be one, two or even three zones on the surface with different blocks per track on each.
One strategy is to look at the buffer setup and size of a disk and match stripe sizes to work with memory not blocks per cylinder. Note that a drive with an 8MB buffer uses some for read and some for write. Some research or testing can expose the ratio.
Another strategy is to partition devices exactly the same.
LBA (Logical block addressing) hides the physical layer....