Linux文件系统管理

第九讲 文件系统管理
 
基础知识点:
 
硬盘的构成:主要由盘片、机械手臂、磁头与主轴马达所组成,实际的数据都是写在具有磁性物质上的盘片,通过主轴马达让盘片转动,机械手臂可伸展让磁头在盘片上读取数据。由于单一盘片容量有限,一般硬盘内部会有两个以上的盘片。一般数据的读写会由外圈开始往内写。
扇区:同心圆切出的一个个小块区域,磁盘的最小物理存储单位。有512byte和4kbyte两种容量。
    第一个扇区记录了整颗磁盘的重要信息。早期是MBR格式的,新型的是磁盘分区格式GPT。
    MBR中第一个扇区包含开机管理程序记录区(可以安装开始管理程序,有446byte)与分区表(记录整颗磁盘分区的状态,有64byte)。
    由于分区表所在的区块仅能有64byte, 最多只能有4组记录区(主要或延展分区),每个记录区记录了该区段的启始与结束的柱面号码。
    分区作用:1、数据更安全;2、读取更快
    延展分区(操作系统限制只能有1个)的目的是使用额外的扇区来记录分区信息(逻辑分区),延展分区本身不能被格式化。建议将延展分区的磁柱号码分配在最后面的磁柱内。
    GPT在扇区定义上大多使用逻辑区块地址,第一个LBA称为LBA0,GPT使用34个LBA区块记录分区信息。磁盘的最后33个LBA也作为另一个备份。
    LBA0与MBR模式相似,而在原本的分区表的记录区内,又放入一个特殊标志的分区来表示此磁盘为GPT格式。
    LBA1记录分区表本身的位置和大小,同时记录备份用的GPT分区的位置,同时放置了分区表的检验机制码,操作系统根据这个码来判断GPT是否正确。若有错误,通过备份来恢复GPT的正常运作。
磁道:小区块整合成的一个同心圆
柱面:多个盘片上的同一个磁道
BIOS:一个写入到硬件(主板)上的一个软件程序。是在开机时,计算机主动执行的第一个程序。会分析计算机里的存储设备,如到硬盘中读取第一个扇区的MBR设置,接下来MBR内的开机管理程序加载核心文件(操作系统)。
挂载:利用一个目录当成进入点,经磁盘分区的数据放置在该目录下,即进入该目录就可以读取该分区。
    Linux系统使用的是目录树架构,但数据文件时放置在磁盘分区的,需通过挂载来结合目录树的架构和磁盘内的数据。其中最重要的是根目录,根目录一定要挂载到某个分区,至于其他的目录则可根据需求来挂载到不同的分区。
 
『设备类型』其实共有 3 种,我们的练习机实际使用标准分区与 LVM 而已。那三种
装置类型的意义分别如下:
 标准分区区:就是我们一直谈的分区槽啊!类似 /dev/vda1 之类的分区就是了。
 LVM:这是一种可以弹性增加/削减文件系统容量的装置设定,我们会在后面的章节持续介绍 LVM 这个有趣的东西!
 LVM 紧张供应:这个名词翻译的超奇怪的!其实这个是 LVM 的进阶版!与传统 LVM 直接分配固定的容量不同, 这个『 LVM 紧张供应』的项目,可以让你在使用多少容量才分配磁盘多少容量给你,所以如果LVM 装置内的数据量较少,那么你的磁盘其实还可以作更多的资料储存! 而不会被平白无故的占用!这部份我们也在后续谈到 LVM 的时候再来强调!
 
『格式化』的时候,我们可以格式化成什么文件系统的意思。底下分别谈谈各个文件系统项目 (详细的项目会在后续章节说明)
 ext2/ext3/ext4:Linux 早期适用的文件系统类型。由于 ext3/ext4 文件系统多了日志的记录, 对于系统的复原比较快速。不过由于磁盘容量越来越大,ext 家族似乎有点挡不住了~所以除非你有特殊的设定需求,否则近来比较少使用 ext4 项目了!
 swap:就是磁盘仿真成为内存,由于 swap 并不会使用到目录树的挂载,所以用 swap 就不需要指定挂载点喔。
 BIOS Boot:就是 GPT 分区表可能会使用到的项目,若你使用 MBR 分区,那就不需要这个项目了!
 xfs:这个是目前 CentOS 预设的文件系统,最早是由大型服务器所开发出来的! 他对于大容量的磁盘管理非常好,而且格式化的时候速度相当快,很适合当今动不动就是好几个 TB 的磁盘的环境喔!因此我们主要用这玩意儿!
 vfat:同时被 Linux 与 Windows 所支持的文件系统类型。如果你的主机硬盘内同时存在 Windows 与 Linux
