代码改变世界

给虚拟机挂载一块硬盘(以ubuntu24.04为例)

2024-10-28 14:31  猎手家园  阅读(419)  评论(0编辑  收藏  举报

一、新增、分区、格式化新盘

1、首先在虚拟机中增加一块新硬盘(500G)

例如:Vmware、Exsi 软件,增加完成后,查看一下:

root@ubuntu:~# lsblk -f
NAME                      FSTYPE      FSVER    LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                                        
├─sda1                    vfat        FAT32          0CC8-757B                                   1G     1% /boot/efi
├─sda2                    ext4        1.0            602d4169-741c-47c2-9d63-686cc0a09f0d      1.7G     5% /boot
└─sda3                    LVM2_member LVM2 001       AfCID6-QHNz-OEcg-KXdj-bVeS-KCMK-DQ2fwE                
  └─ubuntu--vg-ubuntu--lv ext4        1.0            8b41073e-f1ba-412e-9eb2-8127713f827d     84.4G     7% /
sdb                                                                                                        
sr0                                                                                                        

其中sdb就是新增加的硬盘。

 

可以查看更详细的硬盘情况

root@ubuntu:~# fdisk -l
Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: Virtual disk    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A226A3F1-5348-41F9-A64B-0F2F00938DD1

Device       Start       End   Sectors  Size Type
/dev/sda1     2048   2203647   2201600    1G EFI System
/dev/sda2  2203648   6397951   4194304    2G Linux filesystem
/dev/sda3  6397952 209713151 203315200 96.9G Linux filesystem


Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 96.95 GiB, 104094236672 bytes, 203309056 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 /dev/sdb: 500 GiB, 536870912000 bytes, 1048576000 sectors
Disk model: Virtual disk    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

请查标红的一行。

 

2、新硬盘分区(分区表)

root@ubuntu:~# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.39.3).
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.
Created a new DOS (MBR) disklabel with disk identifier 0x7bfe4259.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-1048575999, default 2048): <直接回车>
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-1048575999, default 1048575999): <直接回车>

Created a new partition 1 of type 'Linux' and of size 500 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

 

3、查看新盘分区结果

root@ubuntu:~# lsblk -f
NAME                      FSTYPE      FSVER    LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                                        
├─sda1                    vfat        FAT32          0CC8-757B                                   1G     1% /boot/efi
├─sda2                    ext4        1.0            602d4169-741c-47c2-9d63-686cc0a09f0d      1.7G     5% /boot
└─sda3                    LVM2_member LVM2 001       AfCID6-QHNz-OEcg-KXdj-bVeS-KCMK-DQ2fwE                
  └─ubuntu--vg-ubuntu--lv ext4        1.0            8b41073e-f1ba-412e-9eb2-8127713f827d     84.4G     7% /
sdb                                                                                                        
└─sdb1                                                                                                     
sr0                      

说明分区成功了

 

4、将新的分区格式化成 ext4 格式

root@ubuntu:~# mkfs -t ext4 /dev/sdb1
mke2fs 1.47.0 (5-Feb-2023)
Creating filesystem with 131071744 4k blocks and 32768000 inodes
Filesystem UUID: 8fd776d3-9be5-4a59-8ce4-504bb14849e2
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
    102400000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done

记住新的UUID,说明格式化成功。

 

查看一下格式化结果:

root@ubuntu:~# lsblk -f
NAME                      FSTYPE      FSVER    LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                                        
├─sda1                    vfat        FAT32          0CC8-757B                                   1G     1% /boot/efi
├─sda2                    ext4        1.0            602d4169-741c-47c2-9d63-686cc0a09f0d      1.7G     5% /boot
└─sda3                    LVM2_member LVM2 001       AfCID6-QHNz-OEcg-KXdj-bVeS-KCMK-DQ2fwE                
  └─ubuntu--vg-ubuntu--lv ext4        1.0            8b41073e-f1ba-412e-9eb2-8127713f827d     84.4G     7% /
sdb                                                                                                        
└─sdb1                    ext4        1.0            8fd776d3-9be5-4a59-8ce4-504bb14849e2                  
sr0                           

 

二、挂载新盘

1、查看卷分组

 

root@ubuntu:~# vgdisplay -v
  --- Volume group ---
  VG Name               ubuntu-vg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <96.95 GiB
  PE Size               4.00 MiB
  Total PE              24818
  Alloc PE / Size       24818 / <96.95 GiB
  Free  PE / Size       0 / 0   
  VG UUID               O814Hq-CEoa-S0E4-Vl40-bNre-XJV4-cOdaSv
   
  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/ubuntu-lv
  LV Name                ubuntu-lv
  VG Name                ubuntu-vg
  LV UUID                y19FTz-xW8K-A5Mn-g0jD-HVQY-06mh-RRb2RQ
  LV Write Access        read/write
  LV Creation host, time ubuntu-server, 2024-10-26 03:23:59 +0000
  LV Status              available
  # open                 1
  LV Size                <96.95 GiB
  Current LE             24818
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0
   
  --- Physical volumes ---
  PV Name               /dev/sda3     
  PV UUID               AfCID6-QHNz-OEcg-KXdj-bVeS-KCMK-DQ2fwE
  PV Status             allocatable
  Total PE / Free PE    24818 / 0

