liunx 分区以及lvm

  1. GPT分区

    GPT全称GUID(Globals Unique Identifiers) partition table 支持128个分区,

    使用64位,支持8Z( 512Byte/block )64Z ( 4096Byte/block)大小 

    使用128位UUID(Universally Unique Identifier) 表示磁盘 和分区

    GPT分区表自动备份在头和尾两份,并有CRC校验位 

    UEFI (统一扩展固件接口)硬件支持GPT,使操作系统启动 

    gpt分区包括mbr保护标识 gpt头(uefi) 分区表 一个个分区   分区备份

    使用gdisk来管理使用分区

    gdisk

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

    gdisk /dev/sdX 编辑或创建gpt分区

      (?|m) 帮助

      n 建立分区

      d 删除分区

      c 更改分区名字

      I 显示分区的详细信息

      p 显示分区信息

      t 转换分区类型

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

        l 查看分区类型

       o 重建分区表

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

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

       w 退出并保存


2.创建一个etx4文件系统

    a.fdisk /dev/sdb

        输入p 查看当前分区情况

        Disk /dev/sdb: 64.4 GB, 64424509440 bytes, 125829120 sectors

        Units = sectors of 1 * 512 = 512 bytes

        Sector size (logical/physical): 512 bytes / 512 bytes

        I/O size (minimum/optimal): 512 bytes / 512 bytes

        Disk label type: dos

        Disk identifier: 0xb203a04c


       Device Boot      Start         End      Blocks   Id  System

        

    b.根据提示创建一个10g的主分区

        Command (m for help): n

        Partition type:

           p   primary (0 primary, 0 extended, 4 free)

           e   extended

        Select (default p): p

        Partition number (1-4, default 1): 

        First sector (2048-125829119, default 2048):     

        Using default value 2048

        Last sector, +sectors or +size{K,M,G} (2048-125829119, default 125829119): +10G

        Partition 1 of type Linux and of size 10 GiB is set


        Command (m for help): w

        The partition table has been altered!

        

      c.执行partprobe 分区同步,fdisk -l  /dev/sdb

        Disk /dev/sdb: 64.4 GB, 64424509440 bytes, 125829120 sectors

        Units = sectors of 1 * 512 = 512 bytes

        Sector size (logical/physical): 512 bytes / 512 bytes

        I/O size (minimum/optimal): 512 bytes / 512 bytes

        Disk label type: dos

        Disk identifier: 0xb203a04c


           Device Boot      Start         End      Blocks   Id  System

        /dev/sdb1            2048    20973567    10485760   83  Linux


   d.创建ext4文件系统 block大小为2048 预留20%空间 卷标MYDATA

     执行命令 mkfs.ext4 -b 2048 -m 20 -L MYDATA /dev/sdb1

      执行命令tune2fs -l /dev/sdb1 查看分区情况

        Filesystem volume name:   MYDATA

        Block size:               2048

        Block count:              5242880

        Reserved block count:     1048576

  e.挂载到/mydate 目录

    执行命令 mkdir /mydate;mount -o noexec,noatime /dev/sdb1 /mydata

    挂载不允许目录下程序运行且不修改访问时间

  f.设置开机自动挂载

    修改/etc/fstab 文件  添加一行

   UUID=c73cd6ec-d686-43aa-916b-136d34228868 /mydata                 ext4    noexec,noatime  0 0

   blkid /dev/sdb1 查看对应UUID

    mout -a  根据/etc/fstab 实现自动挂载

    mount 查看

    /dev/sdb1 on /mydata type ext4 (rw,noexec,noatime,data=ordered)


注意: partprobe 分区同步  但centos6要用 partx -a 增加分区同步 partx -d --nr 6-8 分区表范围


3.创建1Gswap 分区

    a.用fdisk创建一个1g分区 ,并指定类型为swap

    Command (m for help): t

    Partition number (1,2, default 2): 2

    Hex code (type L to list all codes): 82

    Changed type of partition 'Linux' to 'Linux swap / Solaris'


    Command (m for help): p


    Disk /dev/sdb: 64.4 GB, 64424509440 bytes, 125829120 sectors

    Units = sectors of 1 * 512 = 512 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

    Disk label type: dos

    Disk identifier: 0xb203a04c


       Device Boot      Start         End      Blocks   Id  System

    /dev/sdb1            2048    20973567    10485760   83  Linux

    /dev/sdb2        20973568    23070719     1048576   82  Linux swap / Solaris


    b.mkswap /dev/sdb2  格式化为swap分区

    c.修改/etc/fstab 文件 添加一行

    UUID=32a1c75c-3d4e-4a00-8022-3f783a705b73 swap                  swap    defaults  0 0 

    d.用swapon -a 激活swap 分区   

    e 用free 命令查看 

     total        used        free      shared  buff/cache   available

    Mem:           1.2G        778M        112M        4.5M        289M        217M

    Swap:          3.0G         39M        3.0G

    

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

    

#!/bin/bash

