Linux18--存储管理之:MBR与GPT分区、格式化文件系统、磁盘挂载、制作swap分区、文件系统损坏复现与修复、xfs系统备份与恢复、LVM逻辑卷

发布时间 2023-07-31 18:23:10作者: Edmond辉仔

0 新增磁盘流程

# 磁盘整体的操作步骤
  1.增加磁盘  
    编辑虚拟机设置--新增硬盘--SCSI--创建新虚拟磁盘--200G、多个文件--完成
  2.磁盘分区 
  3.分区格式化成文件系统
  4.文件系统挂载到指定目录

1 磁盘分区

# 1 分区分类
主分区
  主引导分区,是可以安装系统的分区
  
拓展分区
  属于主分区

逻辑分区
  属于拓展分区


# 2 分区格式 
MBR分区: "主引导记录"
  1.MBR最大支持 2TB容量,在容量方面存在着极大的瓶颈
  2.最多支持4个主分区

GPT分区: GPT fdisk,是fdisk的延伸   
  GPT是全局唯一标识分区表(GUID Partition Table)GUID分区表
  
  1.它支持的磁盘容量比MBR大得多
  2.最多支持128个主分区,足够使用
   
  # GPT分区
  这是一个正逐渐取代MBR的新标准,它是由UEFI辅住而形成的
  将来UEFI用于取代老旧的BIOS,而GPT则取代老旧的MBR


# 3 分区工具
fdisk 工具用于 MBR 格式

gdisk 工具用于 GPT 格式

1.1 MBR分区

# 1 查看所有可用块设备(磁盘)的信息
lsblk [选项]  [设备块]
  
  选项:
    -a  显示所有块设备 包含空设备
    -f  显示文件系统信息、UUID     xfs、ext4


# 2 fdisk工具 用于 MBR格式
# 查看、创建和维护分区表:
fdisk [选项] 或 [磁盘路径]
  选项:
    -l 列出所有分区表
    -u 与 -l搭配使用,显示分区数目
            
  # eg: 
    1.显示所有磁盘的分区情况
    fdisk -l 
          
    2.显示指定磁盘的分区情况
    fdisk -l /dev/sdb
          
    3.修改指定磁盘的分区
    fdisk /dev/sdb    # 出现操作菜单
          
      # 菜单操作指令:  
        m :帮助信息  
        n : 新增一个分区
        d : 删除分区,保存退出后 需要执行partprobe命令,刷新一下分区表
        p : 查看分区列表  
        w : 保存,并退出
        
        
# 3 eg: fdisk命令 做MBR分区
fdisk /dev/sdb
    
  Command (m for help): n   # 新增分区
    # 分区类型
    Partition type:     
        p   primary (0 primary, 0 extended, 4 free)   # 主分区最多创建4个,通常是3个主分区,加一堆拓展分区
            # primary  : 已经分过的分区  
            # extended : 已经分过的逻辑分区  
            # free     : 总共还可以分多少个分区  
        e   extended    # 拓展分区

    # 选择分区类型
    Select (default p):  
    # 选择分区的编号  
    Partition number (1-4, default 1):  
    # 分区开始的扇区
    First sector (2048-419430399, default 2048):  # 0-2047:磁盘自己使用
    # 分区结束的扇区
    Last sector, +sectors or +size{K,M,G} (2048-419430399, default 419430399): +100G    


  Command (m for help): p   # 查看分区列表
    # 分区的名称   扇区开始的编号 扇区结束的编号 桶的数量   当前硬盘的编号   文件系统
    Device Boot    Start     End       Blocks           Id         System  
    /dev/sdb3      2048     209717247  104857600        83          Linux  
    
    
# 4 刷新分区表
partprobe

1.2 GPT分区

# 1 安装gdisk工具  用于GPT格式  GPT fdisk,是fdisk的延伸 
yum install gdisk -y