操作系统,为了数据的交换, 确实可以建置一个 vfat 的文件系统喔!
 
 
1.磁盘分区:使用分区编辑器(partition editor)在磁盘上划分几个逻辑部分。碟片一旦划分成数个分区(partition),不同类的目录与文件可以存储不同的分区。
 
2.格式化(高级格式化)又称逻辑格式化,根据用户选定的文件系统(如fat16,fat32,ntfs,ext2,ext3,ext4等),在磁盘的特定区域写入特定数据,在分区中划出一片用于存放文件分配表、目录表等用于文件管理的磁盘空间。
 
交换分区 -> 当内存不够用时 使用 虚拟内存
所谓的“挂载”就是利用一个目录当成进入点,将磁盘分区的数据放置在该目录下; 也就是说,进入该目录就可以读取该分区的意思。
所谓的目录树架构(directory tree)就是以根目录为主,然后向下呈现分支状的目录结构的一种文件架构。 所以,整个目录树架构最重要的就是那个根目录(root directory),这个根目录的表示方法为一条斜线“/”, 所有的文件都与目录树有关。 所有的文件都是由根目录(/)衍生来的,而次目录之下还能够有其他的数据存在。
整个Linux系统使用的是目录树架构,但是我们的文件数据其实是放置在磁盘分区当中的, 现在的问题是“如何结合目录树的架构与磁盘内的数据”呢? 这个时候就牵扯到“挂载(mount)”的问题啦!
   

 
1、分区(大柜子变小柜子)类型
u 主分区:总共最多只能分四个
u 扩展分区:只能有一个,也算作主分区的一种,也就是说主分区加扩展分区最多有四个。但 是扩展分区不能存储数据和格式化,必须再划 分成逻辑分区才能使用。
u 逻辑分区:逻辑分区是在扩展分区中划分的, 如果是IDE硬盘,Linux最多支持59个逻辑分区 ,如果是SCSI硬盘Linux最多支持11个逻辑分区
 
 
 
分区的设备文件名
主分区1        /dev/sda1        
主分区2        /dev/sda2
主分区3        /dev/sda3
扩展分区       /dev/sda4
逻辑分区1     /dev/sda5
逻辑分区2     /dev/sda6
逻辑分区3     /dev/sda7
 
 
分区的设备文件名
主分区1        /dev/sda1
扩展分区       /dev/sda2
逻辑分区1     /dev/sda5
逻辑分区2     /dev/sda6
逻辑分区3     /dev/sda7
 
 
2、文件系统(小柜子打入隔断)
 
uext2:是ext文件系统的升级版本,RedHat Linux7.2版本以前的系统默认都是ext2文件系统。1993年发布,最大支持16TB 的分区和最大2TB的文件( 1TB=1024GB=1024*1024KB)
uext3: ext3文件系统是ext2文件系统的升 级版本,最大的区别就是带日志功能,以在系统突然停止时提高文件系统的可靠性 。支持最大16TB的分区和最大2TB的文件
u ext4:它是ext3文件系统的升级版。ext4 在性能 、伸缩性和可靠性方面进行了大量改进。EXT4的变化可以说是翻天覆地的,比如向下兼容EXT3、最大1EB文件系统和16TB文件、无限数 量子目录、Extents连续数据块概念、多块分配 、延迟分配、持久预分配、快速FSCK、日志校 验、无日志模式、在线碎片整理、inode增强、 默认启用barrier等。是CentOS 6.3的默认文件系 统
     (1EB=1024PB=1024*1024TB)
 

