2 、通过/etc/fstab文件来开机自动挂载文件系统
1)理解fstab<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


上面我们说了 mount 挂载存储设备文件系统的办法;现在我们再来说一说在 /etc/fstab 中实现开机自动挂载文件系统的办法;首先我们要查看 /etc/fstab ;主要看他的规划写法;

# This file is edited by fstab-sync - see 'man fstab-sync' for details 
    
 
    LABEL=/1 / ext3 defaults 1 1 
    
 
    /dev/devpts /dev/pts devpts gid=5,mode=620 0 0 
    
 
    /dev/shm /dev/shm tmpfs defaults 0 0 
    
 
    /dev/proc /proc proc defaults 0 0 
    
 
    /dev/sys /sys sysfs defaults 0 0 
    
 
    LABEL=SWAP-hda7 swap swap defaults 0 0 
    
 
    /dev/hdc /media/cdrecorder auto users,exec,noauto,managed 0 0



第一字段: 设备名 ,在这里表示是文件系统; 有时我们把挂载文件系统也说成挂载分区; 在这个字段中也可以用分区标签;在例子中 /LABEL=/1 就是 linux 系统安装分区的标签,至于是在哪个分区,可以用 df -lh 来查看;

[root@localhost]# df -lh 
     
    Filesystem  
    容量 已用 可用 已用% 挂载点 
     
    /dev/hda8 11G 8.5G 1.9G 83% / 
     
    /dev/shm 236M 0 236M 0% /dev/shm 
     
    /dev/hda10 16G 6.9G 8.3G 46% /mnt/hda10



我们可以知道 LABEL=/1 是 /dev/hda8 的标签;那我们用什么命令来创建硬盘分区的标签呢?



对于 ext3 和 ext2 文件系统,我们可以用 e2label 来设置



e2label device [newlabel]   创建设备的标签命令




比如我们想把文件系统为 ext3 的分区 /dev/hda5 的标签设备为 /5 ,我们应该执行如下的命令:

[root@localhost]# e2label /dev/hda5 /5 
     
    [root@localhost]# mkdir /mnt/hda5  
    注:创建挂载/dev/hda5分区的目录; 
     
    [root@localhost]# chmod 777 /mnt/hda5  
    注:打开权限,所有用户可读可写可执行;



然后我们要改 /etc/fstab 中加一行



/5 /mnt/hda5 ext3 defaults 0 0



警告: 请不要在您的 Linux 的安装分区(也就是 Linux 系统 / 所在的分区)实践,会导致您的 Linux 系统崩溃;如果想实践,请在其它分区测试;



如果是 reiserfs 文件系统,我们应该用



[root@localhost]# reiserfstune -l 标签 设备



举例:比如我为 reiserfs 文件系统 /dev/hda10 设置标签为 /10 ;



[root@localhost]# reiserfstune -l /10 /dev/hda10



我们在 /etc/fstab 中加入一行;



/10 /mnt/hda10 reiserfs defaults 0 0



警告: 请不要在您的 Linux 的安装分区(也就是 Linux 系统 / 所在的分区)实践,会导致您的 Linux 系统崩溃;如果想实践,请在其它分区测试;



第二字段: 文件系统的挂载点;
第三字段: 文件系统类型;
第四字段: mount 命令的选项 ,和 mount 中的 -o 同理; defaults 包括这些选项 rw, suid, dev, exec, auto, nouser, async ;通过实践,这个默认的还能满足我们的需要;



第五字段: 表示文件系统是否需要 dump 备份,是真假关系; 1 是需要, 0 是不需要;
第六字段: 是否在系统启动时,通过 fsck 磁盘检测工具来检查文件系统, 1 是需要, 0 是不需要, 2 是跳过;




基于这些认识;比如我们要开机自动挂载 /dev/hda5 ;我们可以如下做;



[root@localhost]# mkdir /mnt/hda5/ 注:先创建一个挂载目录;
[root@localhost]# chmod 777 /mnt/hda5/ 注:设置/mnt/hda5的权限为任何用户可写可读可执行;这样所有的用户都能在写入;



然后我们在 /etc/fstab 中加如下的一行;



