分享

linux磁盘分区及LVM逻辑卷管理

 用勿龍潛 2019-12-29

1、描述GPT是什么,该怎么使用

 (转载)GPT是GUID Partition Table,GUID分区表。GUID(Globals Unique Identifiers)全局唯一识别。GPT支持128个分区,使用64位,支持8ZB(512Byte/block) 以及64ZB(4096Byte/block)大小的磁盘。

使用128位UUID表示磁盘和分区,GPT分区表自动备份在头和尾两份,并有CRC校验位。具体分为4个区域:

EFI信息区(含保护性MRB区和GPT头)、分区表、GPT分区(最大可有128个分区)、备份分区表信息

UEFI(统一扩展固件接口)硬件支持GPT,它的开机过程是:开机-->UEFI初始化-->引导操作系统-->进入系统

相关的使用命令:

1.gdisk创建GPT分区(交互式创建)与fdisk相似

-l /dev/sdx 查看分区信息

以下为交互菜单的信息

(?|m) 显示交互菜单与帮助

n 建立分区

d 删除分区

c 更改分区名字

I 显示分区的详细信息

p 显示分区信息

t   转换分区类型

a 将指定分区设置/取消 活动分区

l 查看分区类型

o 重建分区表

v 验证分区表,显示剩余没有被分区划分的扇区数量

q 退出不保存,不保存,所有的修改都不生效

w 退出并保存

2.parted命令(交互式或命令式,一旦操作即时生效,使用时请注意)

parted  /dev/sdb mklabel gpt 给指定的磁盘指定GPT的分区方式

parted  /dev/sdb mkpart primary 1 200(单位默认为M)创建新分区

parted  /dev/sdb print   显示分区信息

parted  /dev/sdb rm 1  删除分区

parted  -l /dev/sdb 查看分区

3.partprobe同步硬盘上分区表到内存中。当两者不同步时使用。

2、创建一个10G的分区,并格式化为ext4文件系统

   (1)block大小为2048,预留20%,卷标为MYDATA

    (2)挂载至/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳

    (3)可开机挂载

          创建分区:使用fdisk命令指定要分区的磁盘

        查看分区:cat /proc/partitions 

           创建文件系统:

        挂载分区,并指定属性:

        挂载查看是否成功:

      设置开机自动挂载:

           除根文件系统以外的其它文件系统,能够开机时自动挂载需要配置:/etc/fstab 

           mount -a :可自动挂载定义在此文件中的所支持自动挂载的设备

每行定义一个要挂载的文件系统相关属性,一共有6个字段分别对应的意义:

(1)要挂载的设备:

    /dev/DEVICE

    LABEL

    UUID

    伪文件系统:如sysfs,proc,tmpfs

(2)挂载点:

    swap类型的设备的挂载点为swap

(3)文件系统类型:

    ext4

    ext3

    ext2

    xfs

(4)挂载选项:

    defaults:使用默认挂载选项

    常用选项:defaults,acl,noatime,noexec

(5)转储频率:

    0:从不备份

    1:每天备份

    2:每隔一天备份

(6)自检次序:

    0:不自检

    1:首先自检,通常只能是根文件系统可用1

    2:次级自检

3、创建一个大小为1G的swap分区, 并启用

            首先创建一个1G的分区,指定磁盘ID号为82

        使用mkswap命令,设置为swap分区:

        查看是否成功:

        swapon命令:启动swap分区 

        swapoff命令:关闭swap分区

4、编写脚本计算/etc/passwd 文件中第10个用户和第20个用户的id之和

    第一版:

         #!/bin/bash

            #计算/etc/passwd文件中第10个用户和第二十个用户

             user10=$( cat /etc/passwd |head -10 |tail -1 |cut -d: -f3  )

             echo "user10:$user10"

             user20=$( cat /etc/passwd |head -20 |tail -1 |cut -d: -f3  )

             echo "user20:$user20"

              echo "sum ID:$(($user10+$user20))"

            执行脚本测试:

        第二版:         

      #awk -F: 'BEGIN{sum=0}{if(NR==10 || NR==20)sum=sum+$3}END{print sum}' /etc/passwd

命令解释:

-F: 指定分隔符为:

BEGIN{sum=0}:首先申明变量sum值为0

{if(NR==10 || NR==20)sum=sum+$3}:NR是awk命令的内置变量,表示为第10行或者20行时,把$3的值,加入到sum当中。($3就为/etc/passwd文件的第三字段,ID号)

END{print sum}:最后打印sum的值,这里的变量不用加$号。

5、将当前主机名保存至hostName变量中,主机名如果为空,或为localhost.localdomain则将设置为 www.magedu.com

        hostName=$(hostname) 

      [ -z "$hostName" -o "$hostName"=="localhost.localdomain" ] && hostname www.magedu.com 

