恢复旧的SunOS磁带

我有一些旧的SunOS磁带,在我把它们撕碎之前,我需要看目录。

有没有Linux解决scheme来恢复这些磁带?

如果磁带是tar格式,那么你可以试试

tar -tf /dev/sr0 

如果这些文件是以cpio格式的话

 cpio -ivtB </dev/sr0 

可能工作。 如果磁带处于ufsdump格式,则可以尝试使用restore

 restore -if /dev/st0 

然后用ls和cd来看看它们是什么

Iain给出了答案的一部分,但不完整。 有关如何在Linux主机上读取未知磁带的build议:

阻断因素

您需要知道使用了哪些阻塞因子,除非(可能是古老的)驱动器使用固定的块大小。 首先,您必须将驱动器设置为使用软阻塞因子:

 # mt -f /dev/nst0 setblk 0 

然后你会使用dd从磁带读取一个块:

 dd if=/dev/nst0 of=./testfile bs=128k count=1 

你可能需要尝试几个块大小,最好足够大。 如果所选的dd块大小大于实际的磁带块大小,dd只会读取一个块,如下所示:

 # dd if=/dev/nst0 of=./testfile bs=128k count=1 1+0 records read 1+0 records written 32768 bytes (32 kiB) copied, 236 kiB/s 

在这里,我们发现使用了32K的块大小,这是第一个重要的信息。 注意:如果使用块大小过大,可能会出现各种奇怪的错误,如IO错误。 大多数旧的磁带机一次不会接受超过128K的读数,对于像QIC这样的古代格式来说可能更less。

数据格式

现在您已经确定了磁带块大小,现在是时候了解什么是磁带数据格式! 在这里,我们应该使用一个宝贵和强大的工具: file命令。 现在我们应该从磁带上多抓几块来确定它更容易:

 # dd if=/dev/nst0 of=./testtape.img bs=32k count=100 100+0 records read 100+0 records written 3276800 bytes (3 MiB) copied, 160 kiB/s # file ./testtape.img testtape.img: POSIX tar archive (GNU) 

方便地,文件将正确地识别大多数焦油,cpio,*转储数据,压缩数据,从一个漫长的游戏的尝试和错误节省您。

警告

磁带可以很好地承载几种不同的数据格式。 对于使用无索引格式(如tar)的磁带,常见的情况是将文本文件列出为第一个文件,或者其他类似的头文件。 因此,在查找实际数据之前,您可能需要阅读多个logging。

事实certificate,这些磁带是用一个独特版本的CPIO编写的,而这个版本的CPIO只存在于SunOS的早期版本,我猜SunOS 2或3。当时,在90年代初(当时我是一个牛仔,而不是系统pipe理员),Auspex(SunOS)是UNIX文件服务器的主要作品。 Sun试图启用大文件(> 2GB,又名BIG_FILE)。 CPIO的基本function是,CPIO转储logging中第一个X位的字段是该INODE中的字节数。 这一切都很好。 除此之外,CPIO被标准化为不同的字节数来表示INODE的字节数。

你可以想象当你的文件名前面有随机位时发生的乐趣,并且你的字节数是错误的。

你的意思是SunOS系统磁带,或旧的SunOS系统上写的磁带? 系统磁带以引导映像开始,后面跟着一个目录(用/usr/etc/install/xdrtoc ),后面跟着由TOC文件规定的tar.gz格式的单个软件包。 您需要使用mt跳到您要提取的文件(例如, mt -f/dev/non-rewinding-tapedevice fsf以跳到下一个文件)

如果你想阅读旧的SunOS系统写的磁带,我会使用star ,可以从berlios下载,因为它可以读取更多或更less的tar格式(包括历史版本),pax或cpio。

对于ufsdump格式,以前的海报已经指出ufsrestore的用法。

提示:如今,这些旧磁带的内容很可能很容易挤入到可用的文件系统中。 为了减less磨损的旧磁带的磨损,将磁带循环,逐个读取一个文件到文件以供进一步探索可能是一个好主意。 只要记住总是使用非倒带磁带设备(如nrst0,或任何磁带设备指向您的驱动器),每当您碰巧忘记了那个细节,就从0开始。

在过去,这导致了许多不愉快的情况,比如备份一次又一次地覆盖了他们的前辈在那个神奇的永不填充的磁带上,或者恢复只能find部分数据,当每个人都确信应该有多个档案在磁带上…

假设磁带是用tar写的, tar -tvf your-backup-file.tar将打印出档案中的文件和目录列表而不用提取它们。 这还涉及从磁带上读取整个档案,所以需要很长时间。

您可能需要为特定的磁带驱动器安装驱动程序。 如果您使用磁带驱动器的品牌和型号更新您的问题,可能会有所帮助。 如果你知道的话,用来做备份的软件也可能有帮助。