在RHEL2.1中使用tar命令时,系统报告 '/dev/st0: Cannot read: Input/output error'的错误信息,为什么?
解决方法:

我希望从一个写保护的磁带中读取数据,但是tar命令总是报告以下错误:

tar (child): /dev/st0: Cannot read: Input/output error
tar (child): At beginning of tape, quitting now
tar (child): Error is not recoverable: exiting now

gzip: stdin: unexpected end of file
tar: Child returned status 2
tar: Error exit delayed from previous errors

连接磁带机的SCSI卡的驱动在RHEL启动时应该被加载,首先需要知道SCSI卡对应的驱动,本例中使用的aic7xxx,它是一个很常见的型号,查看/etc/modules.conf,应该有如下内容:

alias scsi_hostadapter99 aic7xxx
     

如果该文件没有这些内容,那需要重建initrd文件。

警告:确保基于正确的内核来重建initrd,建议在重建initrd之前,备份该文件:

   # cd /boot
   # cp initrd-(kernel-version).img initrd-(kernel-version).img.bak
   # mkinitrd -f initrd-$(uname -r).img $(uname -r)

这将针对支持SCSI卡的内核重建initrd,重新起动然后再次访问磁带机。