# 2 查看、创建和维护分区表:
gdisk [选项] 或 [磁盘路径]
  选项:
    -l 列出所有分区表
            
  # eg: 
    1.显示所有磁盘的分区情况
    gdisk -l 
          
    2.显示指定磁盘的分区情况
    gdisk -l /dev/sdb
          
    3.修改指定磁盘的分区
    gdisk /dev/sdb    # 出现操作菜单
          
      # 菜单操作指令:  
        ? :帮助信息  
        n : 新增一个分区
        d : 删除分区,保存退出后 需要执行partprobe命令,刷新一下分区表
        p : 查看分区列表  
        w : 保存,并退出
        
        
# 3 eg: gdisk命令 做GPT分区
gdisk /dev/sdb

  Command (? for help): n   # 新建分区
  
  # 选择分区的编号
  Partition number (1-128, default 1): 
  # 分区开始的扇区
  First sector (34-5242879966, default = 2048) or {+-}size{KMGTP}:  
  # 分区结束的扇区
  Last sector (2048-5242879966, default = 5242879966) or {+-}size{KMGTP}: +1G  # 设定1G的空间
  Current type is 'Linux filesystem'
  # 列出所有文件系统  L指令
  Hex code or GUID (L to show codes, Enter = 8300): L  
   会看到一系列文件系统信息,默认的8300编号代表Linux filesystem,用它就好
   
  Hex code or GUID (L to show codes, Enter = 8300):  # 直接回车用默认8300就好
  Changed type of partition to 'Linux filesystem'


  Command (? for help): p  # 查看分区表
  ......
  Number  Start (sector)  End (sector)  Size     Code     Name
   1         2048         2099199   1 024.0 MiB  8300  Linux filesystem


  Command (? for help): w  # 保存分区
  Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!


  Do you want to proceed? (Y/N): y   # 输入y继续    proceed v.继续进行
  OK; writing new GUID partition table (GPT) to /dev/sdc.
  The operation has completed successfully.

2 格式化文件系统

# 1 强调:linux目录需要挂载使用
    系统目录可以挂载到任何磁盘设备上  
    磁盘必须格式化制作文件系统,然后挂载才能使用


# 2 格式化文件系统    给分区指定文件系统的类型
mkfs.xfs [文件系统分区的路径]

  # eg: mkfs.xfs /dev/sdb3  
    meta-data=/dev/sdb3     isize=512    agcount=4, agsize=6553600 blks  
             =              sectsz=512   attr=2, projid32bit=1  
             =              crc=1        finobt=0, sparse=0  
    data     =              bsize=4096   blocks=26214400, imaxpct=25  
             =              sunit=0      swidth=0 blks  
    naming   =version 2     bsize=4096   ascii-ci=0 ftype=1  
    log      =internal log  bsize=4096   blocks=12800, version=2  
             =              sectsz=512   sunit=0 blks, lazy-count=1  
    realtime =none          extsz=4096   blocks=0, rtextents=0  
    
  # 注:
    针对一块硬盘/dev/sdb,可以不分区,直接格式化制作文件系统  硬盘整体就是一个分区
    mkfs.xfs /dev/sdb
    
    
# 3 注意
  centos7选择xfs格式作为默认文件系统,而且不再使用以前的ext,但仍然支持ext4
  xfs专为大数据产生,每个单个文件系统最大可以支持8eb
  单个文件可以支持16tb,不仅数据量大,而且扩展性高
  还可以通过xfsdump,xfsrestore来备份和恢复

3 磁盘挂载

3.1 挂载与卸载命令

### 1 磁盘挂载

# 1.1 手动挂载   临时挂载  每次重启就失效  需要重新挂载  
mount [选项] [磁盘分区(文件系统)的路径] [挂载的路径]

  选项:
   -o 参数   主要用来描述设备或档案的挂接方式  # 就是/etc/fstab 挂载参数的列
      loop  # 用来把一个文件当做硬盘分区,挂接上系统  常用于挂载ISO镜像文件,就不用依赖于iso光盘
      ro    # 采用只读方式挂接设备
      rw    # 采用读写方式挂接设备
      
   -t   指定文件系统
   -a   挂载 /etc/fstab文件中 配置的所有挂载

