歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux如何對lvm根分區進行縮容

我們都知道lvm可以對文件系統進行在線擴容,功能非常方便,但如果我們某個分區的空間當初分得太大,或者後期使用過程中有需求對某個目錄進行單獨分區的話,就需要使用lvm對其進行縮容,但lvm並不支持在線縮容,需要在卸載分區的前提下才能操作,如果恰巧需要被縮容的是系統從開啟就必須一直處於掛載狀態根分區,該怎麼辦?

本篇文章示例:

系統在安裝好之後,忘記創建單獨的swap分區,又只有根分區有充足的空間,故需要從系統根分區分出空間,再創建swap分區。
解決辦法
1、 通過BIOS設置光盤啟動,重啟服務器進入rescue救援模式;

2、     選擇語言、鍵盤,English、US,並選擇Local CD/DVD;




 
3、 由於lvm不支持在線縮容,所以不選擇讓rescue模式自動掛載系統根分區至/mnt/sysimage,而是選擇skip跳過,直接開啟shell;


 
4、 由於rescue模式下,lvm2服務並未自動開啟,所以需要手動激活之後才可見,如下圖,激活之後就可以看到系統根分區lv_root;
# lvm vgchange –a y

 
5、     縮容之前最好對分區進行強行掃描並檢查;

 
6、 實驗環境的lv_root分區有18G,假設我們需求4G空間作為swap分區,則先通過resize2fs命令將lv_root分區的文件系統縮小至14G,然後再通過lvm lvresize命令將lv_root分區的磁盤空間縮小至14G,最後再次對文件系統進行強行掃描並檢查,這樣就成功使整個卷組空出4G的空間;

 
7、 重啟後正常進入系統,進行常規地swap分區創建步驟即可,非本文章重點,則略。
 
小結

解決問題的思路:

1、 當發現lvm不支持在線擴容的時候,首先應該聯想到“什麼時候才能使根分區不處於掛載狀態呢?”,自然就會想到rescue模式了,並且不要使用自動掛載根分區至/mnt/sysimage目錄下;

2、 進入rescue模式後,發現在/dev目錄下根本看不到卷組vg和邏輯卷lv,此時就會聯想到“rescue”為精簡模式,應該是默認就沒有開啟lvm2服務,所以需要手動激活服務之後,才能查看到;

3、 通過lvm vgchange –a y命令激活之後即可看到邏輯卷的信息,然後按照正常的方式對分區進行縮容的步驟,但記得當系統提示某些操作邏輯卷的命令不存在時,需要在命令前加上lvm這個命令指定一下;

4、 此時如果恰巧平常習慣使用lvreduce命令指定分區減少多少容量的方式來進行縮容的話,在目前的環境下是不成功的,而必須使用lvresize命令重新定義分區的總大小(與空間減少之前的總大小之差即為縮容的空間),才能成功,這個可能是系統的bug,因為理論上lvreduce與lvresize基本沒啥區別。

Copyright © Linux教程網 All Rights Reserved