《NetBSD指南-21.6.添加一块新硬盘》

NetBSD用户指南中文版、NetBSD pkgsrc指南中文版...

版主: lionux

主题已锁定
头像
leo
帖子: 2465
注册时间: 2010-01-21 3:27

《NetBSD指南-21.6.添加一块新硬盘》

帖子 leo » 2010-03-06 15:32

本小节描述怎样在一个已经运行的NetBSD系统上添加一块新磁盘. 下例中将添加一个新的SCSI控制器及一块SCSI新磁盘. 如果你不需要添加新的控制器, 请忽略其相关部分直接阅读磁盘配置。 和安装一块IDE硬盘相同; 仅需要将设备名的(wd# 替换为 sd#).

一如既往, 在购买新硬件之前, 查阅此NetBSD的硬件兼容性列表以确认系统支持此设备.

当SCSI控制器已经安装在系统上,并且新硬盘已经连上了, 现在要重新启动电脑以确认设备可识别, 使用 dmesg 命令. 例如一个NCR-875控制器的输出是这样:
ncr0 at pci0 dev 15 function 0: ncr 53c875 fast20 wide scsi
ncr0: interrupting at irq 10
ncr0: minsync=12, maxsync=137, maxoffs=16, 128 dwords burst, large dma fifo
ncr0: single-ended, open drain IRQ driver, using on-chip SRAM
ncr0: restart (scsi reset).
scsibus0 at ncr0: 16 targets, 8 luns per target
sd0(ncr0:2:0): 20.0 MB/s (50 ns, offset 15)
sd0: 2063MB, 8188 cyl, 3 head, 172 sec, 512 bytes/sect x 4226725 sectors

如果输出中没有该设备, 检查一下是否该设备被你的内核支持; 如需要, 重新编译一个定制内核 (参 Chapter 31, 编译内核).

现在可以使用 fdisk 命令建立分区. 首先, 检查当前的磁盘状态:

代码: 全选

# fdisk sd0
NetBSD disklabel disk geometry:
cylinders: 8188 heads: 3 sectors/track: 172 (516 sectors/cylinder)
 
BIOS disk geometry:
cylinders: 524 heads: 128 sectors/track: 63 (8064 sectors/cylinder)
 
Partition table:
0: sysid 6 (Primary 'big' DOS, 16-bit FAT (> 32MB))
    start 63, size 4225473 (2063 MB), flag 0x0
        beg: cylinder    0, head   1, sector  1
        end: cylinder  523, head 127, sector 63
1: <UNUSED>
2: <UNUSED>
3: <UNUSED>

本例中这块硬盘已经包含了一个DOS分区, 它将被删除并用一个原生的NetBSD分区代替. 命令 fdisk -u sd0 允许人机交互地修改分区. 修改的数据只有在已经确认或fdisk得到一个确认后才能被写道硬盘上, 所以不必紧张.

磁盘几何

显示的磁盘几何可能会令你很迷惑. Dmesg显示的是4226725扇区以及8188/3/172和C/H/S, 但是8188*3*172得4225008而不是 4226725. 原因是现代的磁盘未作几何修正,并且每磁道的扇区数根据柱面数变化: 唯一感兴趣的是扇区数. 磁盘报告的C/H/S值是一个虚构几何: 这里的172是总的扇区数(4226725)除以8188再除以3.

更令人困惑的是, BIOS也使用另一个 “假的” 几何(C/H/S 524/128/63) ,这样得出的总数是4225536, 这个数值比4225008更接近实际值. 我们要使用BIOS几何给磁盘分区, 这时为了保持与其它操作系统的兼容性, 尽管这样做会损失部分扇区 (4226725 - 4225536 = 1189 sectors = 594 KB).

创建BIOS分区要使用 fdisk -u 命令; 结果如下:
Partition table:
0: sysid 169 (NetBSD)
start 63, size 4225473 (2063 MB), flag 0x0
beg: cylinder 0, head 1, sector 1
end: cylinder 523, head 127, sector 63
1: <UNUSED>
2: <UNUSED>
3: <UNUSED>

现在要为NetBSD的BIOS分区创建disklabel. 争取的步骤是:

代码: 全选

# disklabel sd0 > tempfile
# vi tempfile
# disklabel -R -r sd0 tempfile

如果你想直接创建disklabel

代码: 全选

# disklabel -e sd0

你会看见如下信息
disklabel: ioctl DIOCWDINFO: No disk label on disk;
use "disklabel -I" to install initial label

因为磁盘上还不存在disklabel.

现在我们创建disklabel分区, 如上所述编辑 tempfile . 结果是:
# size offset fstype [fsize bsize cpg]
a: 2048004 63 4.2BSD 1024 8192 16 # (Cyl. 0*- 3969*)
c: 4226662 63 unused 0 0 # (Cyl. 0*- 8191*)
d: 4226725 0 unused 0 0 # (Cyl. 0 - 8191*)
e: 2178658 2048067 4.2BSD 1024 8192 16 # (Cyl. 3969*- 8191*)
[INDENT]

说明
当disklabel被创建后,它能进一步完善,学习 newfs -N /dev/rsd0a命令的输出, 它警告在磁盘分区最后存在为分配的扇区. newfs报告的值可用于重复调整分区大小.
[/INDENT]
最后的操作是在刚建立的分区创建文件系统 (a 和 e).

代码: 全选

# newfs /dev/rsd0a
# newfs /dev/rsd0e

这块磁盘已经可以使用了, 并且这两个分区可被挂载. 例如:

代码: 全选

# mount /dev/sd0a /mnt

如果成功, 你可能想将此分区项放入 /etc/fstab文件中.

主题已锁定

在线用户

正浏览此版面之用户: 没有注册用户 和 0 访客