时间:2008-01-02 
   最近对硬盘重新划分了分区,启动的时候总是启动不起来,总是提示找不到内核文件之类的错误。当时,很是纳闷,grub里面已经找到了,怎么到这里面又找不到了。后来仔细想想,是/etc/fstab里面出了问题。/etc/fstab用来配置在开机引导的时候自动挂载到linux的文件系统。
    在linux中/etc/fstab的数据项如下所示:    
                               
   例如下面就是我机子上的/etc/fstab配置文件
# /etc/fstab: static file system information.
#
#                
proc                    /proc                   proc        defaults            0           0
/dev/hda6          /                           ext3        defaults,errors=remount-ro 0       1
/dev/hda7          none                     swap        sw                        0           0
/dev/hdd            /media/cdrom0   udf,isoArray660 user,noauto     0         0
/dev/hda3          /mnt/f                 vfat        defaults            0           0
/dev/hda5          /mnt/e                 ntfs        defaults,nls=utf8               0      0
file system 就是需要挂载的设备,/hda3就是第一个IDE插槽上的主硬盘的第三个分区。如果是第二个IDE插槽主硬盘的第三个分区,那就是/dev/hdb3,具体可以在linux下使用fdisk -l  查看。
mountpoint 就是挂载点。/、 /usr、 swap 都是系统安装时分区的默认挂载点。
如果你要挂载一个新设备,你就要好好想想了,因为这个新设备将作为文件系统永久的一部分,需要根据FSSTND(文件系统标准),以及它的作用,用户需求来决定。比如你想把它做为一个共享资源,放在/home下面就是一个不错选择。
type 是指文件系统类型。
options 是指挂载时的规则。下面列举几个常用的:
auto 开机自动挂载 
default 按照大多数永久文件系统的缺省值设置挂载定义
noauto 开机不自动挂载
nouser 只有超级用户可以挂载
ro 按只读权限挂载
rw 按可读可写权限挂载
user 任何用户都可以挂载
请注意光驱和软驱只有在装有介质时才可以进行挂载,因此它是noauto
0 是指dump(系统备份工具)。这一项为0,就表示从不备份。如果上次用dump备份,将显示备份至今的天数。 
order 指fsck(启动时fsck检查的顺序)。为0就表示不检查,(/)分区永远都
是1,其它的分区只能从2开始,当数字相同就同时检查(但不能有两1)。
    所以以后大伙修改了磁盘分区后一定要记得及时更新/etc/fstab,否则系统极有可能启动不起来。我刚好比较幸运,装了不止一个系统,所以可以从其它系统启动,然后在另一个系统中修改了要启动系统的/etc/fstab,如果你只有一个系统的话,那可就惨了....
 
*************************************************
linux下/etc/fstab文件详解[2]
日期: 2007.12.25 12:27
 
 我们在linux中常常用mount命令把硬盘分区或者光盘挂载到文件系统中。
      /etc/fstab就是在开机引导的时候自动挂载到linux的文件系统。
   
      在linux中/etc/fstab的数据项如下所示:
      /dev/device   mountpoint   type   rules   0   order 
      例如这是一个普通的/etc/fstab:
      /dev/hda2     /                    ext3        defaults   0 1
      /dev/hda3     swap             swap      defaults   0 0
      /dev/hda5     /usr               ext3        defaults   0 0 
      /dev/fdo        /mnt/flopy     ext3        noauto     0 0
      /dev/cdrom    /mnt/cdrom   iso9660  noauto,ro 0 0
      /dev/device就是需要挂载的设备,/hda2就是第一个IDE插槽上的主硬盘的第二个分区。如果是第二个IDE插槽主硬盘的第三个分区,那就是/dev/hdc3,具体可以在linux下使用fdisk -l  查看。
      mountpoint 就是挂载点。/、 /usr、 swap 都是系统安装时分区的默认挂载点。
      如果你要挂载一个新设备,你就要好好想想了,因为这个新设备将作为文件系统永久的一部分,需要根据FSSTND(文件系统标准),以及它的作用,用户需求来决定。比如你想把它做为一个共享资源,放在/home下面就是一个不错选择。
      type 是指文件系统类形。
      rules 是指挂载时的规则。下面列举几个常用的:
        auto 开机自动挂载 
        default 按照大多数永久文件系统的缺省值设置挂载定义
        noauto 开机不自动挂载
        nouser 只有超级用户可以挂载
        ro 按只读权限挂载
        rw 按可读可写权限挂载
        user 任何用户都可以挂载
       请注意光驱和软驱只有在装有介质时才可以进行挂载,因此它是noauto
      0 是指dump(系统备份工具)。这一项为0,就表示从不备份。如果上次用dump备份,将显示备份至今的天数。 
      order 指fsck(启动时fsck检查的顺序)。为0就表示不检查,(/)分区永远都
