• Linux命令-自动挂载文件/etc/fstab功能详解[转]


    一、/etc/fstab文件的作用

             磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。

            系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。

    二、挂载的限制

        在说明这个文件的作用之前我想先强调一下挂载的限制。

      1、根目录是必须挂载的,而且一定要先于其他mount point被挂载。因为mount是所有目录的跟目录,其他木有都是由根目录 /衍生出来的。

      2、挂载点必须是已经存在的目录。

      3、挂载点的指定可以任意,但必须遵守必要的系统目录架构原则

      4、所有挂载点在同一时间只能被挂载一次

      5、所有分区在同一时间只能挂在一次

      6、若进行卸载,必须将工作目录退出挂载点(及其子目录)之外。

    三、/etc/fstab文件中的参数

    下面我们看看看/etc/fstab文件,这是我的linux环境中/etc/fstab文件中的内容

    cat /etc/fstab 查看当前系统已经存在的挂载信息

    在文件中我已经把每一列都做出来表示方便识别,我们可以看到一共有六列。

    第一列:Device:磁盘设备文件或者该设备的Label或者UUID

      1)查看分区的labeluuid

         Label就是分区的标签,在最初安装系统时填写的挂载点就是标签的名字。可以通过查看一个分区的superblock中的信息找到UUIDLabel name

        例如:我们要查看/dev/sda1这个设备的uuidlabel name

    dumpe2fs -h /dev/sda1

    dumpe2fs 1.35 (28-Feb-2004)

    Filesystem volume name:   /boot   //这个就是Label name

    Last mounted on:          <not available>

    Filesystem UUID:          3b10fe13-def4-41b6-baae-9b4ef3b3616c    //UUID

    Filesystem magic number:  0xEF53

    Filesystem revision #:    1 (dynamic)

    Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super

    Default mount options:    (none)

    Filesystem state:         clean

    简单点的方式我们可以通过下面这个命令来查看

    blkid

    blkid /dev/vda1

     

      2)使用设备名和labeluuid作为标识的不同

                使用设备名称(/dev/sda)来挂载分区时是被固定死的,一旦磁盘的插槽顺序发生了变化,就会出现名称不对应的问题。因为这个名称是会改变的。

    不过使用label挂载就不用担心插槽顺序方面的问题。不过要随时注意你的Label name。至于UUID,每个分区被格式化以后都会有一个UUID作为唯一的标识号。使用uuid挂载的话就不用担心会发生错乱的问题了。

    第二列:Mount point:设备的挂载点,就是你要挂载到哪个目录下。

     

    第三列:filesystem:磁盘文件系统的格式,包括ext2ext3reiserfsnfsvfat

     

    第四列:parameters:文件系统的参数

    Async/sync

    设置是否为同步方式运行,默认为async

    auto/noauto 

     当下载mount -a 的命令时,此文件系统是否被主动挂载。默认为auto

    rw/ro        

     是否以以只读或者读写模式挂载

    exec/noexec        

     限制此文件系统内是否能够进行"执行"的操作

    user/nouser

    是否允许用户使用mount命令挂载

    suid/nosuid

    是否允许SUID的存在

    Usrquota

    启动文件系统支持磁盘配额模式

    Grpquota

    启动文件系统对群组磁盘配额模式的支持

    Defaults

    同事具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置

     

    第五列:能否被dump备份命令作用:dump是一个用来作为备份的命令。通常这个参数的值为0或者1

             0

    代表不要做dump备份

             1

    代表要每天进行dump的操作

             2

    代表不定日期的进行dump操作

     

    第六列是否检验扇区:开机的过程中,系统默认会以fsck检验我们系统是否为完整(clean)。

    0

    不要检验

    1

    最早检验(一般根目录会选择)

    2

    1级别检验完成之后进行检验

     

    今天工作的时候发现所有IO节点服务器上的UUID值被人误操作全部被修改为特定的值,所以写了一个shell将所有/etc/fstab中的UUID值重新修改为blkid 正确的值。

    #!/bin/bash
    #blkid | grep sda3 |awk '{print $2}' |cut -c 7-42 
    uuid3=`blkid | grep sda3 |awk '{print $2}' |cut -c 7-42`
    echo sed -i "s/c3522ef4-720a-4b2e-bfb4-92fdeadf4436/$uuid3/" /etc/fstab
    sed -i "s/c3522ef4-720a-4b2e-bfb4-92fdeadf4436/$uuid3/" /etc/fstab
    
    #blkid | grep sda1|awk '{print $2}' |cut -c 7-42
    uuid1=`blkid | grep sda1|awk '{print $2}' | cut -c 7-42`
    echo sed -i "s/fbf5dd66-d85a-4c25-bd6e-9c637263e95c/$uuid1/" /etc/fstab
    sed -i "s/fbf5dd66-d85a-4c25-bd6e-9c637263e95c/$uuid1/" /etc/fstab
    
    #blkid |grep sda2|awk '{print $2}' |cut -c 7-42
    uuid2=`blkid |grep sda2|awk '{print $2}' |cut -c 7-42`
    echo sed -i "s/8c353c4d-f3be-47e5-bc66-36e7a1947d18/$uuid2/" /etc/fstab
    sed -i "s/8c353c4d-f3be-47e5-bc66-36e7a1947d18/$uuid2/" /etc/fstab

     

  • 相关阅读:
    【原创】禁止快播自动升级到最新版本,自己发现的方法
    又一灵异事件 Delphi 2007 在 Win7
    [DCC Error] E2161 Error: RLINK32: Error opening file "_____.drf"
    单例模式 改进
    estackoverflow with message 'stack overflow'
    所有可选的快捷键列表[转自万一博客]
    SQL server 除法运算
    正则表达式的一个坑[.\n]无效引起的血案
    getcwd()和__DIR__区别
    并发处理的技巧php
  • 原文地址:https://www.cnblogs.com/wangtao1993/p/6179402.html
Copyright © 2020-2023  润新知