先保存一下信息,一会做对比。

 

2、创建物理卷

root@ubuntu:~# pvcreate /dev/sdb1
WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y
  Wiping ext4 signature on /dev/sdb1.
  Physical volume "/dev/sdb1" successfully created.

 

查看刚刚创建的物理卷:

root@ubuntu:~# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               ubuntu-vg
  PV Size               <96.95 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              24818
  Free PE               0
  Allocated PE          24818
  PV UUID               AfCID6-QHNz-OEcg-KXdj-bVeS-KCMK-DQ2fwE
   
  "/dev/sdb1" is a new physical volume of "<500.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               <500.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               btJKcM-RoX6-h6Tu-KSmI-7Vr5-ec3u-LstLU5

 

给一个 VG Name,把新盘分成一个组里:

root@ubuntu:~# vgextend ubuntu-vg /dev/sdb1
  Volume group "ubuntu-vg" successfully extended
root@ubuntu:~# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               ubuntu-vg
  PV Size               <96.95 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              24818
  Free PE               0
  Allocated PE          24818
  PV UUID               AfCID6-QHNz-OEcg-KXdj-bVeS-KCMK-DQ2fwE
   
  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               ubuntu-vg
  PV Size               <500.00 GiB / not usable 3.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              127999
  Free PE               127999
  Allocated PE          0
  PV UUID               btJKcM-RoX6-h6Tu-KSmI-7Vr5-ec3u-LstLU5

 

三、执行挂载操作

方案一:挂载到 ubuntu-lv

适用场景:原数据都保存在系统分区中,现在系统分区空间不够使用了,需要扩容。

1、扩展逻辑卷(下面往 100G 现有硬盘上挂载 300G 硬盘的输出信息)

root@ubuntu:~# lvextend -L +300G /dev/ubuntu-vg/ubuntu-lv
Insufficient free space:25688 extents needed, but only 25599 available

我们虽然加了500G硬盘,但是实际上要小一点,因此改小一点:

(其实上面也提示了:PV Size               <300.00 GiB / not usable 3.00 MiB)

root@ubuntu:~# lvextend -L +299.99G /dev/ubuntu-vg/ubuntu-lv
  Rounding size to boundary between physical extents: 299.99 GiB.
  Size of logical volume ubuntu-vg/ubuntu-lv changed from <96.95 GiB (24818 extents) to <396.94 GiB (101616 extents).
  Logical volume ubuntu-vg/ubuntu-lv successfully resized.

 

2、扩容

root@ubuntu:~# resize2fs /dev/ubuntu-vg/ubuntu-lv
resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
old_desc_blocks = 13, new_desc_blocks = 50
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 104054784 (4k) blocks long.

 

3、查看扩容后的情况

root@ubuntu:~# df -h
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              197M  1.1M  196M   1% /run
efivarfs                           256K   64K  188K  26% /sys/firmware/efi/efivars
/dev/mapper/ubuntu--vg-ubuntu--lv  391G  4.5G  370G   2% /
tmpfs                              984M     0  984M   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
/dev/sda2                          2.0G   96M  1.7G   6% /boot
/dev/sda1                          1.1G  6.2M  1.1G   1% /boot/efi
tmpfs                              197M   12K  197M   1% /run/user/0

 

方案二:挂载到新建的逻辑卷上

适用场景:系统盘和数据盘分离的场景

 1、创建新的逻辑卷(创建一个mysql数据库存储盘)

root@ubuntu:~# lvcreate -L 499.99G -n mysql-data ubuntu-vg
  Rounding up size to full physical extent 499.99 GiB
  Logical volume "mysql-data" created.

前面提到了,实际大小小于500G

 

2、创建挂载目录

mkdir -p /mnt/mysql-data

 

3、格式化文件系统

root@ubuntu:~# mkfs.ext4 /dev/ubuntu-vg/mysql-data
mke2fs 1.47.0 (5-Feb-2023)
Creating filesystem with 131069952 4k blocks and 32768000 inodes
Filesystem UUID: 96b2153d-ee57-4ae3-a4e4-0931f1e30e9b
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
    102400000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done

 

格式化前:

