起因

由于组内服务器先前 CPU 坏了(难以见到的事情但是被我们遇上了),导致重装了两次系统:

第一次装在了 /dev/sdb 这个机械硬盘内(6.5T)且开了 LVM

第二次装在了 /dev/sda 这个 SSD 里(900G),但没有开 LVM

在第二次装的时候,没有把 /dev/sdb 这个机械硬盘加入到系统内,导致整个系统可用磁盘空间只有不到 900 G

运行 lsblk 如下图所示:

image.png

而现在这个 SSD 的空间完全不够用了,因此需要把原本没挂载的机械硬盘挂上,并启用 LVM 分卷方便日后扩盘。

步骤

格式化

Danger

格式化前保证磁盘内没有需要导出的数据

首先我们使用 fdisk 格式化磁盘:

sudo fdisk /dev/sdb

fdisk 的 TUI 界面首先输入 d(有几个分区就输入几次)

然后输入 g 来创建分区表,输入 n 来创建分区(只需要一个分区),输入 t 来选择文件系统类型,填入 30(选择 Linux LVM,如果没有显示这个,输入 L 来找到 Linux LVM 对应的数字)

最后,输入 w 来格式化并写入

创建 LVM

LVM 需要经过:物理卷 (PV) 卷组 (VG) 逻辑卷 (LV) 三个步骤。

我们将使用整个磁盘 /dev/sdb 来创建物理卷,输入命令:

# 物理卷
# 输出为 Physical volume "/dev/sdb" successfully created.
sudo pvcreate /dev/sdb
 
# 卷组
# 输出为 Volume group "vg0" successfully created
sudo vgcreate v0 /dev/sdb
 
# 逻辑卷
# 输出为 Logical volume "lv0" created.
sudo lvcreate -l 100%FREE vg0 -n lv0

至此,一个可用的 LVM 设备已经创建完成,其完整路径为:/dev/mapper/vg0-lv0/dev/vg0/lv0

格式化逻辑卷并挂载

我们使用最常见的 ext4 文件系统进行格式化,然后将此逻辑卷挂载到 /home 目录下

Attention

为了保证同步问题,在这里我们需要暂停所有使用 /home 目录文件的进程,并使用 root 用户操作

# 格式化
sudo mkfs.ext4 /dev/mapper/vg0-lv0
 
# 挂载
sudo mkdir /mnt/ubuntu
sudo mount /dev/mapper/vg0-lv0 /mnt/ubuntu
 
# 同步 home 目录的内容(所需时间取决于目录大小)
sudo rsync -aAXv /home/ /mnt/ubuntu/
 
# 清理磁盘空间并重新挂载(可以先挂载测试)
sudo rm -rf /home
sudo mount /dev/vg0/lv0 /home

这样,就可以成功将拓展后的磁盘加到 /home/ 目录下:

image.png

加入到开机自动挂载

首先获取 UUID

sudo blkid /dev/mapper/vg0-lv0

然后写入到 /etc/fstab 中:

sudo vim /etc/fstab

在最后一行填上:

UUID=62e24271-55c6-4fc4-8c00-da5833f41d8d  /home  ext4  defaults 	0	2