idnum1=`cat /etc/passwd|head -n 10|tail -n 1 |cut -d":" -f3`

idnum2=`cat /etc/passwd|head -n 20|tail -n 1|cut -d":" -f3`

idsum=$[idnum1+idnum2]

echo -e "\e[1;31mThe idsum is ${idsum} !\e[0m"


执行结果

./sumid.sh 

The idsum is 1008 !


5.将当前主机名保存到hostName变量中,如果主机名为空,或者为localhost.localdomain则设置成dcrfan

#!/bin/bash


hostName=`hostname`

if [ -z $hostName -o $hostName = localhost.localdomain ];then

hostName=dcrfan

else

:

fi

echo $hostName


测试

./hostName.sh 

centos7.dcrfan

把hostname 改为空或者localhost.localdomain测试

./hostName.sh 

dcrfan


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

#!/bin/bash


[ -z $1 ] && { echo "please input one arg!!!!!";exit; }

if `id $1 &>/dev/null` ;then

num=`grep  ^$1: /etc/passwd |cut -d":" -f3`

let num=num%2

if [ $num -eq 0 ];then

echo "this userid is odd!"

else

echo "this userid is even!"

fi

else

echo "this user is not exist!"

fi

测试

[root@localhost testsh]#./idcheck.sh dcrfan

this userid is odd!

[root@localhost testsh]#./idcheck.sh 

please input one arg!!!!!

[root@localhost testsh]#./idcheck.sh ff

this user is not exist!

[root@localhost testsh]#./idcheck.sh dcrfan

this userid is odd!

[root@localhost testsh]#./idcheck.sh tom

this userid is even!


