文章目录
- 1.查看磁盘(硬盘)的状态
- 2.Linux下对LVM逻辑卷分区大小调整 [针对xfs和ext4文件系统]
1.查看磁盘(硬盘)的状态
- 执行lsscsi查看所有可插拔设备(偏底层)
[0:0:3:0] disk ATA HGST HUS726060AL T7JM /dev/sdd
[0:0:4:0] disk ATA HGST HUS726060AL T7JM /dev/sde
[0:0:5:0] disk ATA HGST HUS726060AL TAF0 /dev/sdf
- 判断磁盘类型是xfs的,还是ext4的?
file -s /dev/sdd
若是已经挂载的,还可以df -hT 或者df -aT查看磁盘类型
- 查看xfs系统的磁盘状态:xfs_info 分区
xfs_info /dev/sdd
- 修复xfs类文件系统的superblock错误
(1)xfs_repair检查一下/dev/sda文件系统
xfs_repair -f /dev/sda
若还有superblock错误,但是盘里的数据不需要
(2)文件系统格式化mkfs.xfs
mkfs.xfs /dev/sda
- 查看ext2系统的磁盘状态:dumpe2fs 分区
dumpe2fs /dev/sdd
- 修复ext类文件系统的superblock错误
(1)首先要找到superblock备份的几个位置,这需要利用mke2fs这个命令
[root@server1 ~]# mke2fs -n /dev/sdb
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 --------------->>> 超级块的备份位置就在这里
(2)恢复的命令格式: e2fsck –b superblock device
[root@server1 ~]# e2fsck -b 32768 /dev/sdb
现在主超级块已经恢复了,系统可以正常使用。
- Linux 下查看硬盘 smart 信息
smartctl -A /dev/sda
smartctl -i /dev/sda 可以看到磁盘序列号serial number
2.Linux下对LVM逻辑卷分区大小调整 [针对xfs和ext4文件系统]
- 如果这些分区在装系统的时候使用了lvm(前提是这些分区要是lvm逻辑卷分区),那么就可以轻松进行扩容或缩容!
不同文件系统类型所对应的创建、检查、调整命令不同,下面就针对xfs和ext2/3/4文件系统的lvm分区空间的扩容和缩容的操作做一记录:
########################################################
特别注意的是:
resize2fs 命令 针对的是ext2、ext3、ext4文件系统
xfs_growfs 命令 针对的是xfs文件系统
########################################################
- 1)ext2/ext3/ext4文件系统的调整命令是resize2fs(增大和减小都支持)
lvextend -L 120G /dev/mapper/centos-home #增大至120G
lvextend -L +20G /dev/mapper/centos-home #增加20G
lvreduce -L 50G /dev/mapper/centos-home #减小至50G
lvreduce -L -8G /dev/mapper/centos-home #减小8G
resize2fs /dev/mapper/centos-home #执行调整
- 2)xfs文件系统的调整命令是xfs_growfs(只支持增大)
lvextend -L 120G /dev/mapper/centos-home #增大至120G
lvextend -L +20G /dev/mapper/centos-home #增加20G
xfs_growfs /dev/mapper/centos-home #执行调整
就是说:xfs文件系统只支持增大分区空间的情况,不支持减小的情况(切记!!)。
硬要减小的话,只能在减小后将逻辑分区重新通过mkfs.xfs命令重新格式化才能挂载上,这样的话这个逻辑分区上原来的数据就丢失了。
- 实例1(当系统上还有空闲空间的时候)
1)查看分区空间。如下可知是xfs文件系统(df的-T参数就能看出文件格式)。
[root@localhost ~]# df -hT
/dev/mapper/centos-home xfs 628G 33M 718G 1% /home
2)使用vgdisplay命令查看系统上的空闲空间
Free PE / Size 25549 / 99.80 GiB #这一项表示目前该系统上还存在99.80G的空闲空间(25549)
3) 将上面查到的空闲空间中的90G增减到/home分区上
[root@localhost ~]# lvextend -L +90G /dev/mapper/centos-home #或者使用-l参数(跟PE数量),即lvextend -l +25500 /dev/mapper/centos-home
Size of logical volume centos/home changed from 628.00 GiB (160768 extents) to 718.00 GiB (183808 extents).
Logical volume centos/home successfully resized.
[root@localhost ~]# xfs_growfs /dev/mapper/centos-home
4)再次看着系统分区,发现home分区已经增加了90G(这种方式增加后,home分区之前的数据还不会丢失)
[root@localhost ~]# df -h
/dev/mapper/centos-home 718G 33M 718G 1% /home
- 实例2: 这种情况只适用于系统刚安装好,逻辑分区内没有什么数据或数据不多且不重要可以删除或拷贝的情况下
系统安装好后,发现home分区过大,想从home分区中拿出100G给/分区
[root@localhost ~]# df -hT
/dev/mapper/centos-home xfs 718G 33M 718G 1% /home
[root@localhost ~]# umount /home/
[root@localhost ~]# lvreduce -L -100G /dev/mapper/centos-home
如下,很显然xfs文件系统不能执行分区减小的调整!
[root@localhost ~]# xfs_growfs /dev/mapper/centos-home
xfs_growfs: /dev/mapper/centos-home is not a mounted XFS filesystem
[root@localhost ~]# mount /dev/mapper/centos-home /home/
mount: /dev/mapper/centos-home:不能读超级块
这样,只能通过重新格式化这个分区,格式化后才能再次挂载到home下
[root@localhost ~]# mkfs.xfs /dev/mapper/centos-home -f
---------------------------------------------------------------------------
上面在重新格式的时候,也可以将这个格式化为ext4格式。
[root@localhost ~]# mkfs.ext4 /dev/mapper/centos-home
[root@localhost ~]# cat /etc/fstab //将home分区的开机挂载设置里的xfs改为ext4
---------------------------------------------------------------------------
[root@localhost ~]# mount /dev/mapper/centos-home /home/
再次查看分区,发现home分区已经减小了100G,只不过这个分区里之前的数据都没有了。
[root@localhost ~]# df -hT
/dev/mapper/centos-home xfs 618G 73M 578G 1% /home
然后将上面从home分区拿出的100G放到/分区下
[root@localhost ~]# vgdisplay
Free PE / Size 26829 / 104.80 GiB
[root@localhost ~]# lvextend -L +100G /dev/mapper/centos-root
[root@localhost ~]# xfs_growfs /dev/mapper/centos-root
[root@localhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 305G 2.2G 203G 2% /
- 若mount失败
#################### 温馨提示 #######################
若是减小分区空间,减小前必须要先卸载这个分区。如果卸载有问题,解决如下:
[root@localhost ~]# umount /home/
umount: /home: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
提示无法卸载,则是有进程占用/home,使用如下命令来终止占用进程:
[root@localhost ~]# fuser -m -k /home
/home: 1409 1519ce 1531e 1532e 1533e 1534e 1535e 1536e 1537e 1538e 1539e 1541e 1543e 1544e 1545e 1546e 1547e 1548e 1549e 1550e 1601m
再次卸载home分区就成功了。
[root@localhost ~]# umount /home/
-k 表示自动把霸占home分区的进程kill掉!
如果你不是很明确是否要杀死所有霸占设备的程序,还可以加一个-i 参数,这样每杀死一个程序前,都会询问!
(即fuser -m -v -i -k /home)
*************** ***************
- 参考:当尝试打开 /dev/mapper/centos-root 时 找不到有效的文件系统超级块.,Linux 下查看硬盘 smart 信息,Linux下对LVM逻辑卷分区大小调整 [针对xfs和ext4文件系统],linux操作系统故障处理-ext4文件系统超级块损坏修复