9.2 文件系统常用命令
df命令、du命令、fsck命令和dump2fs命令
 
1、文件系统查看命令df(挂载后的)
 
[root@localhost ~]# df  [选项] [挂载点]
统计文件系统的占用情况
选项:
 -a 显示所有的文件系统信息,包括特殊文件系统,如
 /proc、/sysfs
 -h 使用习惯单位显示容量,如KB,MB或GB等
 -T 显示文件系统类型
 -m 以MB为单位显示容量
 -k 以KB为单位显示容量。默认就是以KB为单位
 
 
2、统计目录或文件大小(文件一般用ll命令查看)
(注:ls只统计这个目录下一级子目录和子文件的文件名占用的空间,而不是子目录中的数据或子文件的数据所占用的空间大小)
 
[root@localhost ~]# du [选项] [目录或文件名]  
选项:
 -a 显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量
 -h 使用习惯单位显示磁盘占用量,如KB,MB或GB等
 -s 统计总占用量,而不列出子目录和子文件的占用量
 
du命令和df命令的区别
 
udf命令是从文件系统考虑的,不光要考虑 文件占用的空间,还要统计被命令或程序 占用的空间(最常见的就是文件已经删除 ,但是程序并没有释放空间);是正真可用数据空间;若df数据比du看到的大很多,可重启服务器释放资源
udu命令是面向文件的,只会计算文件或目 录占用的空间
 
 
3、文件系统修复命令fsck (开机时自动检测,不需要手动执行,了解即可)
 
[root@localhost ~]# fsck [选项] 分区设备文件名
选项:
 -a: 不用显示用户提示,自动修复文件系统
 -y: 自动修复。和-a作用一致,不过有些文件系统只支持-y
 
 4、显示磁盘状态命令dumpe2fs
 
[root@localhost ~]# dumpe2fs 分区设备文件名 
 

 
挂载命令
 
1、查询与自动挂载(设备文件名 <---> 挂载点/盘符)
通过盘符/挂载点来访问设备,好比在window中就是分配盘符,没有盘符这个U盘是不能使用的
任何一个空目录作为一个挂载点
 
[root@localhost ~]# mount [-l] 
#查询系统中已经挂载的设备,-l会显示卷标名称
[root@localhost ~]# mount –a 
#依据配置文件/etc/fstab的内容,自动挂载(光盘、移动硬盘、U盘等不建议做成自动挂载,以防设备未插入导致系统启动崩溃)
 
2、挂载命令格式
 
[root@localhost ~]# mount [-t 文件系统] [-L 卷标名]  \
[-o 特殊选项]   设备文件名   挂载点
选项:
 -t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4 、iso9660(光驱)等文件系统,系统自动识别
 -L 卷标名: 分区别名,挂载指定卷标的分区,而不是安装设备文件名挂载(意义不大,可选)
 -o 特殊选项:可以指定挂载的额外选项,针对的是分区,常用remount,noexec...
 
 
常用 remount,noexec
 

挂载光盘与U盘
 
1、挂载光盘(/media)
 
[root@localhost ~]# mkdir /mnt/cdrom/  #建立挂载点 (盘符,任何一个空目录)
[root@localhost ~]# mount [-t iso9660] /dev/cdrom /mnt/cdrom/  #挂载光盘
 [root@localhost ~]# mount /dev/sr0 /mnt/cdrom/
光驱
 2、卸载命令
[root@localhost ~]# umount 设备文件名或挂载点
 [root@localhost ~]# umount /mnt/cdrom
