Linux之脚本分区及LVM

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

GPT的全称是Globally Unique Identifier Partition Table,即GUID分区表,GUID 分区表 (GPT) 是作为 Extensible Firmware Interface (EFI) 计划的一部分引入的。相对于以往 PC 普遍使用的主引导记录 (MBR) 分区方案,GPT 提供了更加灵活的磁盘分区机制。分区指物理或逻辑磁盘上彼此连接的存储空间,但提供功能时就像物理上分隔的磁盘一样。对于系统固件和已安装的操作系统来说,分区是可见的。操作系统启动之前,对分区的访问由系统固件控制,操作系统启动后则由操作系统控制。

它具有如下优点:
1、支持2TB以上的硬盘。
2、每个磁盘的分区个数几乎没有限制(Windows系统最多只允许划分128个分区)。
3、分区大小几乎没有限制。用64位的整数表示扇区号,即 = 18,446,744,073,709,551,616。
4、分区表自带备份。在磁盘的首尾部分分别保存了一份相同的分区表,其中一份被破坏后,可以通过另一份恢复;
5、循环冗余检验值针对关键数据结构而计算,提高了数据崩溃的检测机率;
6、 虽然MBR提供1字节分区类型代码,但GPT使用一个16字节的全局唯一标识符(GUID)值来标识分区类型,这使分区类型更不容易冲突;
7、每个分区可以有一个名称(不同于卷标)。

要想使用GPT分区表必须是UEFI BIOS环境,UEFI和GPT二者缺一不可,现在的服务器主板基本采用UEFI+BIOS共存模式,并且BIOS中集成UEFI启动项,如果系统盘大小超过了2T需要使用UEFI模式进行系统安装并进行系统启动,在对大于2T的非系统盘进行分区时需要选择GPT分区格式。

2.  创建一个10G的分区,并格式化为ext4文件系统。要求
a)  block大小为2048,预留空间20%,卷标为MYDATA,
b)  挂载至/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳
c)  可开机自动挂载
root@centos-7 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xb149d50d.

Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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: 0xb149d50d

Device Boot      Start         End      Blocks   Id  System

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): 1
First sector (63-41943039, default 63): 
Using default value 63
Last sector, +sectors or +size{K,M,G} (63-41943039, default 41943039): +10G
Partition 1 of type Linux and of size 10 GiB is set

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
255 heads, 63 sectors/track, 2610 cylinders
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: 0xb149d50d

     Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63    20971583    10485760+  83  Linux

Command (m for help): wq
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

[root@centos-7 ~]# mkfs.ext4 -b 2048 -m 20 -L MYDATA /dev/sdb1

mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=MYDATA
OS type: Linux
Block size=2048 (log=1)
Fragment size=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 5242880 blocks
1048576 blocks (20.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=273678336
320 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
    16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 
    2048000, 3981312

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   

[root@centos-7 ~]# mkdir /mydata
[root@centos-7 ~]# mount -o noexec,notime /de/sdb1 /mydata
[root@centos-7 ~]# vi /etc/fstab 
         12 UUID=db4bd762-3736-49fb-b664-081efac8aa94  /mydata        ext4    noexec,noatime  0 0

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

[root@centos-7 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): n
Partition type:
     p   primary (1 primary, 0 extended, 3 free)
     e   extended
Select (default p): p  
Partition number (2-4, default 2): 2
First sector (20971584-41943039, default 20973568): 
Using default value 20973568
Last sector, +sectors or +size{K,M,G} (20973568-41943039, default 41943039): +1G
Partition 2 of type Linux and of size 1 GiB is set

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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: 0xb149d50d

     Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63    20971583    10485760+  83  Linux
/dev/sdb2        20973568    23070719     1048576   83  Linux

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 'Empty' to 'Linux swap / Solaris'

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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: 0xb149d50d

     Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63    20971583    10485760+  83  Linux
/dev/sdb2        20973568    23070719     1048576   82  Linux swap / Solaris

Command (m for help): wq
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

[root@centos-7 ~]# mkswap /dev/sdb2
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=92df2c57-4000-422d-b0e8-ca94fe626315

        [root@centos-7 ~]# swapon /dev/sdb2
  1. 编写脚本计算/etc/passwd文件第10个用户和第20个用户id之和。

        [root@gumt ~]#cat data/sumid.sh
        #!/bin/bash
        #********************************************************************
        #Author:            Gumt
        #Mail:              [email protected]
        #Date:              2019-07-21
        #FileName:          sumid.sh
        #Version:           V1.0
        #Description:       The uid sum script
        #Copyright (C):     2019 All rights reserved
        #********************************************************************
    
        UID_1=$(cat /etc/passwd | head -n $1 |tail -n 1 |cut -d: -f3)
        UID_2=$(cat /etc/passwd | head -n $2 |tail -n 1 |cut -d: -f3)
    
        SUMID=$[$UID_1+$UID_2]
    
        echo "UID SUM is:$SUMID"
        [root@gumt ~]#bash data/sumid.sh 10 20
        UID SUM is:1007
  2. 将当前主机名保存至hostName变量中,主机名如果为空,或者为localhost.localdomain则将设置为www.magedu.com

        [root@gumt ~]#cat data/hostName.sh
        #!/bin/bash
        #********************************************************************
        #Author:            Gumt
        #Mail:              [email protected]
        #Date:              2019-07-21
        #FileName:          data/hostName.sh
        #Version:           V1.0
        #Description:       The test script
        #Copyright (C):     2019 All rights reserved
        #********************************************************************
    
        hostName=$(hostname)
        [ "${hostName}" == "" -o "${hostName}" == "localhost.localdomain" ] && 
                { hostname www.magedu.com        hostnamectl set -hostname  www.magedu.com }
    
                echo "Now,the HOSTNAME is $(hostname)"
    
            [root@gumt ~]#bash data/hostName.sh
            Now,the HOSTNAME is gumt.com
  3. 编写脚本,通过命令行参数传入一个用户名,判断id号是偶数还是奇数

        [root@gumt ~]#cat data/odd-even.sh
            #!/bin/bash
            #******************************************************************
            #Author:            Gumt
            #Mail:              [email protected]
            #Date:              2019-07-21
            #FileName:          data/odd-even.sh
            #Version:           V1.0
            #Description:       The test script
            #Copyright (C):     2019 All rights reserved
            #****************************************************************
            usrId=$(id -u $1)
            if [ $[$usrId % 2 ] -eq 0 ];then
                    echo "$1\'s id is even number"
                else
                    echo "$1\'s id is odd number"
                fi
            [root@gumt ~]#bash data/odd-even.sh gumt
            gumt\'s id is even number
  4. lvm基本应用以及扩展缩减实现

        7.1、 为什么要使用LVM?
        每个Linux使用者都经常会遇到这样的困境:在进行系统分区时,该如何对分区的大小进行精确地评估和分配?Linux使用者不仅要考虑到当前系统分区所需要的容量,还要充分考虑到未来需要的容量的最大值。如果评估不准确,当未来系统分区不够用时,常常需要对Linux系统分区上的数据进行备份,再删除分区、重新分区、格式化、挂载和拷贝数据,最后再重新上线。之所以需要这么麻烦,根本原因是传统的文件系统是基于分区的,一个文件系统对应一个分区,各个分区之间是互相独立的。为了解决这一问题,虽然可以使用支持跨文件系统的软链接,或者使用可调整分区大小的工具例如PartitionMagic等等,但却无法从根本上解决问题,因为一方面再次调整的分区仍然有可能会再次不够用,另一方面是调整分区大小需要重新引导系统,对于很多关键服务器是不能接受停机的,因此问题仍然存在。这时我们或许会觉得如果能在线对系统分区的大小进行调整而又对该分区上的数据无影响的话那该多好?不过,Linux的逻辑卷管理器 (LVM, Logical Volume Manager) 提供了这一解决方案。
    
    7.2、LVM 工作原理
        LVM是逻辑卷管理(Logical Volume Manager)的简称,它是一种更为灵活的磁盘分区管理机制。LVM是在磁盘分区和文件系统之间添加的一层逻辑层,它为文件系统屏蔽下层的磁盘分区布局,向文件系统提供一个抽象的存储卷。通过LVM,Linux系统管理员可轻松地管理磁盘分区,如:既然LVM是建立在硬盘和分区之上的一层逻辑层,那么可以将多个硬盘、多个分区或RAID组织起来构建成存储卷组,作为一个存储池;然后在这个存储卷之上再将其划分出一个或多个逻辑卷,Linux系统管理员可以对这个划分出来的逻辑卷进行一系列操作(例如格式化、挂载等),可以将逻辑卷当做一个系统分区来对待,更重要的是,这个系统分区的大小还可以在线扩展或缩减。总的来说,LVM使得系统分区独立于底层硬件。
    
        那么LVM是如何做到支持系统分区在线扩容或缩容的?我们再梳理一下LVM的工作原理。要制作逻辑分区,首先需要将多个硬盘、多个分区或RAID制作成为便于识别的物理卷(PV, Physical Volume),将这些制作好的物理卷再构建成一个存储池,我们把这个存储池称为卷组(VG, VolumeGroup),这是LVM的第一个逻辑层。在卷组这一层上再逻辑出一层逻辑卷(LV, LogicalVolume),这个逻辑卷LV可供用户使用,例如格式化、挂载、存储数据,相当于一个逻辑意义上的系统分区。而这个逻辑分区的空间大小取决于卷组VG的分配,因此逻辑卷LV的存储空间不能超过其所属卷组VG的总存储空间。
        pv --> vg --> lv
        类比块设备将信息存储在固定大小的块(block)中,当一个物理卷PV加入一个卷组VG时会被划分成多个物理扩展块(PE, Physical Extent)。VG将PE划分给LV,在LV中的PE称为逻辑扩展块(LE, Logical Extent)。在同一个卷组中PE和LE大小是相同的,并且一一对应。PE和LE都是LVM识别、寻址的基本单位,其对应的唯一编号分别称为PEID和LEID。
    
        当这个逻辑分区不够用时,可以从卷组中取出一部分空闲的PE加入这个逻辑卷;当逻辑分区的空闲空间过多时,还可以将将逻辑卷中多余的LE取出供其所属卷组中的其他逻辑卷使用,从而实现对系统分区的灵活管理。

    7.3、LVM 元数据

        你可能会好奇有关逻辑卷和卷组的元数据都存放在哪里?类似于非LVM的系统中,有关分区的信息是存放在分区表中,而分区表是存放于每一个物理卷的起始位置处。在LVM系统中,VGDA(卷组描述符区域)就好像LVM的分区表,其存放于每一个物理卷的起始位置处。
    
    VGDA由以下信息组成:
    ◆ 一个PV描述符
    ◆ 一个VG描述符
    ◆ LV描述符
    ◆ 一些PE描述符
    
        当系统启动LV时,VG会被激活,并且VGDA会被加载至内存中,VGDA帮助识别LV的实际存储位置。当系统访问存储设备时,由VGDA建立起来的映射机制就用于访问实际的物理位置来执行I/O操作。
    
    7.4、LVM 基本术语
            以下总结一下有关LVM的几个基本术语。
    
        * 物理存储介质(PhysicalStorageMedia):
        指系统上最底层的物理存储设备:磁盘,例如:/dev/sda、/dev/sdb等。
    
        * 物理卷(Physical Volume, PV):
        指磁盘、磁盘分区或RAID设备,使用LVM前需要先将之制作成便于识别的物理卷PV(添加元数据)。
    
        * 卷组(Volume Group, VG):
        卷组由一个或多个物理卷PV组成,在卷组之上可创建一个或多个逻辑卷LV。卷组VG类似于非LVM系统的
        物理磁盘。
    
        * 逻辑卷(Logical Volume, LV):
        建立在卷组VG之上,相当于逻辑分区,可在逻辑卷LV上进行一系列操作(例如:格式化、挂载等)。
        逻辑卷LV类似于非LVM系统的磁盘分区。
    
        * 物理扩展块(Physical Extent, PE):
        当物理卷PV加入某一卷组VG后即被划分为基本单元PE,PE是LVM寻址的最小单元。PE的大小是可配置的
        ,默认为4M。
    
        * 逻辑扩展块(Logical Extent, LE):
        卷组VG将PE划分给逻辑卷LV,在逻辑卷LV中的PE称为LE。在同一卷组VG中,PE和LE大小相同,且一一
        对应。LE也是LVM的最小寻址单位。

7.5、快照卷

            前面提到了lvm支持lv边界动态扩展或收缩的功能,除此之外,lvm还有另一个重要的功能--为逻辑卷制作快照卷。而快照卷主要作用是让用户能够访问与过去某一时刻的文件系统一致的数据,快照本身不是备份,只是备份的辅助手段。制作好快照后,我们就可以利用快照来进行备份。
            “快照”的重点在于“快”。与备份不同,备份常常需要花很多时间来复制数据流然后进行存储,尤其是对於单个或多个大文件而言,这有可能会发生数据在复制后一半时,前一半的原数据已经发生变化了,出现文件不一致的情况。所以,备份的问题在于备份速度慢、时间长。“快照”就可以帮助备份解决时间长的问题。一旦对某个文件系统(逻辑卷)创建了快照卷,相当于多了一个可监控该文件系统元数据变化的监视器,只要被监视的文件系统上的某一文件的数据发生变化,就会先拷贝一份原始文件存于快照卷中,再对文件进行修改。因此可以得出这样的结论:原卷(被监视的文件系统)上发生变化的数据的量不能超过快照卷的存储空间。我们可以通过快照卷访问某个文件系统在创建快照前的数据,它只是为该文件系统提供另一个访问路径而已。制作好快照后,我们就可以利用快照来进行备份,而这样的备份不会出现不一致的情况。
            另外,快照卷与原卷要在同一卷组中,而快照卷不一定要与原卷一样大,这取决于快照卷要存活多长时间。在快照卷的存活时间内只要在原卷上发生变化的数据的量不超过快照卷的可用空间即可。而一旦在存活时间内原卷上发生变化的数据的量超过快照卷的可用空间,那么该快照卷会失效。还有,在创建快照卷的那一刻不允许原卷文件系统上的数据发生变化的,必须先确保原卷为只读模式或无访问模式。
            当然,快照卷赢在速度上,但仍然存在缺陷。一方面之前要求原卷上发生变化的数据的量不能超过快照卷的可用空间,另一方面快照卷存放的只是原卷上发生变化的数据,当某一刻整个文件系统被损坏时,即便快照卷的可用空间充足,也同样来不及备份整个原卷,在快照卷上只有文件系统被损坏之前发生过变化的数据。因此仍然需要增量备份和差异备份。

7.6、在CentOS 6上配置安装LVM
示例:
(1)创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB,而后在卷组
中创建大小为5G的逻辑卷testlv;挂载至/users目录;
(2)新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制
/etc/pam.d目录至自己的家目录;
(3)扩展testlv至7G,要求archlinux用户的文件不能丢失;
(4)收缩testlv至3G,要求archlinux用户的文件不能丢失;
(5)对testlv创建快照,并尝试基于快照备份数据,验证快照的功能;
(6)对testlv创建快照,并尝试基于快照备份数据,验证快照的功能;
(7)从卷组中添加一个物理卷,要求不影响在逻辑卷上创建的文件系统的数据。
(8)从卷组中删除一个物理卷,要求不影响在逻辑卷上创建的文件系统的数据。

7.6.1. 分区
对指定磁盘进行分区:
[root@osyunwei ~]# fdisk /dev/sdc
创建新分区/dev/sdc5、/dev/sdc6之后,大小均为10G,将分区的类型修改为8e,完成后在fdisk进程中显示分区表,如下所示:

     Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1        2610    20964793+   5  Extended
/dev/sdc5               1        1306    10490382   8e  Linux LVM
/dev/sdc6            1307        2610    10490382   8e  Linux LVM
保存后退出:
Command (m for help): w
[root@osyunwei ~]# partx -a /dev/sdc    #强制内核重新读取分区表;

7.6.2. 制作物理卷
将磁盘分区/dev/sdc5、/dev/sdc6制作为便于LVM识别的物理卷:
[root@osyunwei ~]# pvcreate /dev/sdc{5,6}
    Physical volume "/dev/sdc5" successfully created
    Physical volume "/dev/sdc6" successfully created

7.6.3. 创建卷组
创建一个至少有两个PV组成的大小为20G的名为testvg的VG:
[root@osyunwei ~]# vgcreate -s 16M testvg /dev/sdc{5,6}
    Volume group "testvg" successfully created

7.6.4. 创建逻辑卷
在卷组testvg中创建大小为5G的逻辑卷testlv:
[root@osyunwei ~]# lvcreate -L 5G -n testlv testvg
    Logical volume "testlv" created.

7.6.5. 格式化逻辑卷
[root@osyunwei ~]# mkfs.ext4 /dev/mapper/testvg-testlv

7.6.6. 挂载逻辑卷
将格式化后的逻辑卷挂载至/users目录:
[root@osyunwei ~]# mkdir /users
[root@osyunwei ~]# mount /dev/mapper/testvg-testlv /users

7.6.7. 扩展逻辑卷
LVM支持在线扩容,示例如下:
扩展逻辑卷之前,先新建用户archlinux,其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录:
[root@osyunwei ~]# useradd -d /users/archlinux archlinux
[root@osyunwei ~]# su - archlinux
[archlinux@osyunwei ~]$ cp -r /etc/pam.d /users/archlinux
[archlinux@osyunwei ~]$ exit

扩展testlv至7G,要求archlinux用户的文件不能丢失:
[root@osyunwei ~]# lvextent -L 7G /dev/testvg/testlv
或者:
[root@osyunwei ~]# lvextent -L +2G /dev/testvg/testlv
重新调整在逻辑卷上创建的文件系统的大小:
[root@osyunwei ~]# resize2fs /dev/mapper/testvg-testlv
这就完成了对LV的扩展!

7.6.8. 缩减逻辑卷

        在CentOS 6上还不能在线缩容,需要先卸载、检测修复文件系统、缩减文件系统的大小、缩减逻辑卷LV的空间,最后再重新挂载。要收缩testlv至3G,且要求archlinux用户的文件不能丢失,首先要卸载正在挂载的逻辑卷:
[root@osyunwei ~]# umount /dev/mapper/testvg-testlv
检测文件系统是否有发生错误:
[root@osyunwei ~]# e2fsck -f /dev/mapper/testvg-testlv
要缩减逻辑卷LV的空间,必须先把在逻辑卷上创建的文件系统的空间缩减(类比:减少桌子的面积之前要先把桌子上承载的东西减少,总之要要保证桌子有足够的空间盛放东西。):
[root@osyunwei ~]# resize2fs /dev/mapper/testvg-testlv 3G
承上,缩减逻辑卷的空间:
[root@osyunwei ~]# lvreduce -L 3G /dev/mapper/testvg-testlv
重新挂载:
[root@osyunwei ~]# mount /dev/mapper/testvg-testlv /users
这就完成了对LV的缩减。

7.6.9. 制作快照卷
对testlv创建快照,设置快照卷权限为只读,并尝试基于快照备份数据,验证快照的功能:
[root@osyunwei ~]# lvcreate -L 2G -p r -s -n testsnap /dev/mapper/testvg-testlv
挂载快照卷至/snapshot:

[root@osyunwei ~]# mkdir /snapshot
[root@osyunwei ~]# mount /dev/mapper/testvg-testsnap /snapshot
这就完成了快照卷的制作。

7.6.10. 添加新的物理卷到卷组中
示例:添加/dev/sdb6

[root@osyunwei ~]# vgextend testvg /dev/sdb6
    Physical volume "/dev/sdb6" successfully created
    Volume group "testvg" successfully extended

7.6.11. 从卷组中删除一个物理卷
示例:删除/dev/sdc5
要从卷组中删除一个物理卷,就需要确认要删除的物理卷(/dev/sdc5)没有被任何逻辑卷正在使用,就要使用pvdisplay命令察看一个该物理卷(/dev/sdc5)信息:
[root@osyunwei ~]# pvdisplay /dev/sdc5
    --- Physical volume ---
    PV Name               /dev/sdc5
    VG Name               testvg
    PV Size               10.00 GiB / not usable 4.51 MiB
    Allocatable           yes 
    PE Size               16.00 MiB
    Total PE              640
    Free PE               320
    Allocated PE          320
    PV UUID               PF77Xl-Xj8V-rD2L-c9Px-c60I-s6ey-tg42FA 
很不凑巧!/dev/sdc5正被某个逻辑卷所使用,于是需要使用pvmove把要移除的PV(/dev/sdc5)上已占用的PE上的数据移至其他PV未占用的PE上:
[root@osyunwei ~]# pvmove /dev/sdc5
    /dev/sdc5: Moved: 0.0%
    /dev/sdc5: Moved: 14.4%
    /dev/sdc5: Moved: 29.1%
    /dev/sdc5: Moved: 43.4%
    /dev/sdc5: Moved: 58.1%
    /dev/sdc5: Moved: 60.0%
    /dev/sdc5: Moved: 74.7%
    /dev/sdc5: Moved: 89.4%
    /dev/sdc5: Moved: 100.0%
再查看一下/dev/sdc5的详细信息:
[root@osyunwei ~]# pvdisplay /dev/sdc5
    --- Physical volume ---
    PV Name               /dev/sdc5
    VG Name               testvg
    PV Size               10.00 GiB / not usable 4.51 MiB
    Allocatable           yes 
    PE Size               16.00 MiB
    Total PE              640
    Free PE               640
    Allocated PE          0
    PV UUID               PF77Xl-Xj8V-rD2L-c9Px-c60I-s6ey-tg42FA
不错~要删除的物理卷/dev/sdc5已经没被任何逻辑卷所使用了,所以大胆删除吧:
[root@osyunwei ~]# vgreduce testvg /dev/sdc5
    Removed "/dev/sdc5" from volume group "testvg"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章