您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“如何動態在線擴容root根分區大小”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何動態在線擴容root根分區大小”這篇文章吧。
前言
動態在線擴容root根分區大小的相關內容
qemu-img resize yourname.img +10G
首先要用命令增加分區大小,針對qemu-kvm使用以上命令
LVM
情境描述:虛擬機用的磁盤 image 已經擴容,或對應于物理機的話,就是磁盤的容量已經增加了。 然后我們希望把擴大的容量用起來,而且不影響現有的文件系統(不格盤)。
實際使用過程中,我們有時候需要對虛擬機鏡像的硬盤擴容,比如,一開始我們創建虛擬機的時候,以為 20G 的磁盤空間就夠了,可某一次我們可能一次性就要拷貝一個 10G+ 的文件進虛擬機,這時候我們就傻了。
我們通過 VMware 或者 VirtualBox 的圖形界面或者一些命令,我們可以很輕松地擴大虛擬機的磁盤大小,但是,磁盤變大后,系統并不會把它們利用起來。所以這時候,我們就要考慮怎么才能讓這些多出來的空間能夠被虛擬機里的 Linux 系統用起來。
在此之前,先補充一個“磁盤 MBR”的知識:
1個硬盤分為兩個區域,一個是 MBR(主引導分區),一個是數據區域。
MBR 里記錄了兩個重要信息:引導程序與磁盤分區表。
分區表定義了“第 n 個磁盤塊是從第 x 個柱面到第 y 個柱面”,所以,系統每次都取 n 號磁盤塊時,就只會讀取第 x 到第 y 個扇區之間數據。
由于 MBR 容量有限,設計的時候,只設計成4個分區記錄。用起來,可以作4個主分區,或者3個主分區和一個擴展分區。
如果超過四個分區,系統允許在額外的硬盤空間放另一份磁盤分區信息,那就是擴展分區,當硬盤被分出一個擴展分區的時候,實際上擴展分區在 MBR 磁盤分區表中的信息為另外那份分區表的位置。所以,在 擴展分區 里面還要劃分 邏輯分區 才能使用。
每個硬盤最多只允許4個主分區,其他的分區只能放在擴展分區中。
這樣就明白了,因為主分區的個數有限,而且我們希望增加的容量也只是作為存儲使用,所以加在拓展分區 (extended) 就可以了。(而如果你是土豪,總共4個主分區,你還打算這次再用一個主分區的名額,那你可以跳過 Part1,直接看下面的 Part2 了。)
PART1
我們要把增加的容量加在拓展分區(extended)里。要對 extended 分區進行擴容,這個 fdisk 就做不了,需要用 parted 命令(如果系統不自帶 parted,那就從源上裝一個):
parted /dev/xxx
進入交互模式,用 help 查看幫助命令。
一些值得特別說明的命令:
print 查看分區表。留意要操作的分區 ‘Number' 這一項,后面操作要用到。
unit 改變 parted 所用的描述大小的默認單位(比如設為 ‘compact' 就是以 ‘MB' 為單位)。
值得注意的是,如果用 MB/GB 這樣的單位,磁盤 sector 的選取會有誤差的。parted 會為你選最近的 sector,但未必精確。比如 unit 為 MB,那么可能產生 +-500KB 的誤差;如果是 GB,那就可能 +-500MB 的誤差,這就無法容忍了。所以如果是'創建分區'這樣的操作,建議用 ‘MiB' 這樣的單位,而不是 ‘MB'。'MiB' 會是一個精確值,parted 不會像對待 ‘MB' 那樣去找它最近的單元。
resize <minor> <start> <end> 對指定 minor 號(或 Number 號)的分區從 start 位置到 end 位置 這里 start/end 可以是 xxxMB,也可以是負值,表示從磁盤末尾往前多少的位置,比如 -0 就是指到磁盤的末尾。
更多命令詳情請參考: http://www.gnu.org/software/parted/manual/html_chapter/parted_toc.html
實戰:
操作前,print 結果如下。現有磁盤62.3G,只分給 extended 8G,還有50多G根本沒分配。
Number Start End Size Type File system Flags 1 1049kB 256MB 255MB primary ext2 boot 2 257MB 8589MB 8332MB extended 5 257MB 8589MB 8332MB logical lvm
我希望把這50多G全部用于擴大extended。
用命令:
resize 2 257MB -0
其實,只需輸入 resize 2 ,回車,剩下的兩個參數,parted 會通過交互的方式讓你填寫的。-0 表示到那個分區的磁盤末尾。
現在再 print 看一下,
Number Start End Size Type File system Flags 1 1049kB 256MB 255MB primary ext2 boot 2 257MB 62.3GB 62.0GB extended 5 257MB 8589MB 8332MB logical lvm
extended 區已經擴大成功了。
extended 區只是相當于“一塊物理硬盤”,想把增加出來的空間用上,還要把 Number 為 5 的 lv 擴大。
而 logic volumn 的擴大依賴于它所在的 volumn group 的大小。因為 logic volumn 是從 volumn group 里分出來的,如果 volumn group 不變大,那么 logic volumn 是無法超過 volumn group 的。所以 真正是應該把空間加到 volumn group 上去 。
PART2
要增加 volumn group 的大小,先用 fdisk 在 extended 上,利用剛才增加但還未分配出去的磁盤空間創建出一個新分區。通過 fdisk <disk_dev_name>
進入交互模式,可以通過命令 m 查看幫助。首先,輸入 n 創建新分區,然后選擇 l 設置新分區為邏輯分區,接下來依次設置分區的起始、終止位置(默認即完全利用這塊磁盤上剩余的所有空間,所以默認即可)。創建出的分區,編號為 6。可以用命令 p 看一下。
Device Boot Start End Blocks Id System /dev/vda1 * 2048 499711 248832 83 Linux /dev/vda2 501758 121634815 60566529 5 Extended /dev/vda5 501760 16775167 8136704 8e Linux LVM /dev/vda6 16777216 121634815 52428800 83 Linux
接下來,由于我們要用 LVM 來管理這個新分區,我們需要把新分區的管理系統從 Linux 改為 Linux LVM。在交互模式下,輸入命令 t,然后選擇剛才創建的 6,輸入 8e (Linux LVM 的代號)。最后,我們要把剛才的這些操作真正寫入硬盤,輸入命令 w。
至此,我們通過 fdisk -l
已經可以看到 /dev/vda6 被創建出來了。
再執行
vgextend <your_vg_name> /dev/vda6
把新分區加進 volumn group (VG Name 可通過 vgdisplay 查到)。
現在用 vgs 查看 volumn group 的狀態,發現 volumn group 已經變大。
VG #PV #LV #SN Attr VSize VFree jiang51-vg 2 2 0 wz--n- 57.75g 50.03g
然后把這個 volumn group 里面的 logic volumn 變大。
命令(最后那個'Logic Volumn name'可通過 lvdisplay 查到):
lvresize -l +100%FREE <Logic Volumn name>
警告: 如果操作時出現下面這樣的 warning,就說明現在 logic volumn 的總大小還不對,resize 不但不增加空間,反而在縮小空間,如果繼續操作下去,必將丟失數據。應立即停止!按 n 取消。
WARNING: Reducing active and open logical volume to 32.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce root? [y/n]
最后,要更新 logic volumn 上的文件系統,不然從 df 看出文件系統是不知道 logic volumn 變大的。
用命令(其中的 file_system_name 通過 df 找到):
resize2fs -p <file_system_name>
這樣,磁盤 extended 分區的擴容終于完成了。
非LVM
fdisk /dev/sda d n p 1 w resize2fs /dev/sda1 df -h
最重要的一步:“刪除現在的分區,重新分區” 按d刪除現在的分區1,注意:刪除后千萬不要按w保存!直接按n創建新的分區,然后從原有的柱面開始,一直分到最后的尺寸(默認值兩次回車即可,如果之前的分區不是從第一柱面開始,則需要記錄之前分區的起始柱面),新的分區操作完畢后,按w保存。
以上是“如何動態在線擴容root根分區大小”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。