FreeBSD連載(18):軟碟操作

1999年11月21日 17:24 王波

軟碟操作

  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