zoukankan      html  css  js  c++  java
  • Linux命令自动挂载文件/etc/fstab详解和应用

    环境:CentOS 6.5 & CentOS 7.5
    一、/etc/fstab文件的作用
      某些时候当Linux系统下增加新的磁盘或划分了新的分区后,磁盘分区被手动挂载之后需要把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新手动挂载。Linux系统开机时会主动读取 /etc/fstab 这个文件中的内容,根据文件里面的配置自动挂载磁盘。只要将磁盘的挂载信息写入这个文件中,每次开机启动后会自动进行挂载。
      Linux的文件结构是单个的树状结构。最顶部的为根目录,即/。在根目录下,分为多个子目录,包括/bin、/boot、/dev、/etc、/home、/lib、/media、/mnt、/opt、/proc、/root、/sbin、/tmp、/usr 和 /var等。因此 Linux 分区都必须挂载到目录树中的某个具体的目录上才能进行读写操作,而fstab正是负责这一配置。显然,根目录是所有Linux的文件和目录所在的地方,需要挂载上一个磁盘分区。Linux分区交换也需要独立使用一个分区,因此,安装一个Linux至少需要两个分区。(事实上,只使用一个分区安装Linux也是可能的,而且,如果电脑的物理内存足够大,交换分区并不是必须的)。

    二、挂载的限制
      1、根目录 / 是必须挂载的,而且一定要先于其他mount point被挂载。因为mount是所有目录的根目录,其他目录都是由根目录 / 衍生出来的;
      2、挂载点必须是已经存在的目录;
      3、挂载点的指定可以任意,但必须遵守必要的系统目录架构原则;
      4、所有挂载点在同一时间只能被挂载一次;
      5、所有分区在同一时间只能挂载一次;
      6、若进行卸载,必须将工作目录退出挂载点(及其子目录)之外。

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

    [root@localhost ~]#cat /etc/fstab

    CentOS 6.5中 /etc/fstab 文件的内容:

    #
    # /etc/fstab
    # Created by anaconda on Wed Apr 18 18:04:25 2018
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    /dev/mapper/VolGroup-lv_root /                       ext4    defaults        1 1
    UUID=90395c67-e4c2-4ce7-83e0-55d20c5b8f17 /boot                   ext4    defaults        1 2
    /dev/mapper/VolGroup-lv_home /home                   ext4    defaults        1 2
    /dev/mapper/VolGroup-lv_swap swap                    swap    defaults        0 0
    tmpfs                   /dev/shm                tmpfs   defaults        0 0
    devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
    sysfs                   /sys                    sysfs   defaults        0 0
    proc                    /proc                   proc    defaults        0 0

    CentOS 7.5中 /etc/fstab 文件的内容:

    #
    # /etc/fstab
    # Created by anaconda on Wed Jun  6 23:29:36 2018
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    UUID=7070f200-e9f2-4711-bfea-374aab5f1579 /                       xfs     defaults        0 0
    UUID=d2da1caf-e361-47c8-9be1-6096c1dc7181 /boot                   xfs     defaults        0 0
    UUID=6981-15EA          /boot/efi               vfat    umask=0077,shortname=winnt 0 0
    UUID=ed17d9e7-9597-4ad4-a1a9-e31b8963cfed /home                   xfs     defaults        0 0
    UUID=44c4c32f-c1b1-458e-b35d-9f33befad0db swap                    swap    defaults        0 0
    /dev/sda    /data1      xfs     defaults,noatime,nodiratime,nobarrier  0 0
    /dev/sdb    /data2      xfs     defaults,noatime,nodiratime,nobarrier  0 0

     文件 /etc/fstab 中的内容共有六列:

    第一列:Device,磁盘设备文件或者该设备的Label或者UUID
      查看UUID的命令是blkid /dev/sda 或 
    ls -l /dev/disk/by-uuid/ |grep sda |awk '{print $9}' (ls不需要root权限)

    [root@localhost ~]# blkid
    /dev/sda1: UUID="90395c67-e4c2-4ce7-83e0-55d20c5b8f17" TYPE="ext4" 
    /dev/sda2: UUID="L2l3F7-PcM9-7dEd-BL3Y-NayF-twdR-oRXI5m" TYPE="LVM2_member" 
    /dev/mapper/VolGroup-lv_root: UUID="8585329f-3d8f-40cb-90d1-61f09dc417dd" TYPE="ext4" 
    /dev/mapper/VolGroup-lv_swap: UUID="aeced0d8-13b4-43f2-8b84-48aa5a443d5c" TYPE="swap" 
    /dev/mapper/VolGroup-lv_home: UUID="7e229443-1bd9-433b-9518-53bf80604f65" TYPE="ext4" 

      使用设备名称(/dev/sda)来挂载分区时是被固定死的,一旦磁盘的插槽顺序发生了变化,就会出现名称不对应的问题。因为这个名称是会改变的。至于UUID,每个分区被格式化以后都会有一个UUID作为唯一的标识号。使用UUID挂载的话就不用担心会发生错乱的问题。
      UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得)。

    第二列:Mount point,设备的挂载点,就是要挂载到哪个目录下;
    第三列:filesystem,磁盘文件系统的格式,包括ext2ext3reiserfsnfsvfat

    第四列:parameters,文件系统的参数,通常这个参数的值是defaults;

    Async/sync

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

    auto/noauto 

     此文件系统是否被自动挂载。默认为auto

    rw/ro        

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

    exec/noexec        

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

    user/nouser

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

    suid/nosuid

    是否允许SUID的存在

    Usrquota

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

    Grpquota

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

    Defaults

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

     

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

             0

    代表不要做dump备份

             1

    代表要每天进行dump的操作

             2

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

     

    第六列是否检验扇区,开机的过程中,系统默认会以fsck检验我们系统是否为完整(clean),通常这个参数的值为 0 或 2;

    0

    不要检验

    1

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

    2

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


    四、修改/etc/fstab文件很关键,如果修改错误,很可能就无法正常启动进入系统。
      因此,如果希望将新分区 /dev/sda3 (用UUID代替)挂载在 /home/data 目录下,则只需在fstab文件中加入一行:
    /dev/sda3       /home/data              ext4      defaults      0       0

    参考或来源:
    http://blog.51cto.com/ckc620/394238

  • 相关阅读:
    hdu 1253
    poj 2531 Network Saboteur
    rwkj 1501 数据结构:图的DFS遍历
    rwkj 1306 素数========拓展
    nyist 91 阶乘之和
    nyist 65 另一种阶乘问题
    nyist 31 5个数求最值
    nyist 22 素数求和
    向量 vector
    字符串 统计 ,删除,连接,变换
  • 原文地址:https://www.cnblogs.com/ylnic/p/2048885.html
Copyright © 2011-2022 走看看