Linux系統(tǒng)使用LVM掛載硬盤全過(guò)程
1. 背景
在服務(wù)器運(yùn)維中,經(jīng)常需要掛載或者擴(kuò)展存儲(chǔ)空間。
LVM(Logical Volume Manager)是Linux下強(qiáng)大的磁盤管理工具,支持動(dòng)態(tài)調(diào)整分區(qū)大小、快照、RAID等功能。
本文將詳細(xì)介紹如何在CentOS Linux 7.6上添加一塊新的500GB硬盤,并進(jìn)行LVM配置為以后擴(kuò)容做準(zhǔn)備。
2. 準(zhǔn)備工作
- 操作系統(tǒng):CentOS Linux 7.6
- 新硬盤:500GB
- 分區(qū)表類型:GPT(支持大于2TB的磁盤,并具有更好的兼容性)
- 目標(biāo):將新硬盤初始化為L(zhǎng)VM,并掛載到
/data目錄
3. 操作過(guò)程
3.1. 確認(rèn)硬盤
首先,用lsblk命令檢查系統(tǒng)是否識(shí)別了新磁盤:
[hljkjc@hljkjc ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 200G 0 disk ├─vda1 253:1 0 4G 0 part [SWAP] └─vda2 253:2 0 196G 0 part / vdb 253:16 0 500G 0 disk
切換到root賬號(hào)操作,或者用fdisk -l命令查看:
[hljkjc@hljkjc ~]$ fdisk -l Disk /dev/vda: 214.7 GB, 214748364800 bytes, 419430400 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000bcc64 Device Boot Start End Blocks Id System /dev/vda1 2048 8390655 4194304 82 Linux swap / Solaris /dev/vda2 * 8390656 419430366 205519855+ 83 Linux Disk /dev/vdb: 536.9 GB, 536870912000 bytes, 1048576000 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
可以看到系統(tǒng)新添加的物理硬盤為/dev/vdb,容量為536.9GiB。
3.2. 創(chuàng)建新分區(qū)
使用 fdisk 或 parted 創(chuàng)建 LVM 分區(qū)(以 fdisk 為例):
fdisk /dev/vdb
在交互界面中按順序輸入:
- 1)
n→ 新建分區(qū); - 2)
p→ 創(chuàng)建主分區(qū); - 3)
1→ 分區(qū)號(hào)(默認(rèn)1); - 4) 起始扇區(qū)(直接回車,默認(rèn));
- 5)結(jié)束扇區(qū)(直接回車,使用全部空間);
- 6)
t→ 修改分區(qū)類型 ; - 7)
8e→ 設(shè)置為 LVM 類型(Linux LVM); - 8)
w→ 保存并退出
[root@hljkjc hljkjc]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xa7b107d2.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-1048575999, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-1048575999, default 1048575999):
Using default value 1048575999
Partition 1 of type Linux and of size 500 GiB is set
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): L
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx
5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data
6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
1e Hidden W95 FAT1 80 Old Minix
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@hljkjc hljkjc]#
完成驗(yàn)證區(qū)
[root@hljkjc hljkjc]# fdisk -l /dev/vdb Disk /dev/vdb: 536.9 GB, 536870912000 bytes, 1048576000 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xa7b107d2 Device Boot Start End Blocks Id System /dev/vdb1 2048 1048575999 524286976 8e Linux LVM
3.3. 創(chuàng)建物理卷(PV)
將 /dev/vdb 初始化為L(zhǎng)VM物理卷:
[root@hljkjc hljkjc]#pvcreate /dev/vdb1 bash: pvcreate: command not found # 安裝lvm2 [root@hljkjc hljkjc]#yum install lvm2 # 安裝成功后重新執(zhí)行 `pvcreate /dev/vdb1` [root@hljkjc hljkjc]# pvcreate /dev/vdb1 Physical volume "/dev/vdb1" successfully created. [root@hljkjc hljkjc]#
查看PV:
[root@hljkjc hljkjc]# pvcreate /dev/vdb1 Physical volume "/dev/vdb1" successfully created. [root@hljkjc hljkjc]# pvdisplay "/dev/vdb1" is a new physical volume of "<500.00 GiB" --- NEW Physical volume --- PV Name /dev/vdb1 VG Name PV Size <500.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 9y6duM-vEfU-QjqW-ClfA-CPG1-xm9T-XqZHQC
3.4. 創(chuàng)建卷組(VG)
將物理卷加入卷組,卷組名為 data_vg:
[root@hljkjc hljkjc]# vgcreate data_vg /dev/vdb1 Volume group "data_vg" successfully created [root@hljkjc hljkjc]#
查看VG:
[root@hljkjc hljkjc]# vgdisplay --- Volume group --- VG Name data_vg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size <500.00 GiB PE Size 4.00 MiB Total PE 127999 Alloc PE / Size 0 / 0 Free PE / Size 127999 / <500.00 GiB VG UUID gMQOlE-G48X-DV0k-fFRs-picr-n3JR-UrFbel [root@hljkjc hljkjc]#
3.5. 創(chuàng)建邏輯卷(LV)
在卷組中創(chuàng)建邏輯卷,這里命名為 data_lv,大小 100%VG:
[root@hljkjc hljkjc]# lvcreate -l 100%FREE -n data_lv data_vg Logical volume "data_lv" created. [root@hljkjc hljkjc]#
查看LV:
[root@hljkjc hljkjc]# lvdisplay --- Logical volume --- LV Path /dev/data_vg/data_lv LV Name data_lv VG Name data_vg LV UUID De7jjl-UoF3-LfsC-XS6f-AOJ9-wy3D-S446k1 LV Write Access read/write LV Creation host, time hljkjc, 2025-09-12 14:29:03 +0800 LV Status available # open 0 LV Size <500.00 GiB Current LE 127999 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 252:0 [root@hljkjc hljkjc]#
3.6. 格式化并掛載
3.6.1. 格式化
使用 ext4 或 xfs 格式化LV,這里采用 xfs 進(jìn)行格式化操作:
[root@hljkjc hljkjc]# mkfs.xfs /dev/data_vg/data_lv
meta-data=/dev/data_vg/data_lv isize=512 agcount=4, agsize=32767744 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=131070976, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=63999, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@hljkjc hljkjc]#
3.6.2. 創(chuàng)建掛載點(diǎn)并掛載
[root@hljkjc hljkjc]# mkdir /data [root@hljkjc hljkjc]# mount /dev/data_vg/data_lv /data [root@hljkjc hljkjc]# df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 16G 0 16G 0% /dev tmpfs tmpfs 16G 0 16G 0% /dev/shm tmpfs tmpfs 16G 8.8M 16G 1% /run tmpfs tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/vda2 ext4 193G 3.0G 182G 2% / tmpfs tmpfs 3.2G 0 3.2G 0% /run/user/0 tmpfs tmpfs 3.2G 0 3.2G 0% /run/user/1000 /dev/mapper/data_vg-data_lv xfs 500G 33M 500G 1% /data [root@hljkjc hljkjc]#

