zoukankan      html  css  js  c++  java
  • #学习笔记:CentOS7学习之十三(2):磁盘介绍与管理

    1、磁盘分区工具与挂载

    1.1 硬盘分区符认识:

    MBR概述:全称为Master Boot Record,即硬盘的主引导记录。

    硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由3个本分组成:主引导程序、硬盘分区表DPT(Disk Partition Table)和分区有效标志(55AA)。在总共512字节的主引导扇区里主引导程序(boot loader)占446个字节,第二部分是Partition table(分区表),即DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记录在其中。第三部分是magic number,占两个自己,固定为55AA。

    分区编号:

    • 主分区:1-4
    • 逻辑分区:从5开始

    一个硬盘最多能有4个主分区一个扩展分区,一般组成为:4个主分区或者3个主分区和一个扩展分区。

    linux规定,逻辑分区必须建立在扩展分区之上,不能在主分区之上

    分区作用:

    • 主分区:主要是用来启动操作系统,它主要存放的是操作系统的启动或引导程序,/boot分区最好放在主分区上
    • 扩展分区:扩展分区不能直接使用,它只是作为逻辑分区的容器存在。我们真正存放数据的是主分区和逻辑分区,一般大量的数据都放在逻辑分区

    GPT的分区方式,不限制主分区个数

    注意:使用分区工具fdisk对磁盘进行操作,分区,格式化

    [root@linuxprobe yg]# ls /dev/sd*
    /dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdc  /dev/sdd
    

    说明:

    /dev/sda1

    • /dev:设备文件的目录
    • sd:scsi硬盘
    • a:【a-z】从a开始,sda表示第一块scsi硬盘,第二块为sdb,依次类推
    • 1:分区编号,表示第一块scsi硬盘上的第一个分区。

    1.2 使用fdisk管理分区

    fdisk:磁盘分区,是linux发行版本中最常用的分区工具

    用法:fdisk 【选项】 device

    常用选项: -l 查看硬盘分区表

    [root@linuxprobe yg]# fdisk -l
    
    磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x000033f0
    
       设备 Boot  Start End  Blocks   Id  System
    /dev/sda1   *2048 2099199 1048576   83  Linux
    /dev/sda2 20992008388607940893440   8e  Linux LVM
    
    磁盘 /dev/sdb:8589 MB, 8589934592 字节,16777216 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    
    
    磁盘 /dev/sdc:8589 MB, 8589934592 字节,16777216 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    
    
    磁盘 /dev/sdd:8589 MB, 8589934592 字节,16777216 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    

    fdisk常用的参数:

     [root@linuxprobe yg]# fdisk /dev/sdd
    欢迎使用 fdisk (util-linux 2.23.2)。
    
    更改将停留在内存中,直到您决定将更改写入磁盘。
    使用写入命令前请三思。
    
    Device does not contain a recognized partition table
    使用磁盘标识符 0x4cf6a6ac 创建新的 DOS 磁盘标签。
    
    命令(输入 m 获取帮助):m
    命令操作
       a   toggle a bootable flag
       b   edit bsd disklabel
       c   toggle the dos compatibility flag
       d   delete a partition    ##删除分区
       g   create a new empty GPT partition table
       G   create an IRIX (SGI) partition table
       l   list known partition types ##显示分区
       m   print this menu  ##打印帮助菜单
       n   add a new partition  ##添加新的分区
       o   create a new empty DOS partition table
       p   print the partition table  ##显示分区表
       q   quit without saving changes  ##退出不保存
       s   create a new empty Sun disklabel
       t   change a partition's system id   ##改变分区类型
       u   change display/entry units
       v   verify the partition table
       w   write table to disk and exit   ##写分区信息到硬盘,保存操作并退出
       x   extra functionality (experts only)
    

    1.3 使用fdisk添加一个新的分区

    1)在/dev/sda硬盘上新建一个分区

    fdisk /dev/sda
    
    命令(输入 m 获取帮助):p   ##列出当前磁盘的分区信息
      
    磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x000033f0
    
       设备 Boot  Start End  Blocks   Id  System
    /dev/sda1   *2048 2099199 1048576   83  Linux
    /dev/sda2 20992008388607940893440   8e  Linux LVM
    
    
    命令(输入 m 获取帮助):n  ##新建一个分区
    
    Partition type:
       p   primary (2 primary, 0 extended, 2 free)p:主分区
       e   extended e:扩展分区
    Select (default p): --直接默认
    Using default response p
    Partition number (1,4, default 3):   ---直接默认
    First sector (1230848-41943039, default 1230848):   ---直接默认 
    Using default value 1230848
    Last sector, +sectors or +size{K,M,G} (1230848-41943039, default 41943039): +1G  输入分区大小
    Partition 3 of type Linux and of size 1 GiB is set
    Command (m for help): w   保存退出
    

    2)让新划分的分区生效

    注意:对已经在使用的磁盘进行分区后,要让新分区生效,可以使用:

    partx -a /dev/sda  
    

    最好的办法是进行设备重启。

    init 6
    

    3)格式化新分区

    mkfs.xfs -f /dev/sda3  #格式化,-f 对已经存在文件系统的分区,强制格式化
    

    4)挂载新分区

    mkdir /data ##创建挂载点/data
    mount /dev/sda3 /data ##将新分区/dev/sda3挂载在/data目录下
    df -h #查看确认新的分区已经存在
    

    5)写入配置文件/etc/fstab,让其开机自动挂载

    vim /etc/fstab
    

    在最后写入

    /dev/sda3 /data xfs defaults 0 0
    

    注释:

    /dev/sda3 /data xfs defaults 0 0
    要挂载的分区 挂载点 文件系统类型 挂载选项 是否备份 是否检测
    mount -a  ##自动挂载/etc/fstab文件中没有挂载的文件
    
    df -h ##进行查看分区信息,如果能查看到新挂载的分区,说明fstab配置文件中书写正确,负责需要核对。
    

    6)卸载一个分区

    正在使用的分区使用umount时是卸载不了的

    umount /dev/sda3
    umount: /:目标忙。
        (有些情况下通过 lsof(8) 或 fuser(1) 可以
         找到有关使用该设备的进程的有用信息)
    

    两种方式:

    a:查看正在使用当前分区的进程,杀死进程

    lsof /data
    COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    bash 2823 root  cwdDIR   8,17   20   64 /sda3
    lsof 2952 root  cwdDIR   8,17   20   64 /sda3
    lsof 2953 root  cwdDIR   8,17   20   64 /sda3
    
    kill -9 2823
    

    b、退出目录,重新卸载

    umount /dev/sda3
    

    注:umount 挂载点 //卸载方式1 或 umount 设备路径 //卸载方式2

    7)扩展

    a、使用UUID挂载

    建议使用UUID挂载,以防止因为磁盘接口更换以后引起的挂载混乱问题

    查找分区UUID

    [root@linuxprobe yg]# blkid
    /dev/sda1: UUID="677c979d-c6ef-4995-9457-b9b171474ace" TYPE="xfs" 
    /dev/sda2: UUID="JuGBSR-C2u5-17Cl-9kYL-WQeZ-HxZo-GLlAd7" TYPE="LVM2_member" 
    /dev/sdb: UUID="2NeLtq-9iww-Vg1C-Zf3q-A0GW-6ADt-u7rxvb" TYPE="LVM2_member" 
    /dev/sdc: UUID="cU00n2-gBCQ-ndDa-Q9k7-vMWF-oQtz-dVYA3e" TYPE="LVM2_member" 
    /dev/sr0: UUID="2018-11-25-23-54-16-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
    /dev/sdd: UUID="OAsDBm-SXex-DSMy-M1vE-RPMv-DHfc-fKuY0B" TYPE="LVM2_member" 
    /dev/mapper/centos-root: UUID="5b16f9e2-ff2e-41ff-aaf6-4c9f4d3b4a1a" TYPE="xfs" 
    /dev/mapper/centos-swap: UUID="0b59d0a5-429d-46e8-a69e-0fb43531e440" TYPE="swap" 
    

    根据分区UUID挂载,以sda2为例

    echo "JuGBSR-C2u5-17Cl-9kYL-WQeZ-HxZo-GLlAd7  /sdb1  xfs defaults 0 0" >> /etc/fstab
    

    b、扩展对fstab配置文件了解

    /dev/sda3 /data xfs defaults 0 0
    要挂载的分区 挂载点 文件系统类型 挂载选项 是否备份 是否检测

    第四列:parameters-文件系统的参数

    参数 说明
    Async/sync 设置是否为同步方式运行,默认为async
    auto/noauto 当执行mount -a 的命令时,此文件系统是否被主动挂载。默认为auto
    rw/ro 是否以以只读或者读写模式挂载
    exec/noexe 限制此文件系统内是否能够进行"执行"的操作
    user/nouser 是否允许用户使用mount命令挂载
    suid/nosuid 是否允许SUID的存在
    Usrquota 启动文件系统支持磁盘配额模式
    Grpquota 启动文件系统对群组磁盘配额模式的支持
    Defaults 同时具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置 samba nfs

    第五列:是否进行备份。通常这个参数的值为0或者1

    参数 数值
    0 代表不要做备份
    1 代表每天都要做备份
    2 代表不定日期的进行备份

    第六列:是否检验扇区:开机的过程中,系统默认会以fsck检验我们系统是否为完整

    参数 数值
    0 不要检验
    1 最早检验(一般根目录会选择)
    2 1级别检验完成之后进行检验

    1.4 gdisk磁盘分区工具

    gdisk主要是用来划分容量大于4T的硬盘。

    两种类型的分区表:GPT和MBR ; MBR不支持4T以上

    GPT分区:GPT,全局唯一标识分区表(GUID Partition Table),它使用128位GUID来唯一标识每个磁盘和分区,与MBR存在单一故障点不同,GPT提供分区表信息的冗余,一个在磁盘头部一个在磁盘尾部;它通过CRC校验和来检测GPT头和分区表中的错误与损坏;默认一个硬盘支持128个分区

    直接引用学神的文档:

    例:对sdb做gpt分区,创建一个sdb1

    [root@xuegod63 ~]# gdisk /dev/sdb
    。。。
    Command (? for help): ?#  查看帮助
    b	back up GPT data to a file
    c	change a partition's name   
    d	delete a partition#删除分区
    i	show detailed information on a partition
    l	list known partition types
    n	add a new partition# 添加一个分区
    o	create a new empty GUID partition table (GPT)
    p	print the partition table   # 打印分区表
    q	quit without saving changes # 退出不保存
    r	recovery and transformation options (experts only)
    s	sort partitions
    t	change a partition's type code
    v	verify disk
    w	write table to disk and exit #  # 写入分区表并退出
    x	extra functionality (experts only)
    ?	print this menu
    
    Command (? for help): n   #新建分区表
    Partition number (1-128, default 1): #直接回车
    First sector (34-41943006, default = 2048) or {+-}size{KMGTP}: #直接回车, 从头开始划分空间
    Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +1G  #给1G空间
    Current type is 'Linux filesystem'
    Hex code or GUID (L to show codes, Enter = 8300): #分区类型直接回车
    注:8300 Linux filesystem  ;8e00 Linux LVM 想查看,可以按L 来显示
    Changed type of partition to 'Linux filesystem'
    
    Command (? for help): p  #查看
    。。。
    Number  Start (sector)End (sector)  Size   Code  Name
       12048 2099199   1024.0 MiB  8300  Linux filesystem
    Command (? for help): w   #保存
    Do you want to proceed? (Y/N): y#确定写入
    OK; writing new GUID partition table (GPT) to /dev/sdb.
    The operation has completed successfully.
    
    
    [root@xuegod63 ~]# mkfs.xfs  /dev/sdb1  #格式化
    

    END
    2019-5-7 0:44:05
  • 相关阅读:
    STL堆实现
    Project Loom:Reactive模型和协程进行时(翻译)
    2020年最佳Java调试工具(翻译)
    布隆过滤器-使用场景的思考
    Logback,SLF4J,Log4J2。了解它们并学习如何使用。(翻译)
    使用Merkle树检测数据不一致(翻译)
    cassandra中的ACID,与RDBMS中的事务有何不同?
    Cassandra数据建模中最重要的事情:主键
    认证授权-学习笔记2-OpenId Connect
    jwt的思考
  • 原文地址:https://www.cnblogs.com/yj411511/p/10823188.html
Copyright © 2011-2022 走看看