• linux 磁盘管理三部曲——(3)mount挂载,/etc/fstab配置文件


    当我们分完区,并做好文件系统格式化,就到了最后的挂载mount了,挂载完毕就可以使用磁盘设备了。

    一、什么是挂载,卸载

    任何块设备都不能直接访问,需挂载在目录上访问

    挂载: 将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为(挂载的设备必须有文件系统)

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

    mount [-选项] DEVICE(设备) MOUNT_POINT(挂载点)

    (1)device :指明要挂载的设备

      ① 设备文件:例如/dev/sda5

      ② 卷标:-L 'LABEL', 如 例如 -L mage

      ③ UUID, -U 'UUID'

    (2)挂载点下原有文件在挂载完成后会被临时隐藏

      若事先存在:建议使用空目录,进程正在使用中的设备无法被卸载

    (3)/etc/mtab: 文件显示当前已挂载的所有设备(在centos 7中,是/proc/mounts的软连接,查看结果一样,centos 6中,ASCII text,查询结果和/proc/mounts不一样)

    二、mount:挂载常用命令选项(下面有具体的用法示例)

    1、查看挂载情况

    ① findmnt  查看所有设备挂载情况(树状结构显示)

      findmnt 设备   查看单个设备的挂载情况

    ② mount :查看所有设备挂载情况

    ③ cat /proc/mounts:查看内核追踪到的已挂载的所有设备

    2、mount 语法

    mount -选项 设备 挂载点

      -t:vsftype :指定要挂载的设备上的文件系统类型(不常用,不加-t默认自带自己的文件系统类型),有时,系统报错提示,没指定文件系统类型,-t指定后,仍然有错。(注释1)

      -r:readonly ,只读挂载,不能进行其他操作,和权限无关,介质只能读,多用于冷备份。在mount 查询时时显示 ro

      -w:read and write,  读写挂载(defaults默认)

      -n:隐藏挂载信息不显示 ,但在/proc/mounts可以查到,卸载只能 umount /app/sdb2(挂载点)

      -a:自动挂载/etc/fstab文件没有挂载的设备( 定义在了/etc/fstab文件中,且挂载选项中有auto 功能,默认中包括) ,不看已挂载过的设备,如果在/etc/fstab里挂载过的设备修改了设置,不刷新;

    如果想刷新修改过已挂载的设备,mount -o remount /dev/sdX(挂载点)

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

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

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

    例: mount -B /var/ftp/pub /app/apache     /app/apache就是显示 /var/ftp/pub目录的东西

       -o options:( 挂载文件系统的选项) ,多个选项使用逗号分隔

        async(defaults),sync  异步,同步,内存更改时,同时写磁盘(可以用于重要数据)

        atime(defaults),noatime  是否在读访问时更新atime

        diratime(defaults),nodiratime  目录的访问时间戳

        auto(defaults)/noauto 写在/etc/fstab当中的分区,是否在mount -a时被挂载

        exec(defatuls)/noexec 在该分区所挂载的目录中的脚本是否可以执行。

        dev(defaults)/nodev:是否支持在此文件系统上使用设备文件

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

        ro:只读 rw:读写(defaults)

        nouser(defaults)/user:是否允许普通用户挂载此设备,默认管理员才能挂载

        acl(centos 7)/^acl(centos 6以下):启用/禁用此文件系统上的acl功能

        defaults 默认,见以上中的(defaults)

      -o remount,选项:重新挂载,修改功能选项(和/etc/fstab选项冲突,则覆盖,不冲突就增加)  例:mount -o remount,ro /dev/sdb1

    例:mount -r /dev/sdb1 /app/sdb1 将/dev/sdb1只读挂载到/app/sdb上

    三、umount 卸载

    卸载时,若有正在进行的进程,不能卸载

    查看正在访问指定文件系统的进程:

      lsof 设备或挂载点都可以

      fuser -v 挂载点

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

      fuser -km 设备或挂载点都可以

     终止完所有进程就可以卸载: umount DEVICE

    四、/etc/fstab 文件挂载配置文件

    (1)/etc/fstab 每行定义一个要挂载的文件系统

    mount -a 自动挂载/etc/fstab文件没有挂载的设备,不管已挂载过的设备

      如果想刷新修改过已挂载的设备,mount -o remount /dev/sdX(或挂载点)

    swpon -a 自动激活/etc/fstab文件没有激活的交换(扩展)空间 ,不管已激活的扩展空间

      如果想刷新修改过已激活的扩展设备,mount -o remount /dev/sdX(或挂载点)

    系统重启开机时读取此文件,可以开机自动开启文件中的设置

    (2)格式(6列):

    ① 要挂载的设备或伪文件系统:设备名称,LABEL,UUID,伪文件系统名称

    ② 挂载点(扩展为swap)

    ③ 文件系统类型(auto 寻找默认的),

      普通设备挂载:ext#/xfs 等文件系统类型

      交换分区 swap:swap

      网络挂载地址 linux之间:nfs,windos挂载:cifs

      光盘 iso9660,文件 cifs

    ④ 挂载选项:defaults 有需要的功能可以添加,不能为空

    ⑤ 转储频率: 0:不做备份 1:每天转储 2:每隔一天转储

    ⑥ 开机时自检(非0),自检次序:(如果开机系统自检不过,就无法正常开机)

    0:不自检 1:最先自检,一般为/ 2...:数越小优先级最大

    问题:如果设备不小心被破坏,开机自检不过,无法正常启用,该怎么办?

    原理很简单,只需要修复一下文件系统就好了,(如果不能修复,可以去/etc/fstab中把自检改为0)具体操作如下:

    ① 手动破坏设备 dd if=/dev/zero of=/dev/sdc1 bs=1 count=2048

    ② 开机过程,遇到错误提示

    ③ 进入shell 操作,进行修复

    五、实验:迁移/home 家目录

    到此我们已经对磁盘管理了解的差不多了,我们可以做个小实验,迁移 /home ,从 / 下移到另一个磁盘,如/dev/sda6

    ① init 1 进入单用户模式,防止自己在迁移时,其他用户进行操作,导致迁移后缺失东西。

    ② 分区 /dev/sda6   fdisk

    ③ 文件系统格式化 mkfs.ext4 /dev/sda6

    ④ 挂载在临时目录上/mnt ,把/home 下东西cp -a 到/mnt 目录

    ⑤ 把现有/home 东西移走,卸载 /mnt ,把/dev/sda6 挂到 /home 下,并写入/etc/fstab,开机自动挂载。

      UUID=328a3f17-3e4e-426d-9538-c44be3e6465b   /home    ext4    defaults        0  2

    ⑥ reboot或init 5 完成/home 搬迁

     到这里关于磁盘管理的过程就全部讲完了。

  • 相关阅读:
    标记不同浏览器的Burp Suite 插件
    60%配列机械键盘客制化清单
    配合mitmproxy使用自动化工具测试阿里云API网关接口
    CORS & CSP笔记
    fmex挂单挖矿
    使用SPLUNK进行简单Threat Hunting
    Mac最新系统bssdb BUG
    技巧之如何快速使用websocket来监控标准输出
    币早知道夺宝题--以太坊题解题方法
    发行NEO的NEP-5合约代币
  • 原文地址:https://www.cnblogs.com/struggle-1216/p/11828416.html
Copyright © 2020-2023  润新知