snow@drycas.club.cc.cmu.edu (12/17/90)
Well, here's a summary of the responses I got to my inquiry about labeling and partitioning Maxtor LXT-200S series drives. I decided to go ahead and post it, even if it's kind of large. A lot of people responded with the numbers they have/use, but I ended up recalculating all values from scratch anyway. I should have been more specific about my purposes; many responses were of no help at all (but are included anyway because they may work fine for other people.) Before I get to the actual replies, this is what I did: The Maxtor documentation said the three bands were 434/7/53, 440/7/45, and 440/7/33. There are two cases to consider. Assuming that cylinder 0 is in the outer 434/7/53 band, that provides a total of 401254 blocks in 3 bands starting at blocks 0, 161014, and 299614. If cylinder 0 is in the inner 440/7/33 band (which I doubt because this makes the math easier) the 3 bands start at blocks 0, 101640, and 240240. If cylinder 0 is in the inner band, I can assume 420 blocks per cylinder in, say, 10 tracks of 42 sectors each. Using 953 cylinders and 2 alternates, I get 400260 data blocks and 840 alternate blocks, for a total of 401100 blocks. 154 blocks are wasted. The bands will start exactly at logical cylinders 0, 242, and 572, allowing me to set up three filesystems, each with a correct rotational layout table. I wasn't able to get through to Maxtor technical support, so I assumed that cylinder 0 is in the outer band. If someone knows that this is in fact not the case, please, please, please tell me, because I would much rather use the above numbers than have to live with the alternative, which happened this way: When I tried to factor 161014 and 299614, the largest common factor I could get was 14. Numbers found in fs.h indicate a 4MB cylinder group limit, and a 32 cylinder per group limit. Therefore, I'd like to have at least 256 blocks per cylinder, so I don't end up with puny cylinder groups (remember, this disk is going to hold X11R4, so I'd like big cylinder groups.) I wrote a program to find gcf(161014+n*315, 299614+m*231) for 0<=n<50, 0<=m<50 and found that n=0, m=20 allowed me to claim 434 blocks per cylinder. 315 is the number of physical blocks per cylinder for the middle band; 231 is for the outer band. 434=62*7, so I chose these numbers: disk_type = "Maxtor LXT-200S" \ : ctlr = MD21 : fmt_time = 1 \ : trks_zone = 1 : atrks = 0 : asect = 0 \ : ncyl = 922 : acyl = 2 : pcyl = 924 : nhead = 7 : nsect = 62 \ : rpm = 3600 : bpt = 33920 partition = "Maxtor LXT-200S" \ : disk = "Maxtor LXT-200S" : ctlr = MD21 \ : a = 0, 41664 : b = 96, 119350 : c = 0, 400148 \ : d = 0, 161014 : e = 371, 143220 : f = 701, 95914 : g = 371, 239134 These choices give me 400148 data blocks, 868 alternates, and 238 wasted blocks. I don't know what the "bpt" parameter is for; I suspect that it doesn't matter for SCSI disks. I can use the disk in standard SunOS fashion (20MB root on a, 60MB swap on b, c covers whole disk, g = c-(a+b)) plus I have partitions d, e and f which cover each band (e overflows by 20 logical cylinders (m=20); I can live with the errors in the rotational layout tables for such a small section of the disk.) 400148 data blocks isn't quite as space-efficient as the previous case (400260,) but it's still better than any of the responses I got. Bonus Quiz for people with two (or more) drives: Are you using all of your disk? I've seen many people mount /dev/sd0a, /dev/sd0g, and /dev/sd1g instead of using /dev/sd0a, /dev/sd0g and /dev/sd1c. If you're using /dev/sd1g, check your partition table to find out if the space taken by sd1a and sd1b is being used. You may discover another 20MB of unused disk space... Now, here is the summary of responses: Ingo Cyliax (cyliax@ee.ecn.purdue.edu) said that drive geometry doesn't matter, as long as the total number of logical blocks comes out right, and suggested a format.dat entry yielding 406296 blocks. Since the information in the Maxtor manual implies a limit of 401254 blocks, I didn't try this. I can only assume that a typo transmogrified the "nsect" or "ncyl" parameters. disk_type = "SUN0207" \ : ctlr = MD21 : trks_zone = 9 : atrks = 2: asect = 4 \ : ncyl = 1254 : acyl = 2 : pcyl = 1272 : nhead = 9 : nsect = 36 \ : rpm = 3600 : bpt = 18432 Eduardo Krell (ekrell@ulysses.att.com) said that any information other than the total number of logical blocks is irrelevant for SCSI disks, because the translation from logical block number to cylinder/head/sector is done by the drive itself, rather than by SunOS. Unfortunately, the presence of the rotational layout tables in each filesystem makes some extra information desirable. I don't just want the drive to run, I want it to run well. He provided this format.dat entry: disk_type = "Maxtor LXT-200S" \ : ctlr = MD21 : fmt_time = 5 : trks_zone = 1 : atrks = 0 : asect = 1 \ : ncyl = 998 : acyl = 2 : pcyl = 1314 : nhead = 7 : nsect = 56 \ : rpm = 3600 : bpt = 33920 Wolfgang S. Rupprecht (wolfgang@wsrcc.com) suggested that I come up with a set of values that came close to being optimal, and format. He said that this would mess up the rotational layout tables, but that it couldn't be helped, and that they were for performance only. He didn't recommend that I try to align the filesystems with the bands, because it would tie the filesystem sizes to the physical disk sizes too strongly. He agreed that the Customer Support rep. was wrong in recommending that the whole drive be formatted at 53 sectors. Jim Wills (jt@deltam.com) suggested I call Maxtor instead of the people who sold me the drive, and also provided these numbers: 1307 cylinders, 7 alternate cylinders, 7 heads, 42 sectors. Steve Maraglia (srm@unify.com) suggested I use: 1054 cylinders, 7 heads, 53 sectors. Dan Razzell (razzell@cs.ubc.ca) provided two format.dat entries, one of them due to Barry Lustig (barry@ads.com): disk_type = "Maxtor LXT-200S" \ : ctlr = MD21 : fmt_time = 1 : trks_zone = 1 : atrks = 0 : asect = 1 \ : ncyl = 1300 : acyl = 2 : pcyl = 1314 : nhead = 7 : nsect = 43 \ : rpm = 3600 : bpt = 17000 disk_type = "Maxtor LXT-200S" \ : ctlr = MD21 : fmt_time = 5 : trks_zone = 1 : atrks = 7 : asect = 1 \ : ncyl = 1300 : acyl = 2 : pcyl = 1302 : nhead = 7 : nsect = 43 \ : rpm = 3600 : bpt = 33920 Thomas Weihrich (Thomas.Weihrich@arbi.informatik.uni-oldenburg.de) gave some good advice for how to derive parameters for SCSI disks using a few starting physical parameters. Actually, I already knew all the parameters (I just didn't post them because they weren't relevant.) He also asserted that ZBR makes it impossible to use every sector since the OS doesn't support it. Andrew J. Schorr (schorr@ead.dsa.com) provided me with the numbers he got from his vendor: disk_type = "Maxtor LXT 200S" \ : ctlr = MD21 : fmt_time = 2 \ : trks_zone = 7 : atrks = 2 : asect = 1 \ : ncyl = 1330 : acyl = 2 : pcyl = 1332 : nhead = 7 : nsect = 42 \ : rpm = 3600 : bpt = 20992