3.6.3. 開(kāi)機(jī)自動(dòng)掛載
備份/etc/fstab文件
cp /etc/fstab{,.bak}
編輯 /etc/fstab:
[root@hljkjc hljkjc]# echo "/dev/data_vg/data_lv /data xfs defaults 0 0" >> /etc/fstab [root@hljkjc hljkjc]#
重啟服務(wù)器后驗(yàn)證:
[root@hljkjc hljkjc]# mount -a [root@hljkjc hljkjc]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 16G 0 16G 0% /dev tmpfs 16G 0 16G 0% /dev/shm tmpfs 16G 8.7M 16G 1% /run tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/vda2 193G 3.0G 182G 2% / /dev/mapper/data_vg-data_lv 500G 33M 500G 1% /data tmpfs 3.2G 0 3.2G 0% /run/user/1000 [root@hljkjc hljkjc]# df -h /data Filesystem Size Used Avail Use% Mounted on /dev/mapper/data_vg-data_lv 500G 33M 500G 1% /data [root@hljkjc hljkjc]#
關(guān)鍵命令總結(jié)
| 名稱 | 命令示例 |
|---|---|
| 確認(rèn)磁盤 | lsblk或 fdisk -l |
| 創(chuàng)建分區(qū) | fdisk /dev/sda→ 設(shè)置類型 8e |
| 創(chuàng)建物理卷 | pvcreate /dev/vdb1 |
| 創(chuàng)建卷組 | vgcreate data_vg /dev/vdb1 |
| 創(chuàng)建邏輯卷 | lvcreate -l 100%FREE -n data_lv data_vg |
| 格式化 | mkfs.xfs /dev/data_vg/data_lv |
| 掛載 | mount /dev/data_vg/data_lv /data |
| 開(kāi)機(jī)掛載 | echo “…” >> /etc/fstab |
注意事項(xiàng)
1)如果磁盤已存在數(shù)據(jù),操作前請(qǐng)備份。
2)如需調(diào)整分區(qū)大?。ㄈ绶峙洳糠挚臻g),可在 fdisk 中指定結(jié)束扇區(qū)。
3)LVM 允許動(dòng)態(tài)擴(kuò)展,未來(lái)可通過(guò) lvextend 和 resize2fs 調(diào)整容量。
完成上述步驟后,500GB 磁盤將作為 LVM 邏輯卷掛載到 /data 并可供使用。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Apache rewrite的重寫相關(guān)的參數(shù)說(shuō)明
Apache的rewrite的重寫非常常用,現(xiàn)總結(jié)了一下.2008-08-08
CentOS 7下修改默認(rèn)網(wǎng)卡名為eth0的兩種方法
今天又從Centos 6.5裝回了Centos 7,畢竟還是要順應(yīng)潮流嘛。安裝完成之后,發(fā)現(xiàn)發(fā)現(xiàn)CentOS 7默認(rèn)的網(wǎng)卡名稱是eno16777736,所以想著改回eth0,下面這篇文章主要介紹了CentOS 7下修改默認(rèn)網(wǎng)卡名為eth0的兩種方法,需要的朋友可以參考借鑒。2017-02-02
socket unix domain IPC的實(shí)例代碼
下面小編就為大家?guī)?lái)一篇socket unix domain IPC的實(shí)例代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12
VMware14.0.0版本虛擬機(jī)安裝Ubuntu16.04 LTS版本Linux系統(tǒng)圖文教程
這篇文章主要為大家詳細(xì)介紹了VMware14.0.0版本虛擬機(jī)安裝Ubuntu16.04 LTS版本Linux系統(tǒng)圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
Linux?進(jìn)程管理工具之Supervisor安裝配置
這篇文章主要為大家介紹了Linux?進(jìn)程管理工具之Supervisor使用實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
Linux上通過(guò)SSH掛載遠(yuǎn)程文件系統(tǒng)方法詳解
在本篇內(nèi)容里小編給大家整理了關(guān)于在Linux上通過(guò)SSH掛載遠(yuǎn)程文件系統(tǒng)的相關(guān)知識(shí)點(diǎn),需要的朋友們跟著學(xué)習(xí)下。2019-03-03
Linux?SNMP團(tuán)體號(hào)配置指定IP地址訪問(wèn)的方法
這篇文章主要介紹了如何配置SNMP服務(wù)以限制對(duì)服務(wù)器的訪問(wèn),包括使用snmpd.conf文件和iptables防火墻,建議使用復(fù)雜的團(tuán)體號(hào),實(shí)施最小權(quán)限原則,并限制IP地址,通過(guò)這些方法,可以顯著提高SNMP服務(wù)的安全性,需要的朋友可以參考下2025-11-11