6、编写脚本,通过命令行 参数传入一个用户名,判断id号是偶数还是奇数;

        #!/bin/bash

        #通过命令行参数给定一个用户名,判断其ID是偶数还是奇数

               if [ $# -lt 1 ] ;then

                    echo "please enter one parameter"

                    exit 1

                fi

                num1=$(id -u $1)

                let ID=$num1%2

                if [ $ID -eq 0 ] ;then

                        echo "$1:ID even number"

                   else

                        echo "$1:ID odd number"

                  fi

        执行脚本测试:

7、lvm基本应用以及扩展缩减实现

pv管理工具:

    pvs命令:简要pv信息显示

    pvdisplay命令:显示pv的详细信息

    pvcreate命令: pvcreate /dev/device :创建pv

    pvremove命令:pvremove /dev/device  :移除pv

    pvmove命令:pvmove /dev/device :移动pv

vg管理工具:

    vgs命令;简要vg信息显示

    vgdispaly命令:显示vg的详细信息

    vgcreate命令:vgcreate vg_name /dev/device :创建vg:先指定vg_name,在指定要创建设备

        -s#:指定pe大小

    vgextend命令:vgextend VG_NAME /dev/device :添加/dev/device 到VG_NAME

    vgreduce命令:vgreduce VG_NAME /dev/device:缩减vg,需要先做pvmove

    vgremove命令:vgmove /dev/device

lv管理管理工具:

    lvs命令:简要lvs信息显示

    lvdispaly命令:显示lv详细信息

    lvcreate命令:创建lv:lvcreate -L #[mMgGtT] -n lv_name  vg_name

    lvremove命令:移除lv

列如:

    创建:lvcreate -L 3G -n LV_NAME VG_NAME :指定大小为3G,指定lv,在vg中创建。

    格式化:mke2fs  -t ext4 -b 1024 -L HELLO  /dev/VG_NAME/LV_NAME

    挂载:mount /dev/VG_NAME/LV_NAME   /media

扩展逻辑卷:(支持在线扩展)

    lvextend命令: lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME

    创建:lvextend -L 5G  /dev/VG_NAME/LV_NAME :扩展为5G

    创建:lvextend -L +5G  /dev/VG_NAME/LV_NAME :在原来的大小上再加5G

    resize2fs命令:扩展逻辑卷

    resize2fs /dev/VG_NAME/LV_NAME

 注意:上面的扩展方法只适合ext系列,如果是xfs文件系统的话,需要按如下方法扩容:

   xfs_growfs /dev/VG_NAME/LV_NAME


缩减逻辑卷:

    卸载:umount  /dev/VG_NAME/LV_NAME

    强制检测:e2fsck -f   /dev/VG_NAME/LV_NAME

    缩减逻辑边界:resize2fs   /dev/VG_NAME/LV_NAME 5G :缩减至5G

    修改物理边界:lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME

    重新挂载:mount /dev/VG_NAME/LV_NAME  /test

快照:快照就是某一时刻立即创建一个对原卷文件元数据的监视器,当原卷上文件元数据要变化的时候,先把原文件复制一份到快照卷上,而没有变化的就指向原卷上的文件数据。

快照的相关命令:

    创建快照:lvcreate -s -L 1G -p r -n LV_NAME_snapshoot   /dev/VG_NAME/LV_NAME 

练习:

1: 创建一个至少有两个pv组成的大小为20G的名为testvg的VG,要求PE大小为16MB,而后在卷组中创建大小为5G的逻辑卷testlv,挂载至/users目录

创建pv:[root@bogon ~]# pvcreate /dev/sdb{1,2}

创建vg:[root@bogon ~]# vgcreate  -s 16m testvg /dev/sdb{1,2}   -s :指定PE大小

创建lv:[root@bogon ~]# lvcreate -L 5G -n testlv testvg     -L:指定大小      -n:指定名字

格式化:[root@bogon ~]# mke2fs -t ext4 /dev/testvg/testlv

挂载:[root@bogon~]# mount /dev/testvg/testlv /users

2:新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制、etc/pam.d目录至自己的家目录

    创建用户: [root@bogon users]# useradd -d /users/archlinux archlinux

       复制:[archlinux@bogon ~]$ cp -r /etc/pam.d/ ./

3:扩展testlv至7G,要求archlinux用户的文件不能丢失 

     扩展物理边界:[root@bogon ~]# lvextend -L 7G /dev/testvg/testlv 

       扩展逻辑边界:resize2fs /dev/testvf/testlv

       注意:resize2fs 至合适etx文件系统,如果是xfs文件系统需要使用 xfs_growfs /dev/VG_NAME/LV_NAME

    查看用户是否丢失资料:

4:收缩testlv至3G,要求archlinux用户的文件不能丢失

         首先卸载:umount /dev/testvg/testlv

        强制文件检测:e2fsck -f /dev/testvg/testlv

        缩减逻辑边界: resize2fs /dev/testvg/testlv 3G

        缩减物理边界:lvreduce -L 3G /dev/testvg/testlv

        重新挂载:mount /dev/testvg/testlv /users/

        查看文件:

5.对testlv创建快照,并尝试基于快照备份数据,验证快照的功能

        创建快照:lvcreate -s -p r -L 1G -n testlv_snap /dev/testvg/testlv

 挂载,查看是否成功:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多