3 Linux管理员手册--存贮介质( 八 )


被mkfs 调用的程序有不同的命令行接口 。最通用和最重要的选项如下,细节请看手册 。
-t fstype
选择文件系统种类 。
-c
查找坏块,初始化坏块列表 。
-l filename
从文件filename读入坏块列表 。
用如下命令在软盘上产生ext2文件系统:
$ fdformat -n /dev/fd0H1440
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
$ badblocks /dev/fd0H1440 1440 > bad-blocks
$ mkfs -t ext2 -l bad-blocks /dev/fd0H1440
mke2fs 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10
360 inodes, 1440 blocks
72 blocks (5.00%) reserved for the super user
First data block=1
Block size=1024 (log=0)
Fragment size=1024 (log=0)
1 block group
8192 blocks per group, 8192 fragments per group
360 inodes per group
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
$
首先,格式化软盘(-n选项不进行确认,即坏块检查) 。然后用badblocks 查找坏块, 输出定向到文件bad-blocks 。最后,产生文件系统,坏块列表由文件badblocks 初始化 。
-c选项可以与mkfs 一起使用,而无须badblocks 和一个单独的文件 。如下:
$ mkfs -t ext2 -c /dev/fd0H1440
mke2fs 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10
360 inodes, 1440 blocks
72 blocks (5.00%) reserved for the super user
First data block=1
Block size=1024 (log=0)
Fragment size=1024 (log=0)
1 block group
8192 blocks per group, 8192 fragments per group
360 inodes per group
Checking for bad blocks (read-only test): done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
$
使用-c比用单独使用badblocks 更方便, 但建立文件系统后检查,badblocks 是必要的 。
在硬盘或分区上准备文件系统的过程和软盘是一样的,除了无须格式化 。
Mount和unmount
一个文件系统可以使用之前,必须mount 。操作系统然后做一些记录以确认正常 。因为UNIX所有的文件在一个目录树中,mount操作的结果使新的文件系统的内容好象在某个已经mount的文件系统的一个已经存在的子目录中 。
上面的mount可能使用如下命令:
$ mount /dev/hda2 /home
$ mount /dev/hda3 /usr
$
mount 命令使用2个参数 。第一个是与包括文件系统的磁盘或分区相关的设备文件 。第二个是要mount到的目录 。mount以后,这2个文件系统的内容好象是/home 和/usr 目录 。这样就可以说:/dev/hda2 被mount到 /home , /usr 也同样 。要看每个文件系统,就看其被安装的目录,好象它就是在那里 。注意设备文件的区别,/dev/hda2 , 和安装到的目录/home。设备文件给出硬盘原始内容的存取,安装到的目录给出磁盘上文件的存取 。安装到的目录叫安装点 。
Linux支持许多文件系统 。mount 会试着猜测文件系统种类 。也可以使用-t fstype 选项直接定义种类;这有时是必要的,因为自检测mount 并非总能成功 。例如要mount一个MSDOS软盘,可以用如下命令:
$ mount -t msdos /dev/fd0 /floppy
$
安装点目录不必是空的,但必须存在 。其中的所有文件当文件系统mount后将不可用名字存取(已经打开的文件将继续可存取 。有其他目录硬连接的文件可以通过那些名字存取) 。这没有坏处,反而可能更有用 。例如,有人喜欢将/tmp 和/var/tmp 作为同义,将/tmp 作为/var/tmp 的符号连接 。系统启动时,在/usr 文件系统被mount之前,使用驻留在根文件系统的 /var/tmp 目录 。当/usr 被mount上以后,根文件系统上的/var/tmp 将不可用,如果根文件系统上不存在 /var/tmp ,那么在mount上/var 之前将不可能使用暂存文件 。
如果不打算在一个文件系统上写任何东西,可以使用mount 的-r开关做一个只读mount 。这将使核心停止任何对此文件系统的写要求,也将停止核心的对i节点的文件存取时间的更新 。只读mount对不可写介质是必要的,例如CDROM 。

推荐阅读