如何使用一块新加的SCSI硬盘( 二 )



Do you want to change it? [n]

这时候回答 y,再来它会问你∶

Supply a decimal value for "sysid" [0]

请回答 165,这是 UFS 的 partition ID 。接下来是此 partition 的开始位址∶

Supply a decimal value for "start" [0]

由於此范例中新增的 partition 是从第 300MB 开始,大小为742MB, 因此 start 应为 300*2048 = 614400 。你要是不会算的话,把前面已经存在的 partition 资料加起来,如∶
partition 0: start 32, size 614368 (299 Meg), flag 80
start size (32 614368) 就是罗!

要是你是从该硬碟的最前面开始,start 请回答 "32" !! 注意∶不是 0 !! 因为要预留一些空间给 MBR 之类的 。

再来它会问你该 partition 的大小,如∶

Supply a decimal value for "size" [0]

请回答 MB*2048,如此范例为 742*2048 = 1519616 。
再来它会问你是否要明确的定义从那个 cyl 的那个 head 开始∶

Explicitly specifiy beg/end address ? [n]

这除了超人以外,是没有必要去名确定义的 。就回答 n 就好了 。
然後它会把这个新建的 partition 资料印出来,如∶

sysid 165,(FreeBSD/NetBSD/386BSD)
start 614400, size 1519616 (742 Meg), flag 0
beg: cyl 300/ sector 1/ head 0;
end: cyl 17/ sector 32/ head 63
Are we happy with this entry? [n]

如果你确定无误後,回答 y 继续 。
然後它会继续问你後面剩下的 partition 是否要更动,如果没有的话就一路回答 n 到所有的 partition 完 。然後它会问你是否要改变 active 的 partition,如∶

Do you want to change the active partition? [n]

如果不是开机用的 partition 就不要更动了 。
最後它会确定你要不要更动 partition table,如∶

Should we write new partition table? [n]

确定的话,复颂一遍大榔头的名言∶ "Trust me, I know what I am doing !" 再回答 y 。
後悔的话回答 n 或按 Ctrl-C 都可以,你的 partition table 就不会被更动 。

4. 建立新的 device nodes ∶
cd /dev
./MAKEDEV sd0
./MAKEDEV sd0s1a
这样会在 /dev 下建立出 sd0s1a, sd0s1b, sd0s1c, ... ,sd0s1h

5. 构思好你的 slice 分割情形,例如 sd0s1 是 300MB 大小,你想要把一开始的 30MB 割给 /tmp,把再来的 64MB 割给 swap, 在把最後的 206MB 给 /home 。当然在分割的时候你只要分两种情形,是FileSystem 或是 Swap, 要 mount 到那里是 /etc/fstab 中定义的 。

6. 建立一个空的 disklabel
$ disklabel -r -w sd0s1 auto

7. 执行 disklabel -e sd0s1 你应该会看到∶

# /dev/rsd0s1c:
type: SCSI
disk: sd0s1
label:
flags:
bytes/sector: 512
sectors/track: 32
tracks/cylinder: 64
sectors/cylinder: 2048
cylinders: 299
sectors/unit: 614368
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0

8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 614368 0 unused 0 0 # (Cyl. 0 - 299*)

其中你只需要修改最後那些 label 的资料就好了,其他的资料是为了跟旧的 BSD label 相容而遗留的 。除非你有特殊需要 (如改变 disk geometry) ,不然不要去更动 。

由於这是新增的 slice,其中只有 c: 一个分割区,此 c: 代表整个 slice 的大小 (300MB) 。
如果你先读过 Step-1 的资料,你应该知道 a: 通常是给 root 区用的, b: 通常是给 swap 用的,c: 强制代表该 slice 的大小,d:原先代表整颗硬碟的大小,不过新的 slice 已经把 d: 废除了,e: - h: 是随便你的 。其实从 a: - h: 只有 c: 是强制性的,其他随便你要拿来做 FS 或是 swap 。不过为了维护传统,一般还是喜欢把 a: 留给 root partition,把 b: 留给 swap,其他的 FS 由 e: 开始到 h: 。

所以在这个 300MB 的 slice,我们想把 b: 割 64MB 给 swap,把 e: 割30MB 给 /tmp,把 f: 割 206MB 给 /home 。在你的编辑器中键入∶

推荐阅读