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