FreeBSD支持软盘操作,虽然当前计算机上软盘的重要性已经大大减小,但在少量传送数据时,软盘仍不失为 一种有效的工具。在软盘上可以使用UFS文件系统或msdos文件系统。
在软盘上建立UFS文件系统,便需要使用fdformat作软盘的低级格式化,使用disklabel建立文 件系统的标签,然后使用newfs初始化文件系统,最后才使用mount将它安装到目录树上:
# fdformat /dev/rfd0 Format 1440K floppy `/dev/rfd0@#? (y/n): y Processing VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV done. # disklabel -r -w fd0 fd1440 # newfs /dev/rfd0 Warning: Block size restricts cylinders per group to 6. Warning: 1216 sector(s) in last cylinder unallocated /dev/rfd0: 2880 sectors in 1 cylinders of 1 tracks, 4096 sectors 1.4MB in 1 cyl groups (6 c/g, 12.00MB/g, 736 i/g) super-block backups (for fsck -b #) at: 32, # mount /dev/fd0 /A |
当操作完毕之后必须使用umount /A卸载软盘。
也可以直接安装和卸载已有的msdos格式的软盘,并进行访问。
# mount -t msdos /dev/fd0 /A # ls /A # umount /A |
使用mtools工具能在软盘上建立msdos文件系统,并进行访问,此时软盘设备并没有安装到目录树上, mtools是使用raw方式对软盘进行访问的。mtools的命令与对应的DOS命令用法相同,只是每个命令以m开头 ,并且都是小写形式。如mdir对应DOS下的DIR命令,mcd对应DOS下的CD命令,mcopy对应DOS下的 COPY,并且能在FreeBSD的文件系统与DOS的软盘之间传递文件,等等。
# mformat A: # mdir A: # mcopy hello.c A: |
但是DOS的文本格式和Unix是不同的,Unix下只使用换行字符来表示换行,而DOS下同时使用换行和回 车字符。因此如果将DOS的文件复制到Unix下时,有时候会造成一些小麻烦。如果在vi下打开这种文件,可能会看到 这样结果:
main(){ ^M printf(“Hello! World!”); ^M }^M |
^M代表换行字符,在mcopy中加上-t参数,就可以消除在不同文件系统之间复制文件时的这些问题。如果对 已有的文件去除换行字符,可以直接在vi中使用模式替换将这个特殊字符消除(使用^V^M来表示这个特殊字符,即在按 下Ctrl键的同时输入V和M),或者使用tr命令:
$ tr -d “\015” < hello.c > hello.unix.c |
未完,待续。。。