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



8 partitions:
# size offset fstype [fsize bsize bps/cpg]
b: 131072 61440 swap <<-- 新增
c: 614368 0 unused 0 0
e: 61440 0 4.2BSD 0 0 0 <<-- 新增
f: 421856 192512 4.2BSD 0 0 0 <<-- 新增

其中最前面为 e:(30MB),再来是 b:(64MB),最後是 f:(206MB) 。所以∶
e: 的 offset (就是 start offset) 是 0 (由该 slice 的头开始),
e: 的 size 是 30MB*2048=61440 。(e: 实际上位於 0 - 614399)
b: 的 offset 是 61440 (e: 的 offset size),size 是 64MB*2048=131072
b: 实际上位於 61440 - 192511
f: 的 offset 是 192512 (b: 的 offset size),要注意的是,为了 slice alignment 的关系,c: 不见得是 (整个 slice 的大小 * 2048),所以在 slice 中最後一个区块大小通常不会是 (预定的大小 * 2048) 。
因此最後一个区块的大小要用 (c: 的 size - 最後一个区块的 offset) !!
在此范例中是 614368-192512=421856 。

ftype 如果是 swap 请键入 swap,如果是一般的 FS,请键入 4.2BSD 。

在算这些资料的时候,要注意不要有区块彼此覆盖到的情形,不然就只有等著 crash and lost data 了 。
完成後用你编辑器的 save 功能存档,要是有显而易见的错误,disklabel 要你再修改 。

然後用 disklabel -r sd0s1 看看新建的 label,如下∶

8 partitions:
# size offset fstype [fsize bsize bps/cpg]
b: 131072 61440 swap # (Cyl. 30 - 93)
c: 614368 0 unused 0 0 # (Cyl. 0 - 299*)
e: 61440 0 4.2BSD 0 0 0 # (Cyl. 0 - 29)
f: 421856 192512 4.2BSD 0 0 0 # (Cyl. 94 - 299*)

现在多出最右边 (# Cyl) 的资料,你可以看看有没有覆盖到的地方 。

8. 一切 OK 後,恭禧您,大风大浪已经过了,最後只剩两个步骤 。
# newfs /dev/rsd1s1e
# newfs /dev/rsd1s1f
swap 不需要格式化, 在 newfs 的时候你可以加入参数,来达到特殊需求 。
如 -m 0 设定预留的空间为 0,不然内定 7% 的大小预留给 root 及避免 fragmentation 使用 。
如 -i 1024 设定每 1024 bytes 给一个 inode (内定 2048),通常 BBS 跟 News Server 须要较多的 inodes 。

9. 执行 fsck -y /dev/rsd0s1e; fsck -y /dev/rsd0s1f 检查看看有没有错误 。

A. 执行 mount /dev/sd0s1e /mnt; ls -la /mnt 看看能不能用 。

B. 最後把新增的 /dev/sd0s1b /dev/sd0s1e /dev/sd0s1f 加入 /etc/fstab, mkdir 新的 mount point,执行 mount -a -t ufs 或是 reboot,一切就大功告成了 。

综合使用这个传统方法和前面的快捷方法,相信分割硬盘不是很难的一件事 。

推荐阅读