当前位置:Linux教程 - Linux - Linux文件系统管理问答(上)

Linux文件系统管理问答(上)



           文件系统在操作系统中的重要地位是不言而喻的。Linux 使用EXE2文件系统作为自己的主文件系统,同时也支持其它一些文件系统,管理好这些文件系统是每一位Linux系统管理员的必修课。

      Q:目前Linux 支持哪些类型的文件系统?

      A:目前2.2.x以上版本的Linux系统核心支持MINIX、XIAFS、EXT、EXT2、ISO9660、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SYSV、SMBFS、NCPFS等类型的文件系统,更详细的情况可参阅核心源文件目录下的/fs/FileSystems.c文件。其中,EXT2被Linux作为主文件系统,它可提供Linux的全部性能特性;VFAT是Windows 9x所使用的文件系统;ISP9660是CD-ROM特有的文件系统。

      Q:我不能向NTFS、HPFS等文件系统上写数据为什么?

      A:到目前为止,在Linux下这两种文件系统是只读的。

      Q:在Linux系统下浏览MSDOS文件系统的文本文件,每行后都多出了一个令人讨厌的“^M”,怎么办?

      A:MSDOS格式的文本文件以CR-LF(回车-换行)符为行结束符,而Linux、UNIX等类操作系统格式的文本文件以LF(换行)符为行结束符,因此会出现上述情况。解决的办法是在Mount命令中加上conv=auto参数,使MSDOS格式文本直接转换为Linux格式文本。如:mount -o conv=auto -t msdos /dev/fd0 /mnt

      对于光盘上的MSDOS格式文本文件也可按同样方法解决。

      Q:我能不能看到Windows 9x系统的长文件名?

      A:如果不以MSDOS类型装载Windows 9x文件系统,而要以VFAT类型装载。如:mount -t vfat /dev/hda2 /mnt,这样就可以看到Windows 9x的长文件名了。VFAT支持FAT32,但不支持中文文件名。

      Q:我装了Windows 9x与Linux两套系统,但每次在Linux下使用Windows分区都要使用Mount及Umount命令,挺麻烦的,有更简便的方法吗?

      A:在Linux下有一工具:MTools,专门用来操作MSDOS及VFAT文件系统,不需要使用Mount及Umount命令,这在使用软盘时尤为方便。MTools包含一组程序,这些程序都以同功能MSDOS程序加“m”打头命名,使用方式与DOS程序类似,且可以同时操作EXT2文件系统。如列出DOS软盘上的文件:$ mdir a:,复制DOS软盘上所有文件到Linux系统/tmp目录:$ mcopy a:\*.* /tmp。MTools的配置文件是/etc/MTools.conf,很简单的。在命令提示符下打入 MTools命令将给出MTools支持的DOS工具。

      Q:怎样使用SMB文件系统?

      A:确认当前使用的Linux系统核心是2.2.x以上版本,并且在编译时选择了对SMBFS的支持。使用SMB你需要一个特殊的“mount”程序,请到下列地址下载SMBFS程序:

      ftp://sunsite.unc.edu/pub/Linux/System/Filesystems/SMBFS。然后作相应配置、编译,便可用其中的SMBMount及SMBUmount命令装载及卸下SMB文件系统了。

      Q:怎样使用NCPFS文件系统?

      A:NCPFS文件系统是Novell NetWare使用的NCP网络文件系统,在Linux上使用它也需要一个特殊的软件包,可到如下地址下载:ftp://ftp.gwdg.de/pub/linux/misc/ncpfs,具体配置方法请参阅软件包所附文档。

      Q:我下载了光盘ISO文件,能否在硬盘上直接使用它们?

      A:在Mount命令中加入Loop参数,就可按通常方法使用它们了。例如:mount -o loop -t iso9660 example.iso /mnt

      Q:怎样在Linux下使用SCO OpenServer等UNIX系统的文件系统?

      A:SCO Open Server,例如5.0.x版本,支持多种文件系统(AFS、DTFS、EAFS、HTFS、S51K 、XENIX等),Linux使用的SYSV文件系统驱动程序支持大部分的UNIX类操作系统所使用的文件系统,能否使用SCO Open Server文件系统要视你系统具体情况而定。你可以试一下,例如软盘:mount -t sysv /dev/fd0 /mnt

      如果系统测试到某一支持UNIX的文件系统,它会给出类似如下信息并装载上它:VFS: Found a Xenix FS (block size=1024) on device 02:00。一般说来,S51K及XENIX文件系统Linux是支持的。

      Q:向软盘上写文件,软驱一点反应也没有,为什么?

      A:对软盘上的文件系统读写也像硬盘一样使用内存缓冲区。就是说,系统并不是立即将数据送往软盘或硬盘,而是送到了内存,然后定期地、成批地写入软盘或硬盘,以加快系统运行速度。因此,已Mount的软盘不能像在MSDOS下那样随便拿出,而必须在使用了Umount命令将其卸下之后拿出,以防数据丢失。

      Q:怎样让普通用户也能装载某一分区?

      A:在/etc/fstab文件中对应记录的“选项”栏中加入user参数,如上例中将default改为user(注意default与user参数不能并存),这样,普通用户就可以装载或卸下它了。但这样做会造成安全问题,一般对软盘或CD-ROM是可行的。

      Q:卸下一个文件系统时,系统提示“deviceis busy”错误,无法将其卸下,为什么?

      A:某一用户或某一进程的当前工作目录在该文件系统上,这阻碍了Umount的执行,等该用户或该进程退出,再执行Umount命令即可。

      Q:我有一张软盘,我也不知它的文件系统类型,可以在Linux下使用它吗?

      A:可以让Linux“尝试”一下,在Mount命令中将文件系统类型改为Auto,如:mount -t auto /dev/fd0 /mnt。系统会自动测试MINIX、EXT、EXT2、XIAFS、ISO9660、ROMFS等类型的文件系统,如果/proc/filesystems文件存在,也将进一步测试其包含的文件系统类型,一旦成功,系统便会将其装载上。

      Q:怎样在系统启动时自动装载上某一文件系统?

      A:在/etc/fstab文件中按如下格式加入一行:设备 装载目录 文件系统类型 选项 备份频率 fsck次序。

      例如,我在/dev/hda2上有一MSDOS文件系统,我想在系统启动时装载上它,我是这么做的:/dev/hda2 /mnt msdos default 0 0 。该例中,备份频率及fsck次序为0表示该文件系统不备份,在启动时不作文件系统检查。

      Q:重新编译了系统核心,但系统却无法启动了,提示“VFS: Unable to mountroot fs”,怎么回事?

      A:你没有将支持根文件系统的代码编译进核心。Linux的主文件系统是EXT2,根文件系统类型一般也是EXT2,因此必须将EXT2的支持代码编译进核心,不能将其编译成可插卸模块,否则系统将无法从根文件系统的有关模块上加入对根文件系统的支持,“皮之不存,毛将焉附”?请重新编译系统核心。

      Q:将某文件系统装载到某一目录,该目录原先的文件都不见了,怎么回事?

      A:不必担心,卸下该文件系统后,该目录上的文件还在那儿,只是暂时不可用而已。作为装载点的目录最好为空。另外,作为装载点的目录虽然不必为空,但必须存在,否则系统会给出类似错误提示:“mount: mount point /mnt does not exist”。
    发布人:gemini 来自:赛迪网