前言
最近手頭一臺(tái)運(yùn)行在 Hyper-V 下面抓數(shù)據(jù)的服務(wù)器 (Ubuntu 16.04) 磁盤(pán)空間不夠了,之前也沒(méi)有把數(shù)據(jù)單獨(dú)放到一個(gè)分區(qū),所以只能想辦法把根目錄給搞大一點(diǎn)。之前沒(méi)有處理過(guò)這樣的問(wèn)題,網(wǎng)上搜了很多資料,現(xiàn)在把拓展方法記錄,分享出來(lái)。
建議在操作之前做好備份工作
步驟概覽
- 調(diào)大物理磁盤(pán)
- 確定要操作的磁盤(pán)
- 擴(kuò)展 LVM 邏輯分區(qū)所在的物理拓展分區(qū)
- 新增 LVM 邏輯分區(qū)
- 新分區(qū)合并到相應(yīng) Volumn Group
- 更新文件系統(tǒng)
調(diào)大物理磁盤(pán)
虛擬機(jī)關(guān)機(jī),然后直接在虛擬機(jī)管理里面操作。

現(xiàn)在把磁盤(pán)從 100G 調(diào)整到了 300G
確定要操作的磁盤(pán)
先看下磁盤(pán)使用情況,運(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)把物理磁盤(pán)調(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)還沒(méi)用到。
也知道了我們要操作 /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 給拓展出來(lái)了
新增 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)值是填充滿整個(gè)磁盤(pá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)沒(méi)有問(wè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,記錄下來(lái)。
接著運(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'.
呃,,,提示沒(méi)有找到 /dev/sda6 這個(gè)設(shè)備,還是重啟一下好了。
重啟后再次執(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,記錄下來(lái)。
然后運(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.
這就成功啦。
警告: 如果操作時(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]*
更新文件系統(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.
這個(gè)過(guò)程可能會(huì)花幾分鐘時(shí)間,耐心等待就好了。
然后運(yùn)行 df 命令查看磁盤(pá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 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
大功告成!
參考:
https://www.jb51.net/article/139565.htm
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。