分享
 
 
 

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

王朝other·作者佚名  2006-11-23
窄屏简体版  字體: |||超大  

下面是一个简便的方法:

1. cd /stand; ./sysinstall

2. 选 partition, 进去把 sd1 割好後 (此时 partition table 尚未写入) , 按 w 进入 wizard mode, 键入 write 再 quit 把 partition table 更新.

3. 再来选 label, 进去把 sd1s1 割好, 一样按 w 进入 wizard mode 用 write, quit 把 disklabel 更新.

4. newfs /dev/rsd1s1e

不然的话, 拿安装片来, 进入 Partition 选项中建立新 partition, 然後按 "W"rite 写入; 再到 Label 选项中建立新的 slice, 再按 "W"rite 写入。

这不是正统的方法, 但是却是教一般人最容易的了....

下面将介绍如何以传统的方法来新增一颗硬盘 (或一个 partition) 或修改已经存在的 partition 或 label。 当然传统的方法不一定好用,但是你应该要知道。

0. 分割硬盘不管在什么操作系统下都是相当危险的,除非你已经驾轻就熟了,不然最好先用一颗空的硬盘来练习,以免毁掉重要资料。还有,请准备一台计算机以便计算各种资料。

1. 首先请先阅读“硬碟分割政策”以了解 FreeBSD 新的 slice 观念。这个新的 slice 观念于 1995 年四月开始启用,跟传统的 BSD (如 386BSD, NetBSD, SunOS) 有很大的不同,允许多个 BSD partition 存在。

2. 不管你是要新增 IDE 或 SCSI 硬碟,或是只是要新增一个 partition,这些观念都是一样的,首先你要知道你想新增的硬碟的 device 名称,例如 : IDE 第二颗硬碟的第 3 个 primary partition -> wd1s3

SCSI 第三颗硬碟的第 1 个 primary partition -> sd2s1

* (以下以 sd0s2 为例,假设为 100MB)

3. 首先把硬碟挂上去,你可以用 DOS 的 pfdisk.exe 来分割新的 partition,或是以 DOS 的 fdisk.exe 割一个 primary partition,再用 pfdisk.exe 把 partition ID 改成 165 (十进位)。 完毕後跳看 Step-4。

* 如果你想用 FreeBSD 的 fdisk,在进入 FreeBSD 後先以 Step-4 的方法建立 /dev/sd0s2*,再执行 fdisk sd0 观察 sd0 的硬碟分割状况,如下范例∶(这是 1G 的 SCSI Fireball,已经割了一个 primary

FreeBSD partition)

******* Working on device /dev/rsd0 *******

parameters extracted from in-core disklabel are:

cylinders=1042 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=1042 heads=64 sectors/track=32 (2048 blks/cyl)

Warning: BIOS sector numbering starts with sector 1

Information from DOS bootblock is:

The data for partition 0 is:

sysid 165,(FreeBSD/NetBSD/386BSD)

start 32, size 614368 (299 Meg), flag 80

beg: cyl 0/ sector 1/ head 1;

end: cyl 299/ sector 32/ head 63

The data for partition 1 is: <<<--- 欲新建於此 !!!

^^^^^^^^^^^^

The data for partition 2 is:

The data for partition 3 is:

再来就要开始分割了,键入 fdisk -i sd0,首先它会问你硬碟的参数,如∶

******* Working on device /dev/rsd0 *******

parameters extracted from in-core disklabel are:

cylinders=1042 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=1042 heads=64 sectors/track=32 (2048 blks/cyl)

Do you want to change our idea of what BIOS thinks ? [n]

如果有错误 (注意∶你必须非常 解各种 translation 的数据),不然不需要修改,直接回答 n 或按 Enter 跳过。 (在本范例中,这颗 Fireball 没有经过 SCSI Translate,所以数据为 cyl=1042, heads=64, sec/track=32)

再来它会依次问你 primary 1,2,3,4 的分割状况,根据你的情形回答,不改变的回答 n,要改变的回答y。比方说,第二个 primary partition (在 FreeBSD 中为 partition 1, 由零开始) 是空的,你想建立成 FreeBSD partition,你应该会看到∶

The data for partition 1 is:

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。 在你的编辑器中键入∶

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,一切就大功告成了。

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有