zoukankan      html  css  js  c++  java
  • 挂载mount

    mount

    1 挂载mount

        基本概念

        挂载:将额外文件系统与根文件系统现存的目录建立起关联关系,进而使得此目录做为其它文件访问入库的行为

        卸载:为解除关联关系的过程

        注意:挂载点下原有的文件在挂载完成后会被临时隐藏,但数据不会丢失。所以挂载目录最好为空目录。

    2挂载方法

        mount    DEVICE MOUNT_POINT

    其中DEVICE为要挂载的设备,可以是磁盘分区、卷标(LABEL)、UUID或者文件(文件格式化后也可以当做磁盘挂载);MOUNT_POINT为挂载点。

        例如:

     [root@local ~]# mount /dev/sdc1 /mnt/sdc1
    
     [root@local ~]# mount -U "95c37ae8-7bd9-4d8b-ba17-61aaf39f292f" /mnt/sdc1
    
     [root@local ~]# mount -L "SDC1" /mnt/sdc1/        #SDC1位分区?dev/sdc1的卷标。

        以上三种方法都可以把/dev/sdc1分区挂载到/dev/sdc1目录下,现在就可以进入/mnt/sdc1目录访问/dev/sdc1磁盘,此时在/mnt/sdc1上的所有对数据的操作都会保存至/dev/sdc1分区。

        挂载之前必须创建文件系统,既就是格式化分区。

    3查看挂载的命令

       df、lsblk或者cat /proc/mounts

    可以通过执行 df 命令来显示当前以及挂载的设备

    [root@local ~]# df
    Filesystem 1K-blocks Used Available Use% Mounted on
    /dev/sda2 12254344 6357184 5251632 55% /
    devtmpfs 1001592 0 1001592 0% /dev
    tmpfs 1016064 88 1015976 1% /dev/shm
    tmpfs 1016064 9292 1006772 1% /run
    tmpfs 1016064 0 1016064 0% /sys/fs/cgroup
    /dev/sda1 194235 123782 56117 69% /boot
    tmpfs 203216 16 203200 1% /run/user/0
    /dev/sr0 8086368 8086368 0 100% /run/media/root/CentOS 7 x86_64
    /dev/sdc1 1998672 6144 1871288 1% /mnt/sdc1     #可以看到分区已经挂载成功
    [root@local ~]# lsblk
    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    fd0 2:0 1 4K 0 disk
    sda 8:0 0 20G 0 disk
    ├─sda1 8:1 0 200M 0 part /boot
    ├─sda2 8:2 0 12G 0 part /
    └─sda3 8:3 0 1G 0 part [SWAP]
    sdb 8:16 0 5G 0 disk
    ├─sdb1 8:17 0 976M 0 part
    ├─sdb2 8:18 0 975.6M 0 part
    └─sdb3 8:19 0 975M 0 part
    sdc 8:32 0 5G 0 disk
    └─sdc1 8:33 0 2G 0 part /mnt/sdc1
    sr0 11:0 1 7.7G 0 rom
    [root@local ~]# cat /proc/mounts
    rootfs / rootfs rw 0 0
    sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0
    proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
    devtmpfs /dev devtmpfs rw,seclabel,nosuid,size=1001592k,nr_inodes=250398,mode=755 0 0
    securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
    tmpfs /dev/shm tmpfs rw,seclabel,nosuid,nodev 0 0
    [. . . . .]
    tmpfs /run/user/0 tmpfs rw,seclabel,nosuid,nodev,relatime,size=203216k,mode=700 0 0
    /dev/sdc1 /mnt/sdc1 ext4 rw,seclabel,relatime,data=ordered 0 0

    4 mount常用命令选项

        -t    vsftype:指定要挂载的设备上的文件系统类型

        -r:readonly,只读挂载

        -w:read and write,读写挂载

        -n:不更新/etc/mtab,mount不可见,既就是mount命令看不到已经挂载成功

        -a:自动挂载所有支持自动挂载的设备(指定了在/etc/fstab文件中,且挂载选项中有auto功能)

        -L"LABEL":以卷标指定挂载设备

        -U "UUID":以UUID指定要挂载的设备

        -B,--bind:绑定目录到另一个目录上

        -o option:挂载文件系统的选项,多个选项同时使用用逗号分隔。是一个神奇的选项。

            async:一步挂载

            sync:同步挂载

            atime/noatime:禁用或启用自动更新atime,包含目录和文件

            diratime/nodiratime:目录的访问时间戳

            auto/noauto:是否支持自动挂载,是否支持-a选项

            exec/noexec:是否支持将文件系统上运行应用程序

            dev/nodev:是否支持在次文件系统上使用设备文件

            suid/nosuid:是否支持suid和sgid权限

            remount:重新挂载

            ro:只读挂载

            rw:读写挂载

            user/nouser:是否运行普通用户挂载此设备,默认管理员才能挂载

            acl:启用此文件系统上的acl功能

        默认:相当于re,nosuid,dev,exec,auto,nouser,async

    5其它挂载相关的命令

    (1)查看挂载点的挂载情况:findmnt MOUNT_POINT

    [root@local ~]# findmnt /mnt/sdc1
    TARGET SOURCE FSTYPE OPTIONS
    /mnt/sdc1 /dev/sdc1 ext4 rw,relatime,seclabel,data=ordered
    [root@local ~]# findmnt /mnt/sdc2
    TARGET SOURCE FSTYPE OPTIONS
    /mnt/sdc2 /dev/sdc2 xfs rw,relatime,seclabel,attr2,inode64,noquota

    (2)查看正在访问指定的文件系统的进程

        lsof MOUNT_POINT,fuser –v MOTN_POINT

    [root@local ~]# lsof /mnt/sdc1
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    bash 1615 root cwd DIR 8,33 4096 2 /mnt/sdc1
    bash 2024 root cwd DIR 8,33 4096 2 /mnt/sdc1

    可以看到有两个用户正在访问/mnt/sdc1目录

    [root@local ~]# fuser -v /mnt/sdc1
    USER PID ACCESS COMMAND
    /mnt/sdc1: root kernel mount /mnt/sdc1
    root 1615 ..c.. bash
    root 2024 ..c.. bash
    

    (3)终止所有正在访问指定的文件系统的进程

    [root@local ~]# fuser -km /mnt/sdc1
    /mnt/sdc1: 1615c 2024c

    接下来查看是否成功

    [root@local ~]# lsof /mnt/sdc1

    可以看到以及踢成功,不过在实际应用时,最好提前发通知,以免用户在线导数据丢失

    6 卸载

        卸载命令:umount    DEVICE

        或者umount     MOUNT_POINT

    [root@local ~]# umount /dev/sdc1    #卸载/dev/sdc1

    以及看不到/dev/sdc1说明卸载成功

    [root@local ~]# df
    Filesystem 1K-blocks Used Available Use% Mounted on
    /dev/sda2 12254344 6869184 4739632 60% /
    devtmpfs 1001592 0 1001592 0% /dev
    tmpfs 1016064 84 1015980 1% /dev/shm
    tmpfs 1016064 9232 1006832 1% /run
    tmpfs 1016064 0 1016064 0% /sys/fs/cgroup
    /dev/sda1 194235 123782 56117 69% /boot
    tmpfs 203216 16 203200 1% /run/user/42
    tmpfs 203216 0 203216 0% /run/user/0
    /dev/sdc2 1038336 32944 1005392 4% /mnt/sdc2

    下来用另一种方法卸载/dev/sdc2

    [root@local ~]# umount /mnt/sdc2
    [root@local ~]# df
    Filesystem 1K-blocks Used Available Use% Mounted on
    /dev/sda2 12254344 6869184 4739632 60% /
    devtmpfs 1001592 0 1001592 0% /dev
    tmpfs 1016064 84 1015980 1% /dev/shm
    tmpfs 1016064 9232 1006832 1% /run
    tmpfs 1016064 0 1016064 0% /sys/fs/cgroup
    /dev/sda1 194235 123782 56117 69% /boot
    tmpfs 203216 16 203200 1% /run/user/42
    tmpfs 203216 0 203216 0% /run/user/0

    以及看不到/dev/sdc2,说明卸载成功

    7 修改/etc/fstab文件,设置自动挂载

    查看/etc/fstab文件

    [root@local ~]# cat /etc/fstab
    #
    # /etc/fstab
    # Created by anaconda on Sun Apr 16 10:18:50 2017
    #
    # 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=dddd23d1-1012-4bac-9717-56b9b469e0c2 / ext4 defaults 1 1
    UUID=316d8677-25b8-49af-b4eb-54daa20b6595 /boot ext4 defaults 1 2
    UUID=dacd6ddd-d765-4646-b98c-0579f2732749 swap swap defaults 0 0

    可以看到,每行定义一个要挂载的文件系统,有六个字段,每个字段对于的含义:

        第一个字段:要挂载的设备或者伪文件系统

            设备文件、卷标(LABEL)、UUID、伪文件系统名称(proc、sysfs)

        第二个字段:指定挂载点

        第三个字段:文件系统类型

        第四个字段:挂载选项

            sync、atime/noatime、diratime/nodiratime、auto/noauto、exec/noexec、dev/nodev、suid/nosuid、

            remount、ro、rw、user/nouser、    acl

        第五个字段:转存频率

            0:不做备份

            1:每天转存

            2:没隔一天转存

        第六感字段:启动时自检次序

            0:表示不自检

            1:首先自检,一般只有rootfs才用1

            

  • 相关阅读:
    Linux Linux程序练习一
    Linux make语法
    python类的继承的两种方式
    Django中更新多个对象数据与删除对象的方法
    admin.ModelAdmin 后台管理关联对象,某个字段怎么显示值
    jQuery插件
    python Django Nginx+ uWSGI 安装配置
    Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)
    爬虫
    ftplib模块
  • 原文地址:https://www.cnblogs.com/Sunzz/p/6915103.html
Copyright © 2011-2022 走看看