查看硬盤狀態和Linux下對LVM邏輯卷分區大小調整

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系統的磁盤狀態:dumpe1fs 分區
dumpe1fs /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

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的空閒空間(255493) 將上面查到的空閒空間中的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)

*************** ***************

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章