是1,其它的分区只能从2开始,当数字相同就同时检查(但不能有两1)。
      如果我要把第二个IDE插槽主硬盘上的windows C 区挂到文件系统中,那么数据项是:
     /dev/hdc1 /c vfat defaults 0 0
     (/c 是事先建立的文件夹,作为c盘的挂载点。)
      
     当你修改了/etc/fstab后,一定要重新引导系统才会有效。
 
fstab中存放了与分区有关的重要信息,其中每一行为一个分区记录,每一行又可分为六个部份,下面以/dev/hda7 / ext2 defaults 1 1为例逐个说明:
  1. 第一项是您想要mount的储存装置的实体位置,如hdb或如上例的/dev/hda7。 
  2. 第二项就是您想要将其加入至哪个目录位置,如/home或如上例的/,这其实就是在安装时提示的挂入点。
  3. 第三项就是所谓的local filesystem,其包含了以下格式:如ext、ext2、msdos、iso9660、nfs、swap等,或如上例的ext2,可以参见/prco/filesystems说明。
  4. 第四项就是您mount时,所要设定的状态,如ro(只读)或如上例的defaults(包括了其它参数如rw、suid、exec、auto、nouser、async),可以参见「mount nfs」。 
  5. 第五项是提供DUMP功能,在系统DUMP时是否需要BACKUP的标志位,其内定值是0。
  6. 第六项是设定此filesystem是否要在开机时做check的动作,除了root的filesystem其必要的check为1之外,其它皆可视需要设定,内定值是0。
 
****************************************
修改/etc/fstab文件加快Linux系统的启动速度
 
 
[日期:2008-04-08]
 
Linux系统的启动速度有点慢!我们可以修改/etc/fstab文件来加快启动速度。
就是把NTFS和FAT的分区检测功能关闭就行了。下面以fstab文件内容为例:
# /etc/fstab: static file system information.
#
proc /proc proc defaults 0 0
# /dev/sda3
UUID=c007cc0c-4986-4db3-afcd-1195bc345c2b / ext3 defaults,errors=remount-ro 0 1
# /dev/sda1
UUID=C67C878A7C8773C9 /media/sda1 ntfs defaults,umask=007,gid=46 0 1
# /dev/sda5
UUID=26D49F43D49F13E1 /media/sda5 ntfs defaults,umask=007,gid=46 0 1
# /dev/sda6
UUID=752E-BA88 /media/sda6 vfat defaults,utf8,umask=007,gid=46 0 1
# /dev/sda7
UUID=7C2B-0E97 /media/sda7 vfat defaults,utf8,umask=007,gid=46 0 1
# /dev/sda8
UUID=8327-5008 /media/sda8 vfat defaults,utf8,umask=007,gid=46 0 1
# /dev/sda9
UUID=86A5-6E47 /media/sda9 vfat defaults,utf8,umask=007,gid=46 0 1
# /dev/sda10
UUID=b0b0392c-b8ba-4243-aa4c-3abdeb5c5605 none swap sw 0 0
/dev/hda /media/cdrom0 udf,iso9660 user,noauto,exec 0 0
修改之后:
# /etc/fstab: static file system information.
#
proc /proc proc defaults 0 0
# /dev/sda3
UUID=c007cc0c-4986-4db3-afcd-1195bc345c2b / ext3 defaults,errors=remount-ro 0 1
# /dev/sda1
UUID=C67C878A7C8773C9 /media/sda1 ntfs defaults,umask=007,gid=46 0 0
# /dev/sda5
UUID=26D49F43D49F13E1 /media/sda5 ntfs defaults,umask=007,gid=46 0 0
# /dev/sda6
UUID=752E-BA88 /media/sda6 vfat defaults,utf8,umask=007,gid=46 0 0
# /dev/sda7
UUID=7C2B-0E97 /media/sda7 vfat defaults,utf8,umask=007,gid=46 0 0
# /dev/sda8
UUID=8327-5008 /media/sda8 vfat defaults,utf8,umask=007,gid=46 0 0
# /dev/sda9
UUID=86A5-6E47 /media/sda9 vfat defaults,utf8,umask=007,gid=46 0 0
# /dev/sda10
UUID=b0b0392c-b8ba-4243-aa4c-3abdeb5c5605 none swap sw 0 0
/dev/hda /media/cdrom0 udf,iso9660 user,noauto,exec 0 0