zoukankan      html  css  js  c++  java
  • 磁盘分区+挂载

    GBT与MBR

        全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区结构。它是可扩展固件接口标准的一部分,用来替代BIOS中的主引导记录分区表。 传统的主启动记录 (MBR) 磁盘分区支持最大卷为 2.2 TB (terabytes) ,每个磁盘最多有 4 个主分区(或 3 个主分区,1 个扩展分区和无限制的逻辑驱动器)。 与MBR 分区方法相比,GPT 具有更多的优点,因为它允许每个磁盘有多达 128 个分区,支持高达 18 千兆兆字节 (exabytes,1EB=10^6TB) 的卷大小,允许将主磁盘分区表和备份磁盘分区表用于冗余,还支持唯一的磁盘和分区 ID (GUID)。
        与 MBR 分区的磁盘不同,GPT的分区信息是在分区中,而不象MBR一样在主引导扇区。为保护GPT不受MBR类磁盘管理软件的危害,GPT在主引导扇区建立了一 个保护分区 (Protective MBR)的MBR分区表,这种分区的类型标识为0xEE,这个保护分区的大小在Windows下为128MB,Mac OS X下为200MB,在Window磁盘管理器里名为GPT保护分区,可让MBR类磁盘管理软件把GPT看成一个未知格式的分区,而不是错误地当成一个未分 区的磁盘。另外,GPT 分区磁盘有多余的主要及备份分区表来提高分区数据结构的完整性。

        简而言之一句话:一般情况下,磁盘容量小于2T,MBR分区的,用 fdisk 命令分区,大区2T的,GBT分区的,用 parted 命令分区。

    一 查看磁盘大小与分区情况

    lsblk

    二 使用fdisk分区(使用sdb)

    fdisk /dev/sdb

    三 使用parted分区(使用sdd)

     1 parted有两种使用方式

      交互式:手动按序交互式的创建

      非交互式:可将命令行写在脚本中,运行脚本实现一键创建;适用于远程批量管理多台主机的场景,需在每一个具体的交互式命令前加上 parted DEVICES_NAME

     2 交互式分区

    #命令详解
    parted /dev/sdd       #进入parted分区控制台
    
    mklabel gpt            #新建磁盘标签类型为gpt,因为parted命令只能针对gpt格式的磁盘进行操作
    
    mkpart primary 0 10G    #可设置分区类型,文件系统,扇区起始点
    #命令格式
    mkpart PART-TYPE [FS-TYPE] START END
    PART-TYPE    分区类型:primary--主分区,logical--逻辑分区,extended--扩展分区
    [FS-TYPE]    文件系统:xfs,ext4,ext3...
    START        设定磁盘分区起始点,可以为0,numberMiB/GiB/TiB
                                  0  设定当前分区的起始点为磁盘的第一个扇区
                                  1G  设定当前分区的起始点为磁盘的1G处开始
    END          设定磁盘分区结束点: -1  设定当前分区的结束点为磁盘的最后一个扇区
                                  1G  设定当前分区的结束点为磁盘的1G处

    p       #可查看分区详细情况
    rm 1     #删除分区命令(慎用),后面数字为p回显的Number数字,如果要删除的分区内已有数据,那么此命令会删除其中的所有数据,并且是不可逆的

      3 非交互式分区实现脚本,可通过ansible工具调用脚本实现批量分区配置挂载等操作

    [root@localhost ~]# cat test.sh 
    #!/bin/bash
    # 新建/dev/sdb的磁盘标签类型为GPT
    parted /dev/sdb mklabel gpt 
    # 将/dev/sdb整个空间分给同一个分区
    parted /dev/sdb mkpart primary 0 100%
    # 忽略警告
    ignore
    # 格式化分区
    mkfs.xfs xfs /dev/sdb1
    # 设定分区label(非必要)
    e2label /dev/sdb1 /gfsdata01
    # 创建挂载目录
    mkdir /mnt/test1
    # 临时挂载
    mount /dev/sdb1 /mnt/test1
    # 开机自动挂载(永久挂载)
    blkid /dev/sdb1 | awk -F """ '{print $2}' |xargs -i echo "UUID={} /mnt/test1    xfs   defaults  0 0" >> /etc/fstab

    四 挂载

     1 文件系统(已分区的磁盘要先格式化才能挂载

    mkfs.xfs /dev/sdb1        #格式化为xfs文件系统,加 -f 强制格式化
    mkfs.ext4 /dev/sdd1       #格式化为ext4文件系统
    
    xfs_repair -n             #检查文件系统是否损坏
    xfs_repire /dev/sdbx      #修复xfs文件系统(修复可能出现数据丢失
    
    mkfs.ext4 -S /dev/sda2    #检查ext4文件系统
    fsck.ext4 -y /dev/sda2    #修复ext4文件系统

      2 挂载

    #创建挂载目录
    mkdir /mnt/test1
    #临时挂载(重启后失效
    mount /dev/sdb1 /mnt/test1
    #取消挂载
    umount /dev/sdb1 /mnt/test1
    #永久挂载
    blkid /dev/sdb1 | awk -F """ '{print $2}' |xargs -i echo "UUID={} /mnt/test1    xfs   defaults  0 0" >> /etc/fstab

  • 相关阅读:
    大厂前端带来css3动画transition的使用和介绍全新认识动画
    js事件冒泡和事件捕获详解
    css3动画讲解,关于css3的@keyframes和animation
    [bug] Hive:java.net.ConnectException: Connection refused
    [bug] Hive:User root is not allowed to impersonate anonymous
    [bug] Hive:Permission denied: user=anonymous, access=EXECUTE, inode=”/tmp”
    [bug] Hive:Error: FUNCTION 'NUCLEUS_ASCII' already exists. (state=X0Y68,code=30000)
    [Python] 环境
    [Java] Web
    [计算机科学] 编程语言
  • 原文地址:https://www.cnblogs.com/Xinenhui/p/14743984.html
Copyright © 2011-2022 走看看