发信人: sungang(笨刚) 
整理人: sungang(2003-09-16 12:20:32), 站内信件
 | 
 
 
4.3.3 设置fstab文件
 
 在系统启动时,系统将自动安装上必需的文件系统。而管理员所要做的是告诉FreeBSD应该安装那个文件系统、安装到那个目录上和有关的安装参数选项。所有的这些文件系统相关的信息都需要写入文件/etc/fstab中。
 
 在安装FreeBSD时,这个文件已经由sysinstall根据安装情况重写,具有正确的数据了,此后所需要做的只是根据系统硬件的变化,对这个文件进行修改,例如增加其他的文件系统。
 
 # Device                Mountpoint      FStype  Options         Dump    Pass#
 
 /dev/ad0s3b             none            swap    sw              0       0
 
 /dev/ad0s3a             /               ufs     rw              1       1
 
 /dev/ad0s3f             /usr            ufs     rw              2       2
 
 /dev/ad0s3e             /var            ufs     rw              2       2
 
 proc                    /proc           procfs  rw              0       0
 
 /dev/acd0c              /cdrom          cd9660  ro,noauto       0       0
 
 /dev/ad0s1              /dos            msdos   rw,noauto       0       1
 
 这个文件中的每一行为一个定义,为一种文件系统或交换设备定义对应的设备文件及安装选项。其中根文件系统具备一定的特殊之处,因为这个文件/etc/fstab本身以及FreeBSD的内核文件,其实是在根文件系统中的,因此系统必须首先安装了根文件系统,才能正常访问这些文件。事实上FreeBSD内核在启动时根据启动的硬盘,先搜索根文件系统,在启动时先以只读方式安装根文件系统,并读取根文件系统中相关文件的内容,然后再根据这个文件内容重新装载各个文件系统。因此,根文件系统通常的标签为a,如ad0s3a。
 
 这个文件的第一列为设备文件名字,或者NFS使用的远程文件系统的名字。第二列为文件系统的安装位置,第三列为文件系统的类型,其中UFS是FreeBSD使用的标准本地文件系统的类型,procfs是FreeBSD用于管理进程的进程文件系统。第四列为安装的选项,rw表示该文件系统能进行读写操作,ro表示该文件系统是只读的,sw用于交换分区,noauto表示启动时并不立即安装这个文件系统,而是由管理员在以后手工安装。第五列和第六列的数字是系统程序dump和fsck程序使用的标志,通常不需要改变,这个标志对根文件系统都是1,而对其他UFS类型的文件系统都是2,其他类型的文件系统为0。
 
 注意,由于fstab文件非常重要,如果这个文件有错误,就有可能造成系统不能正常启动,因此向fstab添加数据应非常小心。不是必须安装的文件系统就不应该进行自动装载,例如上面将CDROM对应的行参数设置为noauto,表示这个文件系统不是启动时自动装载的系统,否则如果CDROM对应的行没有noauto,那么启动时就需要光盘,如果不能安装光盘,则启动就会失败。
 
 在使用了fstab文件之后,mount命令的写法就可以简化了。mount命令将查看fstab文件中的内容以进行匹配,来选定正确的参数。例如,使用下列命令均可以安装上CD-Rom。
 
 # mount /dev/acd0c /cdrom
 
 # mount /dev/acd0c
 
 # mount /cdrom
 
 在安装了文件系统之后,可以使用不加参数的mount命令或df命令查看当前已安装的文件系统信息。
 
 # mount
 
 /dev/ad0s3a on / (local, writes: sync 117 async 796)
 
 /dev/ad0s3f on /usr (local, writes: sync 1189 async 4948)
 
 /dev/ad0s3e on /var (local, writes: sync 362 async 1354)
 
 procfs on /proc (local)
 
 /dev/ad1s2e on /disk2 (local, writes: sync 4 async 41)
 
 4.3.4 软盘操作
 FreeBSD支持软盘操作,虽然当前计算机上软盘的重要性已经大大减小,但在少量传送数据时,软盘仍不失为一种有效的工具。在软盘上可以使用UFS文件系统或msdos文件系统,出于兼容性的考虑,使用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工具属于非系统的工具,需要额外安装。此时软盘设备并没有安装到目录树上,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
  | 
 
 
 |