今天的话题是存储介质,我们很多时候在处理新媒体展览的时候,往往会需要处理一些可能已经过时的存储介质的情况。虽然在上一节课中提到现代PC几乎可以处理所有我们能见到的媒介,但实际操作起来往往会遇到各种障碍。特别是电脑对存储介质的访问能力正在从默认配置变成选配件。如果现在去市场上买一台新的电脑的话,往往都是没有光驱的,甚至像2016年之后的Macbook Pro连标准的USB的口都没有。电脑厂商几乎是在强迫让用户高度的依赖网络,并让用户把他们所有的资料都放到网上去传送。
但是无论是电脑艺术收藏者还是策展人,都往往会遇到需要把一些往日的作品带到今天的观众面前的需求。这时通常需要需要处理一些旧式的存储介质,就像我在教室里摆的这一堆,其中就包括了录像带、录音带、光盘、软盘等等。这节课主要的内容,就是是向大家展示不同存储介质的特点,以及怎样去处理这些存储介质。
我们遇到的电子存储介质的操作方式大概会有三种模型,第一类是磁盘模型,是我们在电脑最常见到的一个情形,我们平时在电脑上处理文件的时候,都是在操作一个磁盘模型的存储介质。它的特点是磁盘一般有一个特定类型的文件系统,可以随机读取和写入。
另外一种模型就是光盘模型,我们会发现如果说要刻一张光盘的话,往往是需要先做一个母带(Mastering)镜像,然后再刻录到光盘上。刻完的光盘通常不能随意修改其中的内容,这种模型叫做WORM(Write once read many),只能写入一次但可以读取很多次。即使是可擦写的刻录盘,想改写其中的内容也往往需要把整张光盘都抹掉重刻,而不能随机的改写文件内容。当然光盘有一种例外的情况,就是可擦写光盘配合UDF文件系统时,可以以类似磁盘的方式访问。
第三种模型就是磁带模型,录像带和录音带是典型这种情况。磁带通常是没有文件系统的,必须要顺序的读取和写入。但是磁带和磁盘类似的一点就是可以多次写入,通常情况下,磁带写入的起点也是自由的。
磁盘模型是我们平时来说见的最多的一个模型,软盘是磁盘模型最简单的实现。我今天带的是曾经常见的3.5寸软盘,它的外壳上有格小窗户,当它被放进软驱之后窗户就会打开,磁头就可以接触到磁盘表面。它真正用于存储的结构很简单,就是一个涂满磁性材料的塑胶片,通过探测磁盘表面磁性或对表面磁性材料重新磁化进行读写。
上面的图片基本上解释了软盘的工作原理,3.5寸软盘的一角有一个带有滑动塑料快的小孔,这是写保护功能的开关,打开这个小孔软盘里的东西就不能改写了。软盘的许多特性并没有离开我们现在的系统太远,许多软盘的特性都和硬盘是相似的,比如文件系统、文件目录等等,软盘的容量通常很小。
我们今天在讨论软盘时往往会把3.5寸软盘说成是“1.44兆软盘”,但其实软盘的格式往往是非常复杂的。当处理老式电脑的软盘时候,往往遇到的第一道坎就是软盘格式。OmniFlop是一款专门用来读写老式电脑软盘的软件,它提供了替代Windows内置的软驱驱动程序来支持更多格式的软盘,在它的网站上我们可以看到列举了OmniFlop可以读取的一百六七十种软盘格式,有的格式容量小到几十KB到100多KB,有些容量则比较大,可以到1600KB以上。
OmniFlop网站: OmniDisk / OmniFlop
用于Apple IIGS的Apple 3.5" Drive也是400/800KB的型号
我们会发现即使是同样是相同外观的3.5英寸软盘,在不同电脑上使用的容量也是不一样的,许多甚至不能用标准的PC软盘去读取。苹果Macintosh的软盘格式就与IBM PC上的明显不同,它的400KB、800KB格式所使用的就是索尼开发的分区恒角速(Zoned CAV)软驱,所以老式Macintosh的软盘是没办法用现在的软驱来读取的。这是我之前曾经亲自遇到过一个问题,因为我当时有一个老的Macintosh SE,它就是使用的800K软驱,因为它没有办法使用普通PC软驱读取,所以就无法使用软盘作为导出数据的渠道,当然我还有别的办法,在后面就会提到。
fdrawcmd是另一个Windows软驱控制器驱动,可以支持更多软盘格式: fdrawcmd.sys
KyroFlux提供了一个专用的硬件软驱控制器,可以读取包括苹果400/800KB格式在内的许多PC软驱无法读取的格式: KryoFlux Products & Services Ltd.
另外一种最常见存储介质就是硬盘。软盘则得名于它所使用的柔性塑胶盘片,而硬盘盘片使用的材质通常是是金属的,少数型号也使用玻璃,都是不能弯折的硬材料,因此称作硬盘。其实硬盘出现的时间比软盘要更早。软盘开发于60年代末,在70年代才成为商业产品,而公认的第一款硬盘IBM 350 RAMAC在1956年就上市了。
软盘是一个二维的存储结构(不考虑双面的情况下),所有的数据都存储在一个平面上,如果硬盘中只有单个盘片,那么它逻辑上就像是一个密度更高的软盘。无论是软盘还是硬盘,磁盘上面的数据都以若干层环状排列,每一环就被称作一个“磁道”(Track);每个磁道会被分割成若干个片段(sector),因为形状是一个扇形,所以中文叫“扇区”。
硬盘的结构要比软盘更复杂,你可以把硬盘粗略地理解成是一串摞在一起的软盘。大多数硬盘都有不止一个盘片,因此它是三维结构,多个盘片上位置相同的磁道被逻辑上划为一组,构成一个逻辑上的“圆柱体”,叫做一个柱面(cylinder);每个盘片都有各自独立的磁头(head),如果盘片正反面都有磁性材料,每个盘片就有两个磁头,也因此每个磁头所操作的范围互不重叠。
如果想在硬盘上定位数据,就需要有三个资料:数据所在的柱面号(cylinder)、数据在哪个磁头(head)上(也就是在哪个盘片的哪一面),以及数据所在的扇区(sector)。知道这三个数据,也就是许多时候提到的“CHS”数据,就可以精确的找到数据在硬盘上存储的位置了。即使今天的磁盘工具,它仍然会处使用这种方式来定位数据。比如说我现在用的电脑虽然是固态硬盘,物理上已经不存在磁盘结构,但是固态硬盘的固件仍然模拟了CHS信息,硬盘分区表也仍然依靠CHS参数来建立。
在DiskGenius软件中,可以看到每个分区都包括一组起始和终止的柱面-磁头-扇区(CHS)信息
CHS寻址是PC上操作大容量存储最常用的方式,即使今天的硬盘所报告给软件的CHS信息已经不再与磁盘的物理结构挂钩,但软件仍以这种方式去访问硬盘中的数据。你会发现磁盘工具里报告的磁头号有几十上百号,但真实的硬盘并不真的有那么多磁头,而是出于软件的兼容性去模拟的,这种技术叫逻辑区块地址(Logical Block Address,LBA)。
很多在结构上并不是硬盘的存储装置,也会来模拟CHS信息来提供软件上的兼容性。比如Zip驱动器就是一个典型的例子,从物理结构上讲它是软盘的升级版,它比3.5寸软盘略大,有更加厚重、坚固的外壳,内部盘片的材质则与软盘相似。Zip虽然有着类似软盘的物理结构,软件在操作Zip磁盘时却遵循和硬盘类似的CHS寻址规则。
Zip驱动器和磁盘
Jaz驱动器是另一个有意思的案例,它代表了在今天常见的USB的移动硬盘出现之前,将硬盘移动化的主要思路:即盘片本身是比较便宜的,但是它读写的机构比如磁头和控制电路是比较昂贵的。在Jaz驱动器上,盘片被单独放在一个可拆换、可携带的卡匣里,而磁头和控制电路是固定在驱动器里面的。在1995年推出时,它的容量与当时的内置硬盘相仿。但由于磁头和电路是固定的,它的容量也无法只靠更换磁盘卡匣升级,而是要整套驱动器都重新购买,所以在2000年代之后就被我们常见的USB移动硬盘取代了。
Jaz驱动器
还有一种使用CHS寻址的存储设备就是光磁盘,光磁盘也叫MO磁盘或者MO光盘这样的东西。它在咸鱼上比较容易买到,因为之前很多档案机构用它来做长期存档,直到近年来才逐渐被磁带机取代。光磁盘是磁性写入、光学读取的设备,它的原理叫赫尔效应,就是光线遇到磁场的时候是会发生偏转,因此可以探测光线的变化来读取数据。虽然它在原理上是一种光存储设备,但和以CD、DVD为代表的光盘不同,它在软件操作时更像是磁盘,也是具有CHS结构的。
MO光盘是电影《碟中谍》里的关键道具
而使用类似硬盘存储方式最新的设备就是储存卡以及固态硬盘,它们是基于闪存芯片的存储,但是它实际上也会向软件报告CHS结构。我找了到两个工业储存卡的文档,包括CF卡和SD卡,会发现他们都为嵌入式开发者提供了参考的CHS参数。
创见(Transcend)工业CF卡资料: https://docs.rs-online.com/5e7c/0900766b80d86218.pdf
APRO工业SD卡资料: https://www.apro-tw.com/Databank/2009%20Datasheet/Industrial%20SD/100-WPSDMD-01V1.pdf
虽然储存卡在软件操作上大致遵循硬盘标准,但它接口和外形规格的复杂度给使用者留下不少挑战。储存卡之间有着复杂的兼容性,以及很多标准或非标准的转接卡。比如说像MMC卡通常可以在SD卡槽中使用,几乎所有CF卡都可以不损失性能的转换为PC卡,同时许多储存卡都有PC卡版本的读卡器,MicroSD卡可以转接成CF、SD、Memory Stick、xD Card等一系列转接卡,而这种转接的情况兼容型、稳定性不一,往往需要实际测试之后才能确定其性能。
我们刚才在讲到储存卡的时候就提到了不同接口兼容性的问题,其实接口的问题是数字保存最大的挑战之一。现代电脑上常见的SATA接口较为容易处理,因为笔记本和移动硬盘使用的2.5寸硬盘和台式机的3.5寸硬盘的SATA接口的外形是一致的。但早一些的PATA(IDE)接口就有2.5寸硬盘的44针和3.5寸硬盘的40针两种标准,这个时候就需要用到转接卡了。
此外前面提到的CF卡和SD卡也是可以转接成IDE的,相应的转接卡也较为常见。CF转接IDE非常适合用于展示老式PC,比如说486或者586电脑上的作品。去年秋天我在上海展出的《人民计算机》,就使用了SD卡到IDE的转接卡。新的储存卡比老旧的小容量硬盘更可靠、价格也更便宜,同时也便于维护,可以随时将储存卡抽取下来并放到现代PC上进行操作。这对于老电脑相关展品的策展人及的使用老电脑创作的艺术家来说非常实用。
但是下面要讲到的SCSI接口就算是电脑存储接口的“深水区”了,直到2000年代初,SCSI接口都比同时期的IDE接口要稍微快一点,而且有较低的CPU占用,曾经广泛被用在服务器高端PC上。大部分90年代中期及之前的苹果电脑上面也都有SCSI接口。
SCSI接口处理的难点之一就是菊花链(daisy chain)的配置,“菊花链”是指将若干设备一个接一个地串联起来,最终只有一个接口连接到主机(host)。在整个链条最远离主机的最后一个设备上需要设置终结器(terminator)才能保证这一链条的正常运行。有的设备有内置终结器,需要使用设备上的开关来开启;有的设备则没有内置终结器,需要使用额外的硬件终结器并连接到设备空闲的SCSI接口上。
SCSI Zip驱动器,两个开关分别用于设置SCSI ID和内置终结器(Termination On/Off)
虽然说SCSI接口处理起来蛮麻烦的,但是很多时候却是操作老苹果电脑最便利的办法。比如说我之前提到软盘搞不定的老Macintosh SE,最后就是用SCSI连接Zip驱动器来使用的。就像我前面提到的,Zip驱动器在软件看来是以硬盘的方式工作的,而老Macintosh的固件也可以将Zip驱动器当做一个外置硬盘,并直接从上面启动。这就给我的操作带来很大的便利。因为Zip驱动器也有USB的版本,因此我只需要更换盘片,就可以使用现代PC把用模拟器准备好的操作系统和应用程序镜像写入Zip软盘并在老Macintosh上运行。
各类SCSI接口
当然如果你的设备有IDE接口的话,我觉得最好还是不要用SCSI。因为SCSI接口类型实在太多了,比如老式苹果电脑的外置SCSI接口是25针的DB-25,内置的SCSI接口是低密度的50针接口。但许多外设是高密度50帧或68针的,从80年代到2000年代,SCSI接口覆蓋了大量不同功能和时代的电脑硬件,虽然嵌套多重转接头理论上可以连接所有的设备,但未必都能正常工作。因此我自己在使用PowerMac 7300的时候,就安装了一张PCI的SATA卡来连接硬盘。
对于数字保存的另外一个挑战就是老电脑的磁盘中会遇到各种各样的不同的文件系统。IBM PC及兼容机所使用的FAT16或FAT32是最容易处理的,一般来说只要能够有合适的接口连接到主机,FAT格式的磁盘在现代电脑上大部分情况是可以读的。同时Windows系统很大程度上保留了对旧型应用程序的二进制兼容,32-bit的Windows 7甚至Windows 10都可以直接运行很多16-bit的Windows3.0程序。
在Windows 7上运行Windows 3.0的Reversi游戏
拿我自己遇到的真实情况举例,我有一台1987年的IBM PS/2 Model 30,它是720KB的3.5寸软驱,这种格式用现在的USB软驱也是可以读取的,因此我成功地把Windows 3.0的黑白棋游戏通过软盘复制到Windows7的电脑上来执行。Linux由于是开始就是为IBM PC开发的,所以1993年推出的ext2差不多是能见到的最老的文件系统,在现在的发行版上读取也没有大碍。
但是苹果的话问题就会比较多,一个问题是前面提到的软盘格式是不兼容的问题,400k和800k的Macintosh软驱在PowerMac G3之后就没有了,而普通PC软驱也不能读取。这个时候就会涉及到多次的数据迁移,首先需要一台能有软盘,并且能够兼容的机器,比如我自己的Power Macintosh 6100和Power Macintosh 7300都充当过“中转站”,用来为Macintosh SE准备软盘。因为这两款电脑都有以太网网卡,所以可以通过网线跟现代电脑交换数据。这时处理老式电脑的数据时常用的一种手段。
使用FileTyper工具查看和修改HFS文件系统的类型和创建者代码
在处理老式苹果电脑的文件时的另外一个问题就是HFS文件系统的类型代码(type code)和创建者代码(creator code),老式Mac OS系统不像Windows或Mac OS X之后的苹果电脑那样使用文件扩展名来标志文件类型,而是将文件类型存储在HFS系统的文件属性里。如果在转移文件的过程中使用了非HFS格式的磁盘,就可能丢失保存在HFS属性中的文件的类型而导致不知道该用什么程序打开的情形,因此会需要特别小心的处理这些文件系统。
FileTyper可以在Macintosh Repository找到: FileTyper – Macintosh Repository
FileType是另一个可以修改类型和创建者代码的工具: FileType " Changing Type/Creator Codes on the Mac
如果拿到一块不确定格式的磁盘的话,通常来说可以用Windows工具,比如说像DiskGenius、R-Studio这样的工具,来先调查一下磁盘分区的状况。因为很多时候苹果上的磁盘工具隐藏了很多文件系统的细节而导致难以诊断和修复的情况。此外,比较新的Linux内核也内置了hfsplus模块,使用GParted等Linux工具可以对苹果HFS分区表做一些Mac OS X自带分区工具所不支持的底层操作。
接下来我们来看一下光盘,光盘的一个特点就是它的存储结构是一个或若干连续的轨道,并非像硬盘那样是非常规则的多层同心圆结构,也因此无法用CHS结构进行寻址。通常纯数据CD-ROM只有一个轨道,多轨道CD往往用于在一张光盘上存储不同类型的数据,比如同时存储音频和数据。
光盘备份工具IsoBuster网站上的文章介绍了CD和DVD光盘的结构: CD/DVD Layout
一个能够让我们了解光盘结构的方式就是CUE脚本,它记录了关于光盘轨道详细的信息。
Hydrogenaudio Knowledgebase中关于CUE脚本有详细的介绍: Cue sheet – Hydrogenaudio Knowledgebase
我们可以先看一下普通的CD-ROM的CUE表,它只有一个轨道,使用的是MODE1/2048格式。
CATALOG 0000000000000
FILE "Myst (1994)(Broderbund).iso" BINARY
TRACK 01 MODE1/2048
INDEX 01 00:00:00
<< · Back Index ·>>
上一篇