Ubuntu 擴(kuò)展 LVM 根目錄的方法

最近手頭一臺運(yùn)行在 Hyper-V 下面抓數(shù)據(jù)的服務(wù)器 (Ubuntu 16.04) 磁盤空間不夠了,之前也沒有把數(shù)據(jù)單獨(dú)放到一個分區(qū),所以只能想辦法把根目錄給搞大一點(diǎn)。之前沒有處理過這樣的問題,網(wǎng)上搜了很多資料,現(xiàn)在把拓展方法記錄,分享出來。
建議在操作之前做好備份工作

步驟概覽

  1. 調(diào)大物理磁盤
  2. 確定要操作的磁盤
  3. 擴(kuò)展 LVM 邏輯分區(qū)所在的物理拓展分區(qū)
  4. 新增 LVM 邏輯分區(qū)
  5. 新分區(qū)合并到相應(yīng) Volumn Group
  6. 更新文件系統(tǒng)

調(diào)大物理磁盤

虛擬機(jī)關(guān)機(jī),然后直接在虛擬機(jī)管理里面操作。

調(diào)整磁盤大小

現(xiàn)在把磁盤從 100G 調(diào)整到了 300G

確定要操作的磁盤

先看下磁盤使用情況,運(yùn)行命令

root@vm003:~# df -h
Filesystem               Size  Used Avail Use% Mounted on
udev                     3.9G     0  3.9G   0% /dev
tmpfs                    798M  8.6M  789M   2% /run
/dev/mapper/Ubuntu-root   94G   88G  1.9G  98% /
tmpfs                    3.9G     0  3.9G   0% /dev/shm
tmpfs                    5.0M     0  5.0M   0% /run/lock
tmpfs                    3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1                472M  382M   66M  86% /boot
tmpfs                    100K     0  100K   0% /run/lxcfs/controllers
tmpfs                    798M     0  798M   0% /run/user/0

雖然我們已經(jīng)把物理磁盤調(diào)整到了 300G,但是根目錄還是100G的樣子,已用 98%

運(yùn)行命令

root@vm003:~# fdisk -l
Disk /dev/sda: 300 GiB, 322122547200 bytes, 629145600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xa88f1366

Device     Boot   Start       End   Sectors  Size Id Type
/dev/sda1  *       2048    999423    997376  487M 83 Linux
/dev/sda2       1001470 209713151 208711682 99.5G  5 Extended
/dev/sda5       1001472 209713151 208711680 99.5G 8e Linux LVM

Partition 2 does not start on physical sector boundary.


Disk /dev/mapper/Ubuntu-root: 95.5 GiB, 102563315712 bytes, 200318976 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/mapper/Ubuntu-swap_1: 4 GiB, 4294967296 bytes, 8388608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

可以看到 /dev/sda 已經(jīng)確實(shí)被調(diào)整到了300GiB,只是系統(tǒng)還沒用到。
也知道了我們要操作 /dev/sda

擴(kuò)大 LVM 邏輯分區(qū)所在的物理分區(qū)

運(yùn)行命令

root@vm003:~# parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print # 查看分區(qū)
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 322GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:

Number  Start   End    Size   Type      File system  Flags
 1      1049kB  512MB  511MB  primary   ext2         boot
 2      513MB   107GB  107GB  extended
 5      513MB   107GB  107GB  logical                lvm

(parted) resizepart 2 # 調(diào)整 sda2 分區(qū)大小
End?  [107GB]? -0 # 直接充滿
(parted) print # 再次查看
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 322GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:

Number  Start   End    Size   Type      File system  Flags
 1      1049kB  512MB  511MB  primary   ext2         boot
 2      513MB   322GB  322GB  extended
 5      513MB   107GB  107GB  logical                lvm

(parted) q # 完成退出
Information: You may need to update /etc/fstab.

現(xiàn)在我們已經(jīng)把 /dev/sda2 給拓展出來了

新增 LVM 邏輯分區(qū)

運(yùn)行命令

root@vm003:~# fdisk /dev/sda

Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p # 查看現(xiàn)在的分區(qū)情況
Disk /dev/sda: 300 GiB, 322122547200 bytes, 629145600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xa88f1366

Device     Boot   Start       End   Sectors   Size Id Type
/dev/sda1  *       2048    999423    997376   487M 83 Linux
/dev/sda2       1001470 629145599 628144130 299.5G  5 Extended
/dev/sda5       1001472 209713151 208711680  99.5G 8e Linux LVM

Partition 2 does not start on physical sector boundary.

Command (m for help): n # 新增分區(qū),選擇邏輯分區(qū),起止點(diǎn)看情況輸入,默認(rèn)值是填充滿整個磁盤

All space for primary partitions is in use.
Adding logical partition 6
First sector (209715200-629145599, default 209715200):
Last sector, +sectors or +size{K,M,G,T,P} (209715200-629145599, default 629145599):