root@ubuntu:~# lsblk -f
NAME                       FSTYPE      FSVER    LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                                         
├─sda1                     vfat        FAT32          0CC8-757B                                   1G     1% /boot/efi
├─sda2                     ext4        1.0            602d4169-741c-47c2-9d63-686cc0a09f0d      1.7G     5% /boot
└─sda3                     LVM2_member LVM2 001       AfCID6-QHNz-OEcg-KXdj-bVeS-KCMK-DQ2fwE                
  └─ubuntu--vg-ubuntu--lv  ext4        1.0            8b41073e-f1ba-412e-9eb2-8127713f827d     84.4G     7% /
sdb                                                                                                         
└─sdb1                     LVM2_member LVM2 001       btJKcM-RoX6-h6Tu-KSmI-7Vr5-ec3u-LstLU5                
  └─ubuntu--vg-mysql--data                                                                                  
sr0                       

格式化后:

root@ubuntu:~# lsblk -f
NAME                       FSTYPE      FSVER    LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                                         
├─sda1                     vfat        FAT32          0CC8-757B                                   1G     1% /boot/efi
├─sda2                     ext4        1.0            602d4169-741c-47c2-9d63-686cc0a09f0d      1.7G     5% /boot
└─sda3                     LVM2_member LVM2 001       AfCID6-QHNz-OEcg-KXdj-bVeS-KCMK-DQ2fwE                
  └─ubuntu--vg-ubuntu--lv  ext4        1.0            8b41073e-f1ba-412e-9eb2-8127713f827d     84.4G     7% /
sdb                                                                                                         
└─sdb1                     LVM2_member LVM2 001       btJKcM-RoX6-h6Tu-KSmI-7Vr5-ec3u-LstLU5                
  └─ubuntu--vg-mysql--data ext4        1.0            96b2153d-ee57-4ae3-a4e4-0931f1e30e9b                  
sr0                            

 

4、将新的逻辑卷挂载到目录下

mount /dev/ubuntu-vg/mysql-data /mnt/mysql-data

 

5、配置开机自动挂载

vim /etc/fstab

# 开机自动挂载数据目录
/dev/ubuntu-vg/mysql-data   /mnt/mysql-data   ext4   defaults   0   2

 

6、查看挂载结果

root@ubuntu:~# lvdisplay
  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/ubuntu-lv
  LV Name                ubuntu-lv
  VG Name                ubuntu-vg
  LV UUID                y19FTz-xW8K-A5Mn-g0jD-HVQY-06mh-RRb2RQ
  LV Write Access        read/write
  LV Creation host, time ubuntu-server, 2024-10-26 03:23:59 +0000
  LV Status              available
  # open                 1
  LV Size                <96.95 GiB
  Current LE             24818
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0
   
  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/mysql-data
  LV Name                mysql-data
  VG Name                ubuntu-vg
  LV UUID                mgioDS-VQDX-wutT-hBgL-gbQB-dCFH-n2iGmD
  LV Write Access        read/write
  LV Creation host, time ubuntu, 2024-10-28 07:54:24 +0000
  LV Status              available
  # open                 1
  LV Size                499.99 GiB
  Current LE             127998
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1
root@ubuntu:~# lsblk -f
NAME                       FSTYPE      FSVER    LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                                         
├─sda1                     vfat        FAT32          0CC8-757B                                   1G     1% /boot/efi
├─sda2                     ext4        1.0            602d4169-741c-47c2-9d63-686cc0a09f0d      1.7G     5% /boot
└─sda3                     LVM2_member LVM2 001       AfCID6-QHNz-OEcg-KXdj-bVeS-KCMK-DQ2fwE                
  └─ubuntu--vg-ubuntu--lv  ext4        1.0            8b41073e-f1ba-412e-9eb2-8127713f827d     84.4G     7% /
sdb                                                                                                         
└─sdb1                     LVM2_member LVM2 001       btJKcM-RoX6-h6Tu-KSmI-7Vr5-ec3u-LstLU5                
  └─ubuntu--vg-mysql--data ext4        1.0            96b2153d-ee57-4ae3-a4e4-0931f1e30e9b    466.1G     0% /mnt/mysql-data
sr0                            
root@ubuntu:~# df -h
Filesystem                          Size  Used Avail Use% Mounted on
tmpfs                               1.6G  1.2M  1.6G   1% /run
efivarfs                            256K   64K  188K  26% /sys/firmware/efi/efivars
/dev/mapper/ubuntu--vg-ubuntu--lv    96G  6.4G   85G   8% /
tmpfs                               7.9G     0  7.9G   0% /dev/shm
tmpfs                               5.0M     0  5.0M   0% /run/lock
/dev/sda2                           2.0G   96M  1.7G   6% /boot
/dev/sda1                           1.1G  6.2M  1.1G   1% /boot/efi
tmpfs                               1.6G   12K  1.6G   1% /run/user/0
/dev/mapper/ubuntu--vg-mysql--data  492G   28K  467G   1% /mnt/mysql-data

结束!