linux挂载大于2t硬盘分区

基础概念

  1. LVM(逻辑卷管理)
    • LVM是一种灵活的磁盘管理机制,允许动态调整磁盘分区的大小。
    • 它通过将物理磁盘组织成卷组,并在这些卷组上创建逻辑卷来实现。
  • GPT(GUID分区表)
    • GPT是一种现代的分区表格式,支持大于2TB的磁盘分区。
    • 相比于传统的MBR(主引导记录),GPT提供了更好的扩展性和安全性。

优势

  • 灵活性:LVM允许在不重新格式化磁盘的情况下调整分区大小。
  • 扩展性:GPT支持更大的磁盘容量,适合现代大容量存储需求。
  • 可靠性:GPT提供了更好的数据完整性和错误恢复机制。

类型

  • 物理卷(PV):LVM中的基本存储单元,可以是整个硬盘或硬盘的一部分。
  • 卷组(VG):由一个或多个物理卷组成,用于创建逻辑卷。
  • 逻辑卷(LV):在卷组上创建的分区,可以动态调整大小。

应用场景

  • 大型数据存储:适用于需要存储大量数据的服务器和应用。
  • 数据库系统:数据库通常需要大容量且可扩展的存储空间。
  • 备份和归档:用于长期存储大量备份文件和归档数据。

操作步骤

1. 准备硬盘

假设你有一块大于2TB的硬盘(例如 /dev/sdb),首先需要将其转换为GPT分区表:

parted /dev/sdb mklabel gpt
2. 创建分区

在GPT分区表上创建一个主分区:

parted /dev/sdb mkpart primary 1MiB 100%
3. 初始化LVM

将新创建的分区转换为物理卷:

pvcreate /dev/sdb1
4. 创建卷组

创建一个新的卷组,并将物理卷添加到其中:

vgcreate my_volume_group /dev/sdb1
5. 创建逻辑卷

在卷组上创建一个逻辑卷:

lvcreate -l 100%FREE -n my_logical_volume my_volume_group
6. 格式化逻辑卷

使用适当的文件系统格式化逻辑卷:

mkfs.xfs /dev/my_volume_group/my_logical_volume
7. 挂载逻辑卷

将逻辑卷挂载到一个目录:

mkdir /mnt
mount /dev/my_volume_group/my_logical_volume /mnt
8. 更新 /etc/fstab

为了在系统重启后自动挂载,需要在 /etc/fstab 文件中添加条目:

/dev/my_volume_group/my_logical_volume /mnt/my_mount_point xfs defaults 0 2

示例代码

#!/bin/bash
set -euo pipefail

# 1. 变量定义
DISK="/dev/sdb"
PART="${DISK}1"
VG="my_volume_group"
LV="my_logical_volume"
MOUNT_POINT="/mnt"
FSTAB_ENTRY="${PART} ${MOUNT_POINT} xfs defaults 0 2"

# 2. 初始化 GPT 分区表
echo "=> 初始化 GPT 分区表:$DISK"
parted -s "$DISK" mklabel gpt

# 3. 创建主分区(从 1MiB 到 100%)
echo "=> 在 $DISK 上创建分区 ${PART}"
parted -s "$DISK" mkpart primary 1MiB 100%

# 4. 创建 LVM PV
echo "=> 创建物理卷 (PV):$PART"
pvcreate "$PART"

# 5. 创建卷组 VG
echo "=> 创建卷组 (VG):$VG"
vgcreate "$VG" "$PART"

# 6. 创建逻辑卷 LV(使用 100% 可用空间)
echo "=> 在卷组 $VG 上创建逻辑卷 (LV):$LV"
lvcreate -l 100%FREE -n "$LV" "$VG"

# 7. 格式化逻辑卷为 xfs
echo "=> 格式化 /dev/$VG/$LV 为 xfs"
mkfs.xfs -f "/dev/$VG/$LV"

# 8. 创建挂载点
echo "=> 创建挂载点:$MOUNT_POINT"
mkdir -p "$MOUNT_POINT"

# 9. 临时挂载
echo "=> 挂载 /dev/$VG/$LV 到 $MOUNT_POINT"
mount "/dev/$VG/$LV" "$MOUNT_POINT"

# 10. 更新 /etc/fstab(已有则先移除旧条目)
echo "=> 更新 /etc/fstab"
grep -vF "$MOUNT_POINT" /etc/fstab | sudo tee /etc/fstab.tmp >/dev/null
echo "$FSTAB_ENTRY" | sudo tee -a /etc/fstab.tmp >/dev/null
sudo mv /etc/fstab.tmp /etc/fstab

echo "✅ 完成:$MOUNT_POINT 已持久化挂载 (xfs)"

你可能感兴趣的:(linux,运维)