eg: 
mount /dev/sdb3 /mnt 
mount -o loop /xxx.iso /opt  # 直接 把本地的ISO镜像文件 当做一个硬盘分区,挂载 到 /opt目录


# 1.2 自动挂载   永久挂载 
  
# 方式一: 修改磁盘配置文件 /etc/fstab    # 先做快照,防止配置失误后,可恢复!
sed -i '$a /dev/sdb1 /mnt xfs defaults 0 0' /etc/fstab 
或
vim /etc/fstab
    
# 增加1行
/dev/sdb1             /mnt         xfs          defaults      0      0
    
# 注:
  1.当挂载信息出现问题时,linux主机将无法正常开机  
  2.在添加完配置信息之后,一定要检测语法是否正确  
     同一挂载点,若被多个磁盘挂载,会被覆盖
     同一个磁盘,若挂载到多个挂载点,操作数据是同一份
  3.挂载完要重启 或 mount -a 是挂载配置文件 立即生效
    
    
# 方式二: 将临时挂载命令 添加到开机自启动脚本中  /etc/rc.local

1.为/etc/rc.local文件添加可执行权限  
chmod +x /etc/rc.d/rc.local 
    
2.修改rc.local文件
vim /etc/rc.local
  mount /dev/sdb1 /mnt
      
3.重启  
reboot 
    
    
 
### 2 磁盘卸载:  
umount [挂载的设备  或者 挂载的目录路径]  
  eg: umount /dev/sdb1  或 umount /mnt  
    
  # 注:卸载文件时,光标不能够在卸载的目录  
  umount /mnt  
  umount: /mnt: target is busy.  
        (In some cases useful info about processes that use  
        the device is found by lsof(8) or fuser(1))  

  # 强制卸载
  umount -l [挂载源 或 挂载点]


### 3  查看目前文件系统 磁盘使用情况统计
df 
  -h   # 大小按照易读的方式 展示
  -T   # 显示文件系统的类型
  -i   # 显示inode的信息
 
  # eg: df -h
    文件系统                  大小   已用  可用  已用(%)  挂载的目录
    Filesystem               Size  Used Avail Use% Mounted on  
    devtmpfs                 475M     0  475M   0% /dev  
    tmpfs                    487M     0  487M   0% /dev/shm  
    tmpfs                    487M  7.5M  479M   2% /run  
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup  
    /dev/mapper/centos-root   98G  2.2G   96G   3% /  
    /dev/sda1                509M  132M  378M  26% /boot  
    tmpfs                     98M     0   98M   0% /run/user/0  
    /dev/sdb3                100G   33M  100G   1% /mnt

3.2 挂载配置文件详解

# 磁盘挂载配置文件详解  /etc/fstab

挂载的设备	挂载点(入口)	文件系统类型	挂载参数	是否备份  是否检查
/dev/...     /            xfs       defaults      0      0 

第一列:device:指定要挂载的文件系统的设备名称或块信息
       除了指定设备文件外,也可以使用UUID、LABEL来指定分区。 # 推荐UUID   
       
       # 查看设备块的 uuid
       blkid  或  lsblk -f 

第二列:dir:指定挂载点的路径

第三列:type:指定文件系统的类型,如ext3,ext4,xfs等

第四列:options:指定挂载的参数,默认为defaults
   defaults具有 rw、suid、exec、auto、nouser、async等默认参数的设定
  
第五列:dump:表示该挂载后的文件系统能否被dump备份命令作用
  0   不备份
  1   每天进行备份
  2   不定日期的进行备份

第六列:pass:指定如何使用fsck来检查硬盘
  0   不检查
  1   检查  # 挂载点为/ (根分区)的时候,必须填写1,其他的都不能填写1
  2   检查  # 当1级别检验完成之后,进行2级别检验

3 制作swap分区

4 raid卡

5 修复文件系统

6 xfs文件系统备份与恢复

6.1 全量备份

6.2 增量备份

7 LVM逻辑卷