From owner-freebsd-questions Fri Aug 18 03:50:02 1995 Return-Path: questions-owner Received: (from majordom@localhost) by freefall.FreeBSD.org (8.6.11/8.6.6) id DAA15498 for questions-outgoing; Fri, 18 Aug 1995 03:50:02 -0700 Received: from cc.jyu.fi (cc.jyu.fi [130.234.1.3]) by freefall.FreeBSD.org (8.6.11/8.6.6) with SMTP id DAA15482 for ; Fri, 18 Aug 1995 03:49:55 -0700 Received: from [130.234.41.39] (zaphod.maccc.jyu.fi) by cc.jyu.fi with SMTP id AA23559 (5.67a/IDA-1.4.4); Fri, 18 Aug 1995 13:18:05 +0300 X-Sender: kallio@pop.jyu.fi Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Fri, 18 Aug 1995 13:19:34 +0300 To: Michael Smith From: kallio@jyu.fi (Seppo Kallio) Subject: Re: ** How to add second SCSI disk ? ** Final? ** Cc: julian@ref.tfs.com, freebsd-questions@freebsd.org Sender: questions-owner@freebsd.org Precedence: bulk Thanks for everyone who did help me! I hope we did all learn something. I have now done this about 10 times and now I feel I know something about it. I agree with John Capo that it is trivial after you know how to do it ;-). And I agree that the biggest problem is fdisk. It is not trivial what parameters you have change and how! The disklabel -e -r sd1 is not so hard to use. Nor newfs or mount ;-) ----------------------------------------------------------------------- Here final (?) text how to do it. Or how I have done it. In an example here I have 80MB SCSI disk (in a AHA 2940 controller), FreeBSD 2.0.5R. You have to start with fdisk (# -lines written by me): # fdisk -i -u /dev/rsd1 ******* Working on device /dev/rsd1 ******* parameters extracted from in-core disklabel are: cylinders=1923 heads=64 sectors/track=32 (2048 blks/cyl) Figures below won't work with BIOS for partitions not in cyl 1 parameters to be used for BIOS calculations are: cylinders=1923 heads=64 sectors/track=32 (2048 blks/cyl) # The cylinder count is nonsence, the disk is 80-81 MB, # so it should be 80 or 81. Head and sector count OK. # On all Adaptec controlled disks heads=64 and sectors=32 # The head count has nothing to do with the disk drive hardware # head count. Same with cylinder and sector count. Do you want to change our idea of what BIOS thinks ? [n] n # Wrong cylinder count does not matter, forward! Warning: BIOS sector numbering starts with sector 1 # This should be: "First sector must be 1" Information from DOS bootblock is: The data for partition 0 is: sysid 165,(FreeBSD/NetBSD/386BSD) # Sysid you must know it is 165, it is zero when you have empty disk # Where are the docs about this? start 32, size 163840 (80 Meg), flag 80 beg: cyl 0/ sector 1/ head 0; end: cyl 79/ sector 32/ head 63 Do you want to change it? [n] y Supply a decimal value for "sysid" [0] 165 # FreeBSD = 165 Supply a decimal value for "start" [0] 0 # 0 (32 on bootdisk?) Supply a decimal value for "size" [0] 163840 # This comes from 80*32*64 # If bootdisk, you must substract 2048 (=32*64) ????????? Explicitly specifiy beg/end address ? [n] y Supply a decimal value for "beginning cylinder" [0] # (* Supply a decimal value for "beginning head" [0] # (* Supply a decimal value for "beginning sector" [0] 1 # Must be 1 (* Supply a decimal value for "ending cylinder" [0] 79 # Cylinders 0 to 79=80 Supply a decimal value for "ending head" [0] 63 # (* Supply a decimal value for "ending sector" [0] 32 # (* sysid 165,(FreeBSD/NetBSD/386BSD) start 0, size 163840 (80 Meg), flag 0 beg: cyl 0/ sector 1/ head 0; end: cyl 79/ sector 32/ head 63 Are we happy with this entry? [n] # (* are same to all disks in Adaptec SCSI controllers. # Ending cylinder is same number as the MB count minus one (here 80-1) The data for partition 1 is: Do you want to change it? [n] n The data for partition 2 is: Do you want to change it? [n] n The data for partition 3 is: Do you want to change it? [n] n Do you want to change the active partition? [n] n We haven't changed the partition table yet. This is your last chance. parameters extracted from in-core disklabel are: cylinders=1923 heads=64 sectors/track=32 (2048 blks/cyl) Figures below won't work with BIOS for partitions not in cyl 1 parameters to be used for BIOS calculations are: cylinders=1923 heads=64 sectors/track=32 (2048 blks/cyl) Information from DOS bootblock is: 0: sysid 165,(FreeBSD/NetBSD/386BSD) start 0, size 163840 (80 Meg), flag 0 beg: cyl 0/ sector 1/ head 0; end: cyl 79/ sector 32/ head 63 1: 2: 3: Should we write new partition table? [n] y # if all is correct # you will get following error message, forget it. ioctl DIOCWLABEL: Operation not supported by device # Then start disklabel -e -r sd1 # You will get a screen something like: ------------------------------------------------------------------------ # /dev/rsd1c: type: SCSI disk: d80mb label: flags: bytes/sector: 512 sectors/track: 32 tracks/cylinder: 64 sectors/cylinder: 2048 cylinders: 80 sectors/unit: 165888 rpm: 3600 # If this is zero, put here 3600 interleave: 1 # If this is zero, put here 1 trackskew: 0 cylinderskew: 0 headswitch: 0 # milliseconds track-to-track seek: 0 # milliseconds drivedata: 0 3 partitions: # Uh? # size offset fstype [fsize bsize bps/cpg] c: 163840 0 unused 0 0 # (Cyl. 0 - 79) -------------------------------------------------------------------------- # c: is the whole disk, do not touch it! # I want to add one 10MB swap to this disk, rest space for files. # So I write to extra lines (before the c: -line): a: 143840 20000 4.2BSD 0 0 b: 20000 0 swap # Note: the sum of size fields is a+b=c. The offset is the starting # block number of the partition. When swap starts from 0 and is # 20000 blocks then next partition starts from 20000. # The extra zeroes on a: line mus be there! # There it is. Exit from editor, if errors try to correct. # Next make filesystem: # newfs /dev/rsd1a Warning: calculated sectors per cylinder (4096) disagrees with disk label (2048) Warning: 3136 sector(s) in last cylinder unallocated /dev/rsd1a: 123840 sectors in 31 cylinders of 1 tracks, 4096 sectors 60.5MB in 2 cyl groups (16 c/g, 32.00MB/g, 7680 i/g) super-block backups (for fsck -b #) at: 32, 65568, # So some sectors could be defined more .. this terminology is awfull: # Here newfs is speaking about 3136 sectors. In fdisk we define that # the disk has 32 sectors! # These must be blocks of 512 bytes, or what are they???? 3136 blocks # is 1605632 bytes that is 1.6MB. The actual size of my disk is more # than 80MB, it is about 81 MB. # And mount it: # mount /dev/sd1a /mnt # df Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/sd0a 96143 30253 58198 34% / /dev/sd0s1f 1404471 741255 550858 57% /home /dev/sd0s1e 387503 273317 83185 77% /usr procfs 4 4 0 100% /proc kaarna:/home/www 1518207 1310531 86219 94% /opt/www /dev/sd1a 59951 1 55153 0% /mnt # If you get to this point, you are lucky. It is not easy. The # fdisk is the hardest part. Seppo -- +-- Seppo Kallio ----- kallio@jyu.fi ---+ ! Computing Center ! Fax +358-41-603611 Phone +358-41-603606 ! ! University of Jyvaskyla ! http://www.jyu.fi/~kallio ! +-- Finland --+-- 62.14N 25.44E -- +