值得注意的是,如果用 MB/GB 這樣的單位,磁盤 sector 的選取會(huì)有誤差的。parted 會(huì)為你選最近的 sector,但未必精確。比如 unit 為 MB,那么可能產(chǎn)生 +-500KB 的誤差;如果是 GB,那就可能 +-500MB 的誤差,這就無(wú)法容忍了。所以如果是’創(chuàng)建分區(qū)’這樣的操作,建議用 ‘MiB’ 這樣的單位,而不是 ‘MB’。’MiB’ 會(huì)是一個(gè)精確值,parted 不會(huì)像對(duì)待 ‘MB’ 那樣去找它最近的單元。
更多命令詳情請(qǐng)參考: http://www.gnu.org/software/parted/manual/html_chapter/parted_toc.html
實(shí)戰(zhàn):
操作前,print 結(jié)果如下?,F(xiàn)有磁盤62.3G,只分給 extended 8G,還有50多G根本沒(méi)分配。
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全部用于擴(kuò)大extended。
用命令:
resize 2 257MB -0
其實(shí),只需輸入 resize 2 ,回車,剩下的兩個(gè)參數(shù),parted 會(huì)通過(guò)交互的方式讓你填寫的。-0 表示到那個(gè)分區(qū)的磁盤末尾。
現(xiàn)在再 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 區(qū)已經(jīng)擴(kuò)大成功了。
extended 區(qū)只是相當(dāng)于“一塊物理硬盤”,想把增加出來(lái)的空間用上,還要把 Number 為 5 的 lv 擴(kuò)大。
而 logic volumn 的擴(kuò)大依賴于它所在的 volumn group 的大小。因?yàn)?logic volumn 是從 volumn group 里分出來(lái)的,如果 volumn group 不變大,那么 logic volumn 是無(wú)法超過(guò) volumn group 的。所以 真正是應(yīng)該把空間加到 volumn group 上去 。
PART2
要增加 volumn group 的大小,先用 fdisk 在 extended 上,利用剛才增加但還未分配出去的磁盤空間創(chuàng)建出一個(gè)新分區(qū)。通過(guò) fdisk <disk_dev_name>
進(jìn)入交互模式,可以通過(guò)命令 m 查看幫助。首先,輸入 n 創(chuàng)建新分區(qū),然后選擇 l 設(shè)置新分區(qū)為邏輯分區(qū),接下來(lái)依次設(shè)置分區(qū)的起始、終止位置(默認(rèn)即完全利用這塊磁盤上剩余的所有空間,所以默認(rèn)即可)。創(chuàng)建出的分區(qū),編號(hào)為 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
接下來(lái),由于我們要用 LVM 來(lái)管理這個(gè)新分區(qū),我們需要把新分區(qū)的管理系統(tǒng)從 Linux 改為 Linux LVM。在交互模式下,輸入命令 t,然后選擇剛才創(chuàng)建的 6,輸入 8e (Linux LVM 的代號(hào))。最后,我們要把剛才的這些操作真正寫入硬盤,輸入命令 w。
至此,我們通過(guò) fdisk -l
已經(jīng)可以看到 /dev/vda6 被創(chuàng)建出來(lái)了。
再執(zhí)行
vgextend <your_vg_name> /dev/vda6
把新分區(qū)加進(jìn) volumn group (VG Name 可通過(guò) vgdisplay 查到)。
現(xiàn)在用 vgs 查看 volumn group 的狀態(tài),發(fā)現(xiàn) volumn group 已經(jīng)變大。
VG #PV #LV #SN Attr VSize VFree jiang51-vg 2 2 0 wz--n- 57.75g 50.03g
然后把這個(gè) volumn group 里面的 logic volumn 變大。
命令(最后那個(gè)’Logic Volumn name’可通過(guò) lvdisplay 查到):
lvresize -l +100%FREE <Logic Volumn name>
警告: 如果操作時(shí)出現(xiàn)下面這樣的 warning,就說(shuō)明現(xiàn)在 logic volumn 的總大小還不對(duì),resize 不但不增加空間,反而在縮小空間,如果繼續(xù)操作下去,必將丟失數(shù)據(jù)。應(yīng)立即停止!按 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 上的文件系統(tǒng),不然從 df 看出文件系統(tǒng)是不知道 logic volumn 變大的。
用命令(其中的 file_system_name 通過(guò) df 找到):
resize2fs -p <file_system_name>
這樣,磁盤 extended 分區(qū)的擴(kuò)容終于完成了。
非LVM
fdisk /dev/sda d n p 1 w resize2fs /dev/sda1 df -h
最重要的一步:“刪除現(xiàn)在的分區(qū),重新分區(qū)” 按d刪除現(xiàn)在的分區(qū)1,注意:刪除后千萬(wàn)不要按w保存!直接按n創(chuàng)建新的分區(qū),然后從原有的柱面開(kāi)始,一直分到最后的尺寸(默認(rèn)值兩次回車即可,如果之前的分區(qū)不是從第一柱面開(kāi)始,則需要記錄之前分區(qū)的起始柱面),新的分區(qū)操作完畢后,按w保存。