7.lvm基本应用以及扩展缩减

    lvm包括pv(物理卷)vg(卷组)lv(逻辑卷)三个部分

    将设备指定为物理卷 

    用一个或者多个物理卷来创建一个卷组 

    物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的     

    在物理卷上创建的逻辑卷 是由物理区域(PE)组成

    可以在逻辑卷上创建文件系统 

    使用lvm更容易动态管理文件系统大小

   

  基本用法

    vg|pv|lv display 查看具体信息 rename  修改名字

    pvs 查看物理卷

    pvcreate /dev/sdb{1,2} 建立物理卷

    pvmove /dev/sdb1 把已经分配空间(/dev/sdb1)移动到同一卷组其他空间(用于更换硬盘)

    pvremove /dev/sdb1 移除pv

    vgs 查看卷组, vgcreate -s 16M (指定pe大小) vg0(卷组名) /dev/sdb{1,2}(指定pv)

     vgextend vg0  /dev/sdb3 扩展卷组   

     vgreduce vg0  /dev/sdb1 移除vg下的pv

     vgchange -an vg0 禁用卷组  -ay 启用卷组

     vgexport vg0 导出卷组 vgimport vg0 导入卷组

    lvs 查看逻辑卷 

    lvcreate -n lv0(指定lv名字)-L 1G(指定容量)-l 100(指定100个PE大小)vg0(指定卷组) -s 表示创建逻辑卷快照 -p r 只读模式防止误操作  

    lvconvert --merge /dev/vg0/lv0-snapshot 恢复到快照状态    一定要umount

    lvextend -l +100 /dev/vg0/lv0 扩展逻辑卷   -r (可以自动扩展文件系统)

    lvreduce -L 10G /dev/vg0/lv0 减少逻辑卷

    同步lvm的文件系统  resize2fs /dev/vg0/lv0    xfs_growfs 挂载点(xfs系统用)

     resize2fs /dev/vg0/lv0 可以缩减文件系统 ,缩减文件系统必须卸载挂载,并且fsck -f /dev/vg0/lv0 检查(xfs不支持)

 

   a.先对/dev/sda 分区模拟成硬盘使用

    /dev/sda6           10585       10716     1056590+  8e  Linux LVM

    /dev/sda7           10717       10848     1060258+  8e  Linux LVM

    /dev/sda8           10849       10980     1060258+  8e  Linux LVM


  b.生成pv,

    [root@centos6 Desktop]# pvcreate /dev/sda{6,7,8}

      Physical volume "/dev/sda6" successfully created

      Physical volume "/dev/sda7" successfully created

      Physical volume "/dev/sda8" successfully created

    [root@centos6 Desktop]# pvs

      PV         VG   Fmt  Attr PSize PFree

      /dev/sda6       lvm2 ---- 1.01g 1.01g

      /dev/sda7       lvm2 ---- 1.01g 1.01g

      /dev/sda8       lvm2 ---- 1.01g 1.01g

   

    c.组合成vg,并指定pe大小4mb

    [root@centos6 Desktop]# vgcreate -s 4M vg0 /dev/sda{6,7}

      Volume group "vg0" successfully created

    [root@centos6 Desktop]# vgdisplay

      --- Volume group ---

      VG Name               vg0

      System ID             

      Format                lvm2

      Metadata Areas        2

      Metadata Sequence No  1

      VG Access             read/write

      VG Status             resizable

      MAX LV                0

      Cur LV                0

      Open LV               0

      Max PV                0

      Cur PV                2

      Act PV                2

      VG Size               2.01 GiB

      PE Size               4.00 MiB

      Total PE              515

      Alloc PE / Size       0 / 0   

      Free  PE / Size       515 / 2.01 GiB

      VG UUID               UX0n95-f2CR-VC3C-pRED-gj0v-nU88-RGn5VD

      

   d.在vg0上划分逻辑卷

    [root@centos6 Desktop]# lvcreate -n lv0 -L 1.5G vg0

      Logical volume "lv0" created.

    [root@centos6 Desktop]# lvs

      LV   VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

      lv0  vg0  -wi-a----- 1.50g     

  

  e.格式化逻辑卷并挂载

   mkfs.ext4 /dev/vg0/lv0 

    [root@centos6 Desktop]# mkdir /test

    [root@centos6 Desktop]# mount /dev/vg0/lv0 /test

    [root@centos6 Desktop]# df -h

    Filesystem           Size  Used Avail Use% Mounted on

    /dev/sda2             48G  4.2G   42G  10% /

    tmpfs                495M  224K  494M   1% /dev/shm

    /dev/sda1            976M   35M  891M   4% /boot

    /dev/sda3             29G   44M   28G   1% /data

    /dev/mapper/vg0-lv0  1.5G  2.3M  1.4G   1% /test


  扩展和缩减lvm

    a.扩展vg

    [root@centos6 Desktop]# vgextend vg0 /dev/sda8

      Volume group "vg0" successfully extended

    [root@centos6 Desktop]# vgs

      VG   #PV #LV #SN Attr   VSize VFree

      vg0    3   1   0 wz--n- 3.02g 1.52g

   

   b.扩展lv 和文件系统 -r选择自动扩展文件系统

    lvextend -L +1G -r /dev/vg0/lv0 

      Size of logical volume vg0/lv0 changed from 1.50 GiB (384 extents) to 2.50 GiB (640 extents).

      Logical volume lv0 successfully resized.

    resize2fs 1.41.12 (17-May-2010)

    Filesystem at /dev/mapper/vg0-lv0 is mounted on /test; on-line resizing required

    old desc_blocks = 1, new_desc_blocks = 1

    Performing an on-line resize of /dev/mapper/vg0-lv0 to 655360 (4k) blocks.

    The filesystem on /dev/mapper/vg0-lv0 is now 655360 blocks long.


    [root@centos6 Desktop]# df -h

    Filesystem           Size  Used Avail Use% Mounted on

    /dev/sda2             48G  4.2G   42G  10% /

    tmpfs                495M  224K  494M   1% /dev/shm

    /dev/sda1            976M   35M  891M   4% /boot

    /dev/sda3             29G   44M   28G   1% /data

    /dev/mapper/vg0-lv0  2.5G  2.3M  2.4G   1% /test

 

   缩减lvm

  a.卸载使用的文件系统并检查

    [root@centos6 Desktop]# umount /test

    root@centos6 Desktop]# fsck -f /dev/vg0/lv0 

    fsck from util-linux-ng 2.17.2

    2fsck 1.41.12 (17-May-2010)

    Pass 1: Checking inodes, blocks, and sizes

    Pass 2: Checking directory structure

    Pass 3: Checking directory connectivity

    Pass 4: Checking reference counts

    Pass 5: Checking group summary information

    /dev/mapper/vg0-lv0: 11/163840 files (9.1% non-contiguous), 19060/655360 blocks

  b.缩减文件系统

   [root@centos6 Desktop]#resize2fs /dev/vg0/lv0 2G

    resize2fs 1.41.12 (17-May-2010)

    Resizing the filesystem on /dev/vg0/lv0 to 524288 (4k) blocks.

    The filesystem on /dev/vg0/lv0 is now 524288 blocks long.

    

 c.缩减pv ,重新挂载

    [root@centos6 Desktop]# lvreduce -L 2G /dev/vg0/lv0 

      WARNING: Reducing active logical volume to 2.00 GiB.

      THIS MAY DESTROY YOUR DATA (filesystem etc.)

    Do you really want to reduce vg0/lv0? [y/n]: y 

      Size of logical volume vg0/lv0 changed from 2.50 GiB (640 extents) to 2.00 GiB (512 extents).

      Logical volume lv0 successfully resized.

    [root@centos6 Desktop]# mount /dev/vg0/lv0 /test

    [root@centos6 Desktop]# df -h

    Filesystem           Size  Used Avail Use% Mounted on

    /dev/sda2             48G  4.2G   42G  10% /

    tmpfs                495M  224K  494M   1% /dev/shm

    /dev/sda1            976M   35M  891M   4% /boot

    /dev/sda3             29G   44M   28G   1% /data

    /dev/mapper/vg0-lv0  2.0G  2.3M  1.9G   1% /test

  

猜你喜欢

转载自blog.51cto.com/6289984/2328153
今日推荐