3、挂载U盘(/mnt)
[root@localhost ~]# fdisk –l
#查看U盘设备文件名(跟硬盘采取相同的命名规则,插入自动识别)
[root@localhost ~]# mount -t vfat /dev/sdb1 /mnt/usb/
fat16分区 识别为 fat    fat32分区 识别为 vfat
注意:Linux默认是不支持NTFS文件系统的
默认不知此ntfs格式的文件系统,在iOS中NTFS只能看
 

 
如何支持NTFS文件系统 
linux系统默认不需要手工安装驱动,自动识别
如果没有识别 1.要么重新编译内核  2.要么利用第三方工具
1、下载NTFS-3G插件
2、安装NTFS-3G
[root@localhost ~]# tar -zxvf ntfs-3g_ntfsprogs-2013.1.13.tgz
#解压
[root@localhost ~]# cd ntfs-3g_ntfsprogs-2013.1.13
#进入解压目录
[root@localhost ntfs-3g_ntfsprogs-2013.1.13]# ./configure
#编译器准备。没有指定安装目录,安装到默认位置中
[root@localhost ntfs-3g_ntfsprogs-2013.1.13]# make
#编译
[root@localhost ntfs-3g_ntfsprogs-2013.1.13]# make install
#编译安装
3、使用
[root@localhost ~]# mount -t ntfs-3g  分区设备文件名  挂载点
 

 
9.3 fdisk硬盘分区
fdisk命令分区过程
 
1、添加新硬盘
 
2、查看新硬盘
[root@localhost ~]# fdisk -l
255个磁头 63个扇区 每个扇区1305个柱面 
start 1柱面 到 26柱面
通过Id 识别分区类型  83 =>为标准分区  82=> swap分区  5=>交换分区
 
 3、使用fdisk命令分区
[root@localhost ~]# fdisk /dev/sdb
ctrl + backspace 回删
 
4、重新读取分区表信息(分区表正在被使用时,而不需要重启)
[root@localhost ~]# partprobe
 
5、格式化分区(不能格式化扩展分区)
[root@localhost ~]# mkfs -t ext4 /dev/sdb1
mkfs.xfs /dev/sdb1
 
6、建立挂载点并挂载
[root@localhost ~]# mkdir /disk1 
 [root@localhost ~]# mount /dev/sdb1 /disk1/
注意:fdisk -l 只能看到分区被正常分配了,不能看到是否挂载,需使用df 或 mount
注意:目前至此操作,重启后 需重新挂载
 

 
分区自动挂载与fstab文件修复
 
1、/etc/fstab文件(慎重,会导致系统崩溃)
 
u第一字段:分区设备文件名或UUID(硬盘通用唯一识别码,推荐)
u第二字段:挂载点
u第三字段:文件系统类型名
u第四字段:挂载参数 
u第五字段:指定分区是否被dump备份,0代表不备份,1
代表每天备份,2代表不定期备份   标志:存在lost+found 目录
u第六字段:指定分区是否被fsck检测,0代表不检测,其
他数字代表检测的优先级,那么当然1的优先级比2高,
手工添加的应该比1大,优先级不能比根分区高
检查出错,发现问题,及时弥补
若没有发现配置错误,而直接重启了,会出现
 
发现 vim /etc/fstab 只读不能修改,需重新挂载读写权限(mount -o remount,rw  /),再修改后重启(reboot)
 
3、/etc/fstab文件修复(只能修复fstab文件报错,且还不能是根分区,否则连上面的界面都不出现)
[root@localhost ~]# mount -o remount,rw  /
 

 
9.4 分配swap分区
 
SWAP(交换)分区是一种通过在硬盘中预先划分一定的空间,然后将把内存中暂时不常用的数据临时存放到硬盘中,以便腾出物理内存空间让更活跃的程序服务来使用的技术,其设计目的是为了解决真实物理内存不足的问题。但由于交换分区毕竟是通过硬盘设备读写数据的,速度肯定要比物理内存慢,所以只有当真实的物理内存耗尽后才会调用交换分区的资源。在生产环境中,交换分区的大小一般为真实物理内存的1.5~2倍
 
1、free命令
 
[root@localhost ~]# free  [-m]
#查看内存与swap分区使用状况 
ucached(缓存):是指把读取出来的数据保存在内存当中,当再次读取时,不用读取硬盘而直接从内存当中读 取,加速了数据的读取过程
ubuffer(缓冲):是指在写入数据时,先把分散的写入操 作保存到内存当中,当达到一定程度再集中写入硬盘,减少了磁盘碎片和硬盘的反复寻道,加速了数据的写入 过程
 
 
2、新建swap分区
 
[root@localhost ~]# fdisk /dev/sdb
 别忘记把分区ID改为82
