Linux设置SCSI磁带设备的块大小

时间:2020-01-09 10:43:18  来源:igfitidea点击:

问题描述:Ive Debian Linux 4.0在HP服务器上安装。
该服务器具有SCSI磁带设备。
根据我的磁带文档,大小应为64k。
如何设置HP SCSI磁带设备的块大小?

解决方法:您需要使用标准的tar或者cpio命令来设置SCSI磁带设备的块大小。
没有用于设置磁带块的特殊设置。

tar命令设置块大小

-b选项用于设置块大小。
记录大小为Nx512字节(默认值为N = 20)。
以下示例将磁带设置为256k块以备份/data文件系统:

# tar -b 512 -cvf /dev/st0 /data

要提取,只需使用:

# tar -b 512 -xvf /dev/st0

其中:

  • -b 512使用512的块大小,即512x512字节
  • c:创建档案
  • v:详细(显示进度)
  • f:磁带设备名称/dev/st0
  • x:提取档案

因此,要将数据传输块大小设置为64k(64x64bytes),请执行:

# tar -b 128 -cvf /dev/st0 /path/to/backup/directory

请参阅有关mt和tar命令的更多信息,以在Linux下进行备份。

cpio命令

将block-size BLOCK选项传递给cpio命令,执行:

# find /home | cpio --block-size 128 -o -H tar -F /dev/nst0

要恢复备份,请输入以下命令

# cpio --block-size 128 -i -F /dev/nst0

如何找出胶带块的尺寸?

请参考磁带制造商文档或者产品网站。
但是,借助dd命令(很少尝试和错误),您可以找到磁带的实际块大小。
您所要做的就是提供ibs = BLOCKSIZE:

# dd if=/dev/st0 of=/tmp/test.file ibs=64k count=1

输出:

dd: reading `/dev/st0': Cannot allocate memory
0+0 records in
0+0 records out

如果收到错误消息"无法分配内存",请尝试下一个块大小,因为所选的块大小(64k)太小:

# dd if=/dev/st0 of=testfile ibs=256k count=1

输出:

1+0 records in
512+0 records out

因此,此scsi磁带设备的正确块大小为256k。