美文网首页
磁盘挂载步骤

磁盘挂载步骤

作者: 后知不觉1 | 来源:发表于2023-04-19 21:24 被阅读0次

    磁盘挂载必须步骤

    • 分区
    • 格式化分区
    • 写入fstab文件
    • 挂载

    1、分区parted

    分区跟window的磁盘分区是样的,为了更便捷的使用磁盘

    • 分区格式
      window分区格式有多种NTFS centos的分区格式也有两种 MBR、GPT
      MBR:仅支持最大四个主分区,而且不可以格式化2TB以上的磁盘
      GPT:大磁盘更适合使用parted工具进行GPT的分区格式

        /usr/sbin/parted -s /dev/sda mklabel gpt  #分区格式
        /usr/sbin/parted -s ${i} mkpart primary 1 100%  #分区大小设置
        /usr/sbin/parted -s ${i} align-check optimal 1   #分区检查
        /usr/sbin/parted -s ${i} print  #输出
        partprobe    #不重启主机重载分区,也可以通过systemctl daemon-reload
      

    2、磁盘格式化

    格式名 说明 备注
    swap 交换内存的固定格式,当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中
    EFI system partition EFI 系统分区(也称为 ESP 或者 EFISYS)是一个 FAT32 格式的物理分区 (在硬盘主分区表上,而不是 LVM 或软件 RAID 等等) ,从这里 UEFI 固件启动 UEFI 引导器和应用程序。它与操作系统无关而是作为 EFI 固件要启动的引导器和应用程序的存储空间,是 UEFI 启动所必须。
    xfs 是高度灵活性的高性能文件系统,最大可支持 16 EB(大约一千六百万 TB)的文件系统,大小为 8EB 的文件(大约八百万 TB),同时目录结构包含千百万条目。XFS 支持元数据日志,它可提高崩溃恢复速度。XFS 文件系统还可在挂载和激活的情况下清除磁盘碎片并重新定义大小。默认选择并推荐使用这个文件系统。XFS 最大支持分区大小为 500 TB。 常用的文件系统格式
    ext4 基于 ext3 文件系统,并有大量改进。这些改进包括支持大文件系统和大文件;更迅速、有效的磁盘空间分配;目录中无限的子目录数;更快速的文件系统检查及更强大的日志功能。Red Hat Enterprise Linux 7 中目前支持的最大 ext4 文件系统为 50 TB
    ext3 文件系统是基于 ext2 文件系统,其主要优点是日志功能(journaling)。使用记录日志的文件系统可减少崩溃后恢复文件系统所需时间,因为它不需要在每次发生崩溃时都运行 fsck 程序检查文件系统元数据一致性。
    ext2 文件系统支持标准的 Unix 文件类型,包括常规文件、目录、符号链接等等。可分配长文件名,最多有 255 个字符。
    vfat 文件系统是一个 Linux 文件系统,它兼容 FAT 文件系统中的微软 Windows 长文件名。

    格式化动作会导致磁盘的uuid发生变化

        mkfs -t xfs /dev/sda1  #这里是格式化分区的符号。
        mkfs -t xfs /dev/sda  #格式化整个盘 
    

    3、写入分区文件fstab

    /etc/fstab文件的作用: 当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录

    /etc/fstab
    ---------------------------------------------------------------------------------------------------
    # <file system>        <dir>         <type>    <options>             <dump> <pass>
    /dev/mapper/centos-root  /        xfs     defaults        0  0
    
    • <file systems> - 要挂载的分区或存储设备.

    • <dir> - <file systems>的挂载位置。

    • <type> - 要挂载设备或是分区的文件系统类型,支持许多种不同的文件系统:ext2, ext3, ext4, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap 及 auto。

    • <options> - 挂载时使用的参数,注意有些mount 参数是特定文件系统才有的。一些比较常用的参数有
      auto - 在启动时或键入了 mount -a 命令时自动挂载。
      noauto - 只在你的命令下被挂载。
      exec - 允许执行此分区的二进制文件。
      noexec - 不允许执行此文件系统上的二进制文件。
      ro - 以只读模式挂载文件系统。
      rw - 以读写模式挂载文件系统。
      user - 允许任意用户挂载此文件系统,若无显示定义,隐含启用 noexec, nosuid, nodev 参数。
      users - 允许所有 users 组中的用户挂载文件系统.
      nouser - 只能被 root 挂载。
      owner - 允许设备所有者挂载.
      sync - I/O 同步进行。
      async - I/O 异步进行。
      dev - 解析文件系统上的块特殊设备。
      nodev - 不解析文件系统上的块特殊设备。
      suid - 允许 suid 操作和设定 sgid 位。这一参数通常用于一些特殊任务,使一般用户运行程序时临时提升权限。
      nosuid - 禁止 suid 操作和设定 sgid 位。
      noatime - 不更新文件系统上 inode 访问记录,可以提升性能(参见 atime 参数)。
      nodiratime - 不更新文件系统上的目录 inode 访问记录,可以提升性能(参见 atime 参数)。
      relatime - 实时更新 inode access 记录。只有在记录中的访问时间早于当前访问才会被更新。(与 noatime 相似,但不会打断如 mutt 或其它程序探测文件在上次访问后是否被修改的进程。),可以提升性能(参见 atime 参数)。
      flush - vfat 的选项,更频繁的刷新数据,复制对话框或进度条在全部数据都写入后才消失。
      defaults - 使用文件系统的默认挂载参数,例如 ext4 的默认参数为:rw, suid, dev, exec, auto, nouser, async.

    • <dump> dump 工具通过它决定何时作备份. dump 会检查其内容,并用数字来决定是否对这个文件系统进行备份。 允许的数字是 0 和 1 。0 表示忽略, 1 则进行备份。大部分的用户是没有安装 dump 的 ,对他们而言 <dump> 应设为 0。

    • <pass> fsck 读取 <pass> 的数值来决定需要检查的文件系统的检查顺序。允许的数字是0, 1, 和2。 根目录应

      UUID_NUM=`/usr/sbin/blkid -s UUID /dev/sda1 | cut -d ' ' -f2`
      echo "${UUID_NUM} /data1    xfs    defaults,noatime,nofail 0 0" >> /etc/fstab
      

    4、挂载

    mount -a  #读取/etc/fstab 配置文件自动挂载
    

    5、常见问题解决

    1、 mount -a 执行正常无法报错,但是挂载不成功

    查看系统日志有一下报错

    Apr 19 10:09:29 data6-bigdata systemd: Unit data6.mount entered failed state.
    Apr 19 10:10:23 data6-bigdata kernel: XFS (sdc1): Mounting V5 Filesystem
    Apr 19 10:10:23 data6-bigdata kernel: XFS (sdc1): Ending clean mount
    Apr 19 10:10:23 data6-bigdata systemd: Unit data6.mount is bound to inactive unit 
    dev-disk-by\x2duuid-2d3762ac\x2d61b3\x2d4ede\x2da99d\x2d6093720b7ce1.device. Stopping,too.
    Apr 19 10:10:23 data6-bigdata systemd: Unmounting /data6...
    Apr 19 10:10:23 data6-bigdata kernel: XFS (sdc1): Unmounting Filesystem
    Apr 19 10:10:23 data6-bigdata systemd: Unmounted /data6
    

    这是因为系统缓存的uuid与新生产的uuid不一致导致挂载不上,这时候重载一下分区再重新挂载即可

    这两个其中一个都可以重载uuid
    partprobe   
    systemctl daemon-reload 
    
    2、Structure needs cleaning

    这是磁盘文件块损坏,可以通过对应的文件系统修复。如果可以格式化,直接格式化。因为修复过程很漫长还不一定能修复好

    #ext4:
    fsck.ext4 /dev/sda1
    #xfs:
    xfs_repair /dev/sda1
    

    格式化参考2,注意格式化后uuid发生了变化需要重新载入磁盘分区信息uuid等。这也是为啥会有问题1的原因

    附录:常用磁盘挂载脚本

    #!/bin/bash
    
    function SCAN {
        echo -e "Scaning..."
        sleep 1
        > /tmp/mount.log
        # FDISK=`which fdisk | awk -F: '{print $1}'`
        ALL_DISK=`/usr/sbin/fdisk -l | grep -Ev "mapper|root|swap|docker" |grep ^"Disk /"|cut -d ' ' -f2 |cut -d: -f1`
        # ALL_DISK=`${FDISK} -l | grep -Ev "mapper|root|swap|docker" |grep ^"Disk /"|cut -d ' ' -f2 |cut -d: -f1`
        for i in ${ALL_DISK}
        do
            df -Th | grep ${i} &> /dev/null
            if [ $? -eq 0 ];then
                echo -e "Found Disk: ${i}  - Used" | tee -a /tmp/mount.log
            else
                echo -e "Found Disk: ${i}  - Useless" | tee -a /tmp/mount.log
            fi
        done
        Used_Disk=`cat /tmp/mount.log | grep Used | cut -d ' ' -f3`
        Useless_Disk=`cat /tmp/mount.log | grep Useless | cut -d ' ' -f3`
    }
    
    function INSTALL_PARTED {
        INSTALLED=$(yum list installed | grep parted)
        IS_INSTALLED=$(echo ${#INSTALLED})
        if [ $IS_INSTALLED -lt 1 ]
        then
            yum install -y parted
        fi   
    }
    
    function PART {
        for i in ${Useless_Disk}
        do
            echo -e "Formating ${i}...."
            sleep 1
            # PARTED=`which fdisk`
            /usr/sbin/parted -s ${i} mklabel gpt
            /usr/sbin/parted -s ${i} mkpart primary 1 100%
            /usr/sbin/parted -s ${i} align-check optimal 1
            /usr/sbin/parted -s ${i} print
            partprobe
            echo -e  "Formating ${i} Done"
        done
    }
    function MKFS {
        for i in ${Useless_Disk}
        do
            echo -e "Mkfs ${i}...."
            /usr/sbin/mkfs -t xfs ${i}1
            UUID_NUM=`/usr/sbin/blkid -s UUID "${i}"1 | cut -d ' ' -f2`
            if [ ! -n "$UUID_NUM" ]; then
                echo -e "${i} Mkfs Failed!"
                exit 2
            fi
            echo -e "Done"
            sleep 1
        done
    }
    
    INDEX=1
    MOUNTED=`df -hl | awk '{print $6}'`
    function MOUNT {
        for i in ${Useless_Disk}
        do
            NEW_POINT="/data$INDEX"
            while [[ "${MOUNTED[@]}" =~ "$NEW_POINT" ]]
            do
                let INDEX++
                NEW_POINT="/data$INDEX"
            done
            if [ -d ${NEW_POINT} ];then
                # read -p "${NEW_POINT} in uesd,Input new mount point again:" NEW_POINT
                # mkdir ${NEW_POINT}
                # UUID_NUM=`/usr/sbin/blkid | grep "${i}1" | cut -d ' ' -f2`
                UUID_NUM=`/usr/sbin/blkid -s UUID "${i}"1 | cut -d ' ' -f2`
                echo "${UUID_NUM} ${NEW_POINT}    xfs    defaults,noatime,nofail 0 0" >> /etc/fstab
                mount -a
                [ $? -eq 0 ] && echo "${i} Mount Finished." 
            else
                mkdir ${NEW_POINT}
                # UUID_NUM=`/usr/sbin/blkid | grep "${i}1" | cut -d ' ' -f2`
                UUID_NUM=`/usr/sbin/blkid -s UUID "${i}"1 | cut -d ' ' -f2`
                echo "${UUID_NUM} ${NEW_POINT}    xfs    defaults,noatime,nofail 0 0" >> /etc/fstab
                mount -a
                [ $? -eq 0 ] && echo "${i} Mount Finished." 
            fi
            let INDEX++
        done
    }
    function MAIN {
        SCAN
        if [ -z "${Useless_Disk}" ];then
            echo -e "Not Fount Useless Disk.Exited..." && exit 0
        fi
        INSTALL_PARTED
        PART
        MKFS
        MOUNT
        rm -fr /tmp/mount.log
    }
    MAIN
    

    相关文章

      网友评论

          本文标题:磁盘挂载步骤

          本文链接:https://www.haomeiwen.com/subject/yviljdtx.html