3、格式化
[root@localhost ~]# mkswap /dev/sdb6
重启后:
4、加入swap分区
[root@localhost ~]# swapon /dev/sdb6  #加入swap分区
[root@localhost ~]# swapoff /dev/sdb6  #取消swap分区
5、swap分区开机自动挂载
[root@localhost ~]# vi /etc/fstab
添加   /dev/sdb6 swap swap defaults 0 0
磁盘容量配额
本书在前面曾经讲到,Linux系统的设计初衷就是让许多人一起使用并执行各自的任务,从而成为多用户、多任务的操作系统。但是,硬件资源是固定且有限的,如果某些用户不断地在Linux系统上创建文件或者存放电影,硬盘空间总有一天会被占满。针对这种情况,root管理员就需要使用磁盘容量配额服务来限制某位用户或某个用户组针对特定文件夹可以使用的最大硬盘空间或最大文件个数,一旦达到这个最大值就不再允许继续使用。可以使用quota命令进行磁盘容量配额管理,从而限制用户的硬盘可用容量或所能创建的最大文件个数。quota命令还有软限制和硬限制的功能。
软限制:当达到软限制时会提示用户,但仍允许用户在限定的额度内继续使用。
硬限制:当达到硬限制时会提示用户,且强制终止用户的操作。
RHEL 7系统中已经安装了quota磁盘容量配额服务程序包,但存储设备却默认没有开启对quota的支持,此时需要手动编辑配置文件,让RHEL 7系统中的/boot目录能够支持quota磁盘配额技术。另外,对于学习过早期的Linux系统,或者具有RHEL 6系统使用经验的读者来说,这里需要特别注意。早期的Linux系统要想让硬盘设备支持quota磁盘容量配额服务,使用的是usrquota参数,而RHEL 7系统使用的则是uquota参数。在重启系统后使用mount命令查看,即可发现/boot目录已经支持quota磁盘配额技术了:
UUID=812b1f7c-8b5b-43da-8c06-b9999e0fe48b /boot xfs defaults,uquota 1 2

 
centos 7 根分区扩容:
1.先选中虚拟机,右击设置
  2.选择添加->硬盘->下一步
  3.一值点下一步,到设置容量大小,输入1,然后下一步,选择存储位置,这里我就要选择在C盘的空间了。
  4.最后确定,进入系统。df -h查看当前系统文件系统情况
  5.使用fdisk -l查看硬盘情况,可以看见我新增的那块硬盘区间
  6.对新加的硬盘进行分区,格式化,因为我的磁盘名称是/dev/sdc,所以输入 fdisk /dev/sdc命令:
    依次输入:m
         n  添加新分区
         p  创建为主分区,回车使用默认分区号
           回车两次使用默认起始扇区和最后扇区
 
  这里可以看见设置的类型是Linux类型,大小实际上不足1GB。但是我的根分区是Linux LVM类型的,所以还需要一次转换。
  继续输入t,输入8e,回车。输入w,保存退出。
  这个时候再输入fdisk -l,就可以看见创建的分区了。
  7.注意不要将新建的磁盘分区挂载到Linux的文件系统中,我们是要对/进行扩容,而不是添加一个区。顺便记录一下,挂载命令是mount /dev/sdc1 /指定位置空文件夹/。如果要开机自动挂载,需要修改/etc/fstab文件的内容,添加一行:/dev/sdc1   /挂载文件夹 ext4 defaults 0 0.挂载使用之前,需要将磁盘先格式化:mkfs.ext4 /dev/sdc1 格式化成ext4,同理ext3,2就是修改一下数字。
  回归正题。
  创建物理卷:pvcreate /dev/sdc1
  查看当前卷组情况:vgdisplay
 
  扩展卷组:CentOS:vgextend /dev/centos /dev/sdc1
  再查看就会发现VG的大小增加了:
  最后就是要扩展我们的根目录容量了:
  根分区叫root,最后一级,centos是卷组名称,命令如下:
  扩展逻辑卷centos-root的容量:lvextend -L +1024M /dev/centos/root
  可能会出现大小不够的情况,将1024稍微调小点就可以了。
  重置根分区的容量:resize2fs /dev/centos/root.
 [root@x cc]# resize2fs /dev/mapper/centos-root #/dev/mapper/centos-root为“/”挂载点的名字,df -h命令中查看。
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block 当尝试打开 /dev/mapper/centos-root 时找不到有效的文件系统超级块.
-------------------------------------------------------------
#这里有个错误(主要因为xfs文件系统:扩展一个现存的XFS文件系统,使用命令行工具xfs_grows)提示解决如下
 