Created a new partition 6 of type 'Linux' and of size 200 GiB.

Command (m for help): p # 查看新增的分區(qū)
Disk /dev/sda: 300 GiB, 322122547200 bytes, 629145600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xa88f1366

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048    999423    997376   487M 83 Linux
/dev/sda2         1001470 629145599 628144130 299.5G  5 Extended
/dev/sda5         1001472 209713151 208711680  99.5G 8e Linux LVM
/dev/sda6       209715200 629145599 419430400   200G 83 Linux

Partition 2 does not start on physical sector boundary.

Command (m for help): t # 改變分區(qū)類型為 Linux LVM
Partition number (1,2,5,6, default 6): 6 # sda6
Partition type (type L to list all types): 8e # LVM 類型的 Id 代碼

Changed type of partition 'Linux' to 'Linux LVM'.

Command (m for help): p # 再次查看分區(qū)情況
Disk /dev/sda: 300 GiB, 322122547200 bytes, 629145600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xa88f1366

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048    999423    997376   487M 83 Linux
/dev/sda2         1001470 629145599 628144130 299.5G  5 Extended
/dev/sda5         1001472 209713151 208711680  99.5G 8e Linux LVM
/dev/sda6       209715200 629145599 419430400   200G 8e Linux LVM

Partition 2 does not start on physical sector boundary.

Command (m for help): wq # 確認(rèn)沒有問題,保存退出

The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

新分區(qū)合并到相應(yīng) Volumn Group

運(yùn)行命令

root@vm003:~# vgdisplay
  --- Volume group ---
  VG Name               Ubuntu
  System ID
  Format                lvm2

可以看出我們要操作的VG Name 為 Ubuntu,記錄下來。
接著運(yùn)行命令

root@vm003:~# vgextend Ubuntu /dev/sda6 # /dev/sda6 是剛剛增加的 LVM 分區(qū)
  Device /dev/sda6 not found (or ignored by filtering).
  Unable to add physical volume '/dev/sda6' to volume group 'Ubuntu'.

呃,,,提示沒有找到 /dev/sda6 這個設(shè)備,還是重啟一下好了。

root@vm003:~# reboot

重啟后再次執(zhí)行

root@vm003:~# vgextend Ubuntu /dev/sda6 # /dev/sda6 是剛剛增加的 LVM 分區(qū)
  Physical volume "/dev/sda6" successfully created
  Volume group "Ubuntu" successfully extended

再查看一下 Volumn Group 的狀態(tài),運(yùn)行命令

root@vm003:~# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  Ubuntu   2   2   0 wz--n- 299.52g 200.00g

確實(shí)加進(jìn)去了。
然后運(yùn)行

root@vm003:~# lvdisplay
  --- Logical volume ---
  LV Path                /dev/Ubuntu/root
  LV Name                root
  VG Name                Ubuntu

我們知道了 Ubuntu VG 的 LV Path 是 /dev/Ubuntu/root,記錄下來。
然后運(yùn)行

root@vm003:~# lvresize -l +100%FREE /dev/Ubuntu/root # /dev/Ubuntu/root 是 LV Path
  Size of logical volume Ubuntu/root changed from 95.52 GiB (24453 extents) to 295.52 GiB (75652 extents).
  Logical volume root successfully resized.

這就成功啦。

警告: 如果操作時出現(xiàn)下面這樣的 warning,就說明現(xiàn)在 logic volumn 的總大小還不對,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]*

更新文件系統(tǒng)

最后一步,運(yùn)行命令

root@vm003:~# resize2fs -p /dev/mapper/Ubuntu-root # /dev/mapper/Ubuntu-root 是從 df 命令看到的文件系統(tǒng)信息
resize2fs 1.42.13 (17-May-2015)
Filesystem at /dev/mapper/Ubuntu-root is mounted on /; on-line resizing required
old_desc_blocks = 6, new_desc_blocks = 19

The filesystem on /dev/mapper/Ubuntu-root is now 77467648 (4k) blocks long.

這個過程可能會花幾分鐘時間,耐心等待就好了。
然后運(yùn)行 df 命令查看磁盤使用

root@vm003:~# df -h
Filesystem               Size  Used Avail Use% Mounted on
udev                     3.9G     0  3.9G   0% /dev
tmpfs                    798M  8.6M  789M   2% /run
/dev/mapper/Ubuntu-root  291G   88G  191G  32% /
tmpfs                    3.9G     0  3.9G   0% /dev/shm
tmpfs                    5.0M     0  5.0M   0% /run/lock
tmpfs                    3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1                472M  382M   66M  86% /boot
tmpfs                    100K     0  100K   0% /run/lxcfs/controllers
tmpfs                    798M     0  798M   0% /run/user/0

大功告成!

參考

http://luqitao.github.io/2015/12/08/Resize-Image-Rootpartition/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容