UNIX存储设备管理
(适用于UnixWare,Solaris,SVR4等多种UNIX操作系统)
一、 存储设备的增加
1、 增加新的块设备
(1) # cd /dev
(2)使用mknod命令增加新的设备
# /sbin/mknod /dev/dsk/1s2 b 0 6
其参数分别是设备名、块设备标识(b)、主设备号和次设备号
(3)使用chgrp命令将所创建的设备特别文件归属到root组中
# chgrp root /dev/dsk/1s2
2、 增加新的字符设备
(1) # mknod /dev/rdsk/1s2 c 8 6
其参数同样分别是设备名、字符设备标识(c)、主设备号和次设备号
(2)使用chgrp命令将所创建的设备特别文件归属到root组中
# chgrp root /dev/dsk/1s2
二、 存储设备的格式化与数据拷贝
在用磁盘或磁带存储信息之前,必须首先对它们进行格式化
用来格式化硬盘和软盘的命令format的基本格式如下
format device-name
其中 device-name 为特别文件的名字
如 # format /dev/diskette1
1、 将硬盘上的整个文件拷贝到磁带上
为了快速地将硬盘上的所有文件拷贝到磁带中,可以使用 volcopy 命令。但在使用该命令前,必须用labelit命令为文件系统创建文件系统名和卷标名
# labelit -F ufs /dev/dsk/c0t3d0s0 home1 vol1
# volcopy -F ufs home1 /dev/rdsk/c0t3d0s7 vol1 /dev/rmt/0 tape1
上述例子中,labelit命令标识了名为home1、卷标为vol1的文件系统,接下来volcopy命令将该文件系统的内容拷贝到磁带(/dev/rmt/0)上并指定了新的卷标名(tape1)
2、 在硬盘上的不同文件系统间拷贝数据
# cp /home/file1 /newuser/file1
3、 将硬盘上的文件拷贝到软盘上
#find . -print | cpio -o > /dev/diskette1
与其相反 #cpio -I < /dev/diskette1 从软盘拷贝到硬盘
4、 软盘相互拷贝
# dd if= /dev/diskette1 of= /dev/diskette2
三、 存储设备的去除与数据擦除
1、 使用 /usr/sbin/wall 命令向用户发出删除存储设备的警告
# /usr/sbin/wall
we will remove the device : /dev/dsk/1s6
2、 使用 /usr/sbin/devnm 命令确定 root 文件系统存放在哪台设备上
# /usr/sbin/devnm /
/dev/dsk/1s0 /
1s0代表分区号,root文件系统被安装在这里
3、 确定存放root文件系统设备的主设备号和次设备号,可使用 ls -l special 命令得到,其中 special 值同样代表分区号 在这里,对 special 取值为 1s6,最后一位为6表示相应分区占据整个硬盘
# ls -l /dev/dsk/1s6
brw -------- 3 root sys 0,6 Feb 23 1988 /dev/dsk/1s6
从结果中可以看出,主设备号为0,次设备号为6
4、 使用 /usr/sbin/devnm 命令来确定用户文件系统存放在哪台设备上
# /usr/sbin/devnm /usr
/dev/dsk/1s2 /usr
5、 使用 ls -l special 确定用户文件系统的主设备号和次设备号
# ls -l /dev/dsk/1s6
brw -------- 2 root sys 0,6 Feb 23 1988 /dev/dsk/1s6
6、 使用 ls -l device-path 命令来确定要除去设备的主设备号和次设备号,其中 device-path 代表要去除设备的路径名,在这里将其取为 /dev/rdsk/disk2
# ls -l /dev/rdsk/disk2
brw -------- 2 root sys 0,22 Feb 23 1988 /dev/rdsk/disk2
7、 如果存放 root 和用户文件系统的主设备号和次设备号相同,则不能去除该设备
8、 通过查找 /dev/dsk 目录下具有相同主设备号和次设备号的设备来确定目标控制器、驱动器和硬盘分区号
# ls -l /dev/dsk | grep “0,22”
brw -------- 6 root sys 0,22 Dec 30 15:26 1s6
上述结果表明目标控制器值为1,驱动器值为1,硬盘分区号为6
9、 使用 grep 命令列出要去除设备上文件的目录信息
# grep 1s6 /etc/vfstab
/dev/rdsk/1s6 /dev/rdsk/1s6 /home4 /home2 s5 - yes -
在这里可以保存这些目录中的信息,以便在重新使用该设备时将有关信息拷贝回来
10、 使用 cp 命令将文件分配表做一个备份
# cp /etc/vfstab /etc/ovfstab
11、 使用 /usr/sbin/umount 命令,从设备上卸下要删除的目录
# /usr/sbin/umount /home4
12、 编辑 /etc/vfstab 文件来删除有关要去除设备的参考信息,这可以通过使用 rm 命令将该设备的名字从 /dev/dsk 和 /dev/rdsk 目录中去除的方法来实现
# rm /dev/dsk/1s6 /dev/rdsk/1s6
# rm /dev/rdsk/1s6 /dev/rdsk/1s6
13、 如果该设备为多个文件系统所包含,则要从 /etc/vfstab 文件中删除有与该设备有关的通道
14、 使用 devattr 命令来确定要去除设备的别名,然后使用putdev命令将该设备从设备库中去除掉
# devattr -v /dev/rdsk/disk2 alias
alias = ‘disk2’
# putdev -d disk2
15、 使用 getdgrp 命令来确定要去除设备所属的设备组,然后用 putdgrp 命令将该设备从相应设备组中去除掉
# getdgrp alias = disk2
disk
# putdgrp -d disk disk2
这样就完成了去除存储设备的工作
四、 设备描述信息管理
1、 增加设备表项
putdev -a alias [attribute=value[…]]
alias是要加入到数据库中的设备别名,attribute=value 是一个与设备有关的属性值表
例 # putdev -a diskette3 desc = “floppy Diskette Drive 3”
type=diskette
2、 显示设备列表
# getdev
ctape1
disk1
disk2
diskette1
diskette3
spool
3、 设备属性管理
(1) 显示设备属性
devattr -v device [attribute[…]]
其中device是要显示其属性的设备名或设备别名,attribute是将要显示的属性
下面是一个使用 devattr 命令的实例
#devattr -v diskette1
alias = ‘diskette1’
bdevice=’/dev/dsk/f0t’
capacity=’2307’
cdevice=’/dev/rdsk/f0t’
copy=’true’
desc=’Floppy Drive1’
erasecmd=’/usr/sadm/sysadm/bin/floperase /dev/dsk/f0t’
fmtcmd=’/usr/sbin/format -v /dev/rdsk/f-q15dt’
mdensdefault=’mdens 1 HIGH’
mdenslist=’mdens 1 HIGH,modens 1 MED,mdens1 low’
mkfscmd=’/sbin/mkfs -F s5 /dev/dsk/ft0 2370:592 230’
mountpt=’install’
removable=’true’
type=’diskette’
volume=’diskette’
(2)修改设备属性
putdev -m device attribute=value[attribute=value[…]]
#putdev -m diskette1 mountpt=’/mnt’
(3)删除设备属性
putdev -d device attribute
#putdev -d diskette1 volume
(4)删除设备表项
putdev -d device
#putdev -d diskette1
设备diskette1就从设备数据库中删除了
五、 设备组的管理
通过建立设备组,可以在多台设备间选择其中之一来完成有关的工作
设备组数据库存放在 /etc/dgroup.tab 中,每个设备组都在其中有一个表项,表项的内容是有关设备组的关系表
1、 增加设备表项
putdgrp group-name alias[alias[…]]
其中group-name是所要增加的设备组的名字,alias是该组成员的名字
# putdgrp disk disk1 disk2
通过上述命令,建立了一个名为disk的设备组,其成员为disk1和disk2
2、 显示设备组列表
# getdgrp
ctape
disk
diskette
3、 删除设备组表项
putdgrp -d group-name
# putdgrp -d disk
通过上述命令,删除了名字为 disk 的设备组[color=blue:1156d1738c][/color:1156d1738c][color=blue:1156d1738c][/color:1156d1738c][color=blue:1156d1738c][/color:1156d1738c][size=18:1156d1738c][/size:1156d1738c][color=blue:1156d1738c][/color:1156d1738c]