/dev/hda5 /mnt/hda5 reiserfs defaults 0 0



这样重启机器就能看到效果了;



四、对文件系统进行扫描 fsck



类似于 Windows 中的 scandisk ,在 Linux 中就有类似这样的工具 fsck ,不过 fsck 可不仅仅是扫描,还能修正文件系统的一些问题。值得注意的是 fsck 扫描文件系统时一定要在单用户模式、修复模式或把设备 umount 后进行。




警告: 如果扫描正在运行中的系统,会造成系统文件损坏;如果您的系统是正常,请不要用扫描工具,她可能会把您的系统搞坏掉, fsck 运行是有危险的;



文件系统扫描工具有 fsck fsck.ext2 fsck.jfs fsck.msdos fsck.vfat fsck.ext3 fsck.reiserfs ( reiserfsck )



其中 fsck 默认支持文件系统 ext2 ,如果想支持 ext3 文件系统的扫描,应该加 -j 参数,最好是我们应该根据不同的文件系统来调用不同的扫描工具,比如 fsck.ext2 , fsck.jfs , fsck.msdos , fsck.ext3 , fsck.reiserfs ( reiserfsck )等。我们也可以根据自己的文件系统选择不同的扫描工具;



举例:扫描 /dev/hda10 分区(基于 reiserfs 文件系统 );

[root@localhost]# fsck.reiserfs /dev/hda10 
     
    reiserfsck 3.6.19 (2003 [url]www.namesys.com[/url]) 
     
    ************************************************************* 
     
    ** If you are using the latest reiserfsprogs and it fails ** 
     
    ** please email bug reports to [email]reiserfs-list@namesys.com[/email], ** 
     
    ** providing as much information as possible -- your ** 
     
    ** hardware, kernel, patches, settings, all reiserfsck ** 
     
    ** messages (including version), the reiserfsck logfile, ** 
     
    ** check the syslog file for any related information. ** 
     
    ** If you would like advice on using this program, support ** 
     
    ** is available for $25 at [url]www.namesys.com/support.html.[/url] ** 
     
    ************************************************************* 
     
    Will read-only check consistency of the filesystem on /dev/hda10 
     
    Will put log info to 'stdout' 
     
    Do you want to run this program?[N/Yes] (note need to type Yes if you do):Yes 
     
    ########### 
     
    reiserfsck --check started at Wed Sep 14 08:54:17 2005 
     
    ########### 
     
    Replaying journal.. 
     
    Reiserfs journal '/dev/hda10' in blocks [18..8211]: 0 transactions replayed 
     
    Checking internal tree..finished 
     
    Comparing bitmaps..finished 
     
    Checking Semantic tree: 
     
    finished 
     
    No corruptions found  
    注:没有发现错误; 
     
    There are on the filesystem: 
     
            Leaves 2046 
     
            Internal nodes 15 
     
            Directories 130 
     
            Other files 2305 
     
            Data block pointers 1863657 (70565 of them are zero) 
     
            Safe links 0 
     
    ########### 
     
    reiserfsck finished at Wed Sep 14 08:54:33 2005 
     
    ###########


对于 fsck.ext2 和 fsck.ext3 常用的几个选项:



-p Automatic repair (no questions) 注:自动修复文件系统存在的问题;
-y Assume "yes" to all questions 注:如果文件系统有问题,会跳出提示是否修复,如果修复请按y;
-c Check for bad blocks and add them to the badblock list 注:对文件系统进行坏块检查;这是一个极为漫长的过程;
-n Make no changes to the filesystem 注:不对文件系统做任何改变,只要扫描,以检测是否有问题;



举例:比如 /dev/hda6 (文件系统是 ext3 的),我想扫描并自动修复;



[root@localhost]# fsck.ext3 -p /dev/hda6



注意: 针对不同文件系统,最好用相应的工具;虽然有时 fsck 在不加参数的情况下能识别不同的文件系统;



对于不同工具的最为详细的参数,请参看 --help 或者 man ;



补充: Fedora Core 4.0 默认安装不支持创建 reiserfs 文件系统,解决办法是安装 reiserfs-utils ,这也是需要的;


转载于:https://blog.51cto.com/13233/82680