[root@x cc]# xfs_growfs /dev/mapper/centos-root
 
 
    再使用df -h查看文件系统,就能看到扩容后的大小了。
 
 

CentsOS 7 LVM磁盘扩容

简要说明哈情况:默认分的磁盘空间不够需要扩容!查找资料实践后记录哈步骤。
  1. 查看现有磁盘空间占用情况
    [root@x cc]# df -h
    文件系统 容量 已用 可用 已用% 挂载点
    /dev/mapper/centos-root 18G 5.7G 12G 33% /
    devtmpfs 898M 0 898M 0% /dev
    tmpfs 913M 53M 861M 6% /dev/shm
    tmpfs 913M 8.9M 904M 1% /run
    tmpfs 913M 0 913M 0% /sys/fs/cgroup
    /dev/sda1 497M 211M 286M 43% /boot
    tmpfs 183M 12K 183M 1% /run/user/1000
     
     
  2.  对新增的硬盘空间新增分区(具体显示根据系统环境确定)
    [root@x cc]# fdisk /dev/sda
    欢迎使用 fdisk (util-linux 2.23.2)。
     
    更改将停留在内存中,直到您决定将更改写入磁盘。
    使用写入命令前请三思。
     
    命令(输入 m 获取帮助):n #新增分区
    ......p
    Partition number (1-4): 3 #新增分区号(1,2已经使用)
    First cylinder (41943040-62914559, default 41943040): #默认回车
    ......
    Last cylinder or +size or +sizeM or +sizeK(41943040-62914559, default 62914559): #默认回车
    命令(输入 m 获取帮助):t #修改分区类型
    Partition number (1-4): 3 #修改分区类型对应的分区号
    Hex code (type L to list codes): 8e #8e是lvm磁盘类型
    ......
    命令(输入 m 获取帮助):p #查看打印分区表
    命令(输入 m 获取帮助):w #保存退出
    ......
    [root@x cc]# reboot #重启系统
     
     
  3.  查看硬盘情况
    [root@x cc]# fdisk -l
    ......
    设备 Boot Start End Blocks Id System
    /dev/sda1 * 2048 1026047 512000 83 Linux
    /dev/sda2 1026048 41943039 20458496 8e Linux LVM
    /dev/sda3 41943040 62914559 10485760 8e Linux LVM
    ......
     
     
  4.  查看当前分区类型
    [root@x cc]# df -T /dev/sda1
    文件系统 类型 1K-块 已用 可用 已用% 挂载点
    /dev/sda1 xfs ......
     
    #CentOS7的默认文件系统类型是xfs
     
     
  5.  新磁盘创建文件系统
    [root@x cc]# mkfs.xfs /dev/sda3 #xfs如上文件系统类型
    meta-data=/dev/sda3 isize=256 agcount=4, agsize=655360 blks
    = sectsz=512 attr=2, projid32bit=1
    = crc=0 finobt=0
    data = bsize=4096 blocks=2621440, imaxpct=25
    = sunit=0 swidth=0 blks
    naming =version 2 bsize=4096 ascii-ci=0 ftype=0
    log =internal log bsize=4096 blocks=2560, version=2
    = sectsz=512 sunit=0 blks, lazy-count=1
    realtime =none extsz=4096 blocks=0, rtextents=0
     
     
  6.  创建PV(PV【物理卷】是VG【卷组】的组成部分,LV【逻辑卷】就是从VG中划分出来的卷,深究的建议查哈资料)
    [root@x cc]# pvcreate /dev/sda3
    WARNING: xfs signature detected on /dev/sda3 at offset 0. Wipe it? [y/n]: y
    Wiping xfs signature on /dev/sda3.
    Physical volume "/dev/sda3" successfully created
    [root@x cc]# vgdisplay #查看vg状态
     
     
  7.  创建的PV加入VG
    [root@x cc]# vgextend centos /dev/sda3 #centos为查看vg状态得到名称VG name
    Volume group "centos" successfully extended
     
     
  8.  查看LV状态
    [root@x cc]# lvdisplay
    ......
    --- Logical volume ---
    LV Path /dev/centos/root
    LV Name root
    VG Name centos
    LV UUID .............
    LV Write Access read/write
    LV Creation host, time x, 2016-06-16 09:19:45 +0800
    LV Status available
    # open 1
    LV Size 17.47 GiB
    Current LE 4472
    Segments 1
    Allocation inherit
    Read ahead sectors auto
    - currently set to 8192
    Block device 253:0
    [root@x cc]# pvdisplay #查看pv状态
    --- Physical volume ---
    PV Name /dev/sda3
    VG Name centos
    PV Size 10.00 GiB / not usable 4.00 MiB
    Allocatable yes
    PE Size 4.00 MiB
    Total PE 2559
    Free PE 2559
    Allocated PE 0
    PV UUID ...................
     
     
  9.  逻辑卷扩容
    [root@x cc]# lvextend -l +2559 /dev/centos/root
    Size of logical volume centos/root changed from 17.47 GiB (4472 extents) to 27.46 GiB (7031 extents).
    Logical volume root successfully resized.
    #2559为上面pvdisplay查看到的free的PE数量
     
     
  10.  resize2fs调整大小
    [root@x cc]# resize2fs /dev/mapper/centos-root #/dev/mapper/centos-root为“/”挂载点的名字,df -h命令中查看。
    resize2fs 1.42.9 (28-Dec-2013)
    resize2fs: Bad magic number in super-block 当尝试打开 /dev/mapper/centos-root 时找不到有效的文件系统超级块.
    -------------------------------------------------------------
    #这里有个错误(主要因为xfs文件系统:扩展一个现存的XFS文件系统,使用命令行工具xfs_grows)提示解决如下
    [root@x cc]# lvs
    LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
    root centos -wi-ao---- 27.46g
    swap centos -wi-ao---- 2.00g
    [root@x cc]# df -lh
    文件系统 容量 已用 可用 已用% 挂载点
    /dev/mapper/centos-root 18G 5.7G 12G 33% /
    devtmpfs 898M 0 898M 0% /dev
    tmpfs 913M 71M 843M 8% /dev/shm
    tmpfs 913M 8.9M 904M 1% /run
    tmpfs 913M 0 913M 0% /sys/fs/cgroup
    /dev/sda1 497M 211M 286M 43% /boot
    tmpfs 183M 12K 183M 1% /run/user/1000
    [root@x cc]# xfs_growfs /dev/mapper/centos-root
    meta-data=/dev/mapper/centos-root isize=256 agcount=4, agsize=1144832 blks
    = sectsz=512 attr=2, projid32bit=1
    = crc=0 finobt=0
    data = bsize=4096 blocks=4579328, imaxpct=25
    = sunit=0 swidth=0 blks
    naming =version 2 bsize=4096 ascii-ci=0 ftype=0
    log =internal bsize=4096 blocks=2560, version=2
    = sectsz=512 sunit=0 blks, lazy-count=1
    realtime =none extsz=4096 blocks=0, rtextents=0
    data blocks changed from 4579328 to 7199744
    [root@x cc]# df -lh
    文件系统 容量 已用 可用 已用% 挂载点
    /dev/mapper/centos-root 28G 5.7G 22G 21% /
    devtmpfs 898M 0 898M 0% /dev
    tmpfs 913M 71M 843M 8% /dev/shm
    tmpfs 913M 8.9M 904M 1% /run
    tmpfs 913M 0 913M 0% /sys/fs/cgroup
    /dev/sda1 497M 211M 286M 43% /boot
    tmpfs 183M 12K 183M 1% /run/user/1000
    #显示扩展已完成
 

posted @ 2019-03-12 23:49  白開水  阅读(280)  评论(0编辑  收藏  举报