查看磁盘信息 🔍

首先,使用 lsblk 命令查看当前系统的磁盘信息:

lsblk 

输出示例:

NAME                 MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 49G 0 part
├─centos_host-root 253:0 0 45.1G 0 lvm /
└─centos_host-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 300G 0 disk

lsblk 命令详解 📚

lsblk(list block devices)命令用于列出系统上的所有块设备,它能够以树状结构显示磁盘及其分区信息。

主要显示内容包括:

  • NAME: 设备名称
  • MAJ:MIN: 主设备号和次设备号
  • RM: 是否为可移动设备(1表示可移动,0表示不可移动)
  • SIZE: 设备大小
  • RO: 是否为只读设备(1表示只读,0表示可读写)
  • TYPE: 设备类型(disk表示磁盘,part表示分区,lvm表示逻辑卷管理)
  • MOUNTPOINT: 挂载点位置

常用选项:

  • lsblk -f: 显示文件系统信息
  • lsblk -m: 显示设备的权限信息
  • lsblk -d: 仅显示磁盘,不显示分区
  • lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT: 自定义显示特定列

挂载步骤 📝

以下是将 sdb 挂载到 /data 目录的详细步骤(适用于 CentOS 和其他常见 Linux 发行版):

1. 创建挂载点 📁

mkdir -p /data

2. 磁盘分区 🔧

使用 fdisk 命令对磁盘进行分区:

fdisk /dev/sdb

在交互界面中输入以下指令:

  • n - 创建新分区
  • p - 选择主分区
  • 1 - 分区号
  • 按回车使用默认开始/结束位置(或根据需求设置)
  • w - 写入并退出

fdisk 命令详解 🔪

fdisk 是一个用于创建和管理磁盘分区表的强大工具。它提供了一个交互式界面,允许用户对磁盘进行各种分区操作。

主要功能:

  • 创建、删除、修改分区
  • 更改分区类型
  • 查看分区信息
  • 创建和管理多种分区表类型(MBR、GPT等)

常用交互式命令:

  • p: 显示当前磁盘的分区表
  • n: 创建一个新分区
  • d: 删除一个分区
  • t: 更改分区类型
  • l: 列出所有可用的分区类型
  • m: 显示帮助菜单
  • w: 写入分区表并退出
  • q: 不保存更改并退出

分区类型:

  • 主分区(Primary):最多可创建4个
  • 扩展分区(Extended):作为逻辑分区的容器,最多只能有1个
  • 逻辑分区(Logical):创建在扩展分区内,从编号5开始

注意事项:

  • 修改分区表可能导致数据丢失,操作前应备份重要数据
  • 重新分区后,新分区表可能需要重启系统后才能生效
  • 正在使用的磁盘无法直接修改分区表

3. 格式化分区 💾

mkfs.xfs /dev/sdb1   # 或使用 mkfs.ext4,根据你喜欢的文件系统

mkfs.xfs 命令详解 📊

mkfs.xfs 是用于创建 XFS 文件系统的命令,XFS 是一种高性能的日志文件系统,特别适合大型文件和大容量存储设备。

XFS 文件系统特点:

  • 高可扩展性,支持最大 16EB 的文件系统和 8EB 的文件
  • 高性能,特别适合大型存储系统和多处理器系统
  • 支持日志记录,提供更好的数据完整性保障
  • 支持在线调整大小(仅支持扩大,不支持缩小)
  • 优化的空间分配和管理算法

常用选项:

  • -f: 强制创建文件系统,即使设备看起来被占用
  • -b size=X: 指定块大小,默认为4KB
  • -s size=X: 指定扇区大小
  • -L label: 指定卷标名称
  • -q: 安静模式,减少输出信息
  • -d name=value: 设置数据段选项
  • -i name=value: 设置索引节点选项

示例用法:

# 创建基本XFS文件系统
mkfs.xfs /dev/sdb1

# 创建带有卷标的XFS文件系统
mkfs.xfs -L DATA_DISK /dev/sdb1

# 创建块大小为8KB的XFS文件系统
mkfs.xfs -b size=8192 /dev/sdb1

# 强制创建并指定日志大小
mkfs.xfs -f -l size=128m /dev/sdb1

与其他文件系统的比较:

  • XFS: 适合大型文件系统和高性能需求
  • ext4: 更通用的文件系统,兼容性好
  • BTRFS: 新型文件系统,支持快照、子卷等功能
  • F2FS: 针对闪存设备优化的文件系统

mkfs.ext4 命令详解 📘

mkfs.ext4 是用于创建 ext4 文件系统的命令。ext4(fourth extended filesystem)是 Linux 系统中最广泛使用的文件系统之一,是 ext2 和 ext3 的后继版本,具有更好的性能和可靠性。

ext4 文件系统特点:

  • 向后兼容 ext2 和 ext3 文件系统
  • 支持更大的文件系统和文件大小(最大 1EB 文件系统,最大 16TB 文件)
  • 提高了文件系统的可靠性和数据完整性
  • 改进的时间戳精度(纳秒级)
  • 持久预分配功能,减少文件碎片
  • 延迟分配技术,提高性能并减少碎片
  • 支持日志校验和,提高了日志的可靠性
  • 支持在线碎片整理和在线调整大小(扩大和缩小)

常用选项:

  • -b size: 指定块大小(1024, 2048, 4096字节等)
  • -c: 创建前检查坏块
  • -L label: 设置文件系统卷标
  • -m reserved-blocks-percentage: 设置为系统保留的块百分比,默认为5%
  • -O [^]feature[,...]: 设置或取消文件系统特性
  • -j: 创建带日志的文件系统(在ext4中默认开启)
  • -E extended-options: 设置扩展选项
  • -F: 强制创建文件系统

示例用法:

# 创建基本ext4文件系统
mkfs.ext4 /dev/sdb1

# 创建带卷标的ext4文件系统
mkfs.ext4 -L DATA_DRIVE /dev/sdb1

# 创建有较少系统保留空间的ext4文件系统
mkfs.ext4 -m 2 /dev/sdb1

# 创建块大小为2KB的ext4文件系统并检查坏块
mkfs.ext4 -b 2048 -c /dev/sdb1

# 使用特定特性创建ext4文件系统
mkfs.ext4 -O dir_index,extent,flex_bg /dev/sdb1

ext4 与其他文件系统的对比:

  • ext4: 稳定、兼容性强、适合大多数通用场景
  • XFS: 性能更好但功能相对较少,更适合大型文件系统
  • ext3: ext4的前身,功能较少但更稳定
  • BTRFS: 更现代化,有更多功能(如快照),但成熟度较低
  • F2FS: 针对SSD和闪存设备优化

何时选择 ext4:

  • 需要广泛兼容性时(几乎所有Linux发行版都支持)
  • 需要在各种环境下的稳定性时
  • 需要在文件系统容量和性能间取得平衡时
  • 系统启动分区和常规数据分区

4. 挂载分区 🔗

mount /dev/sdb1 /data

5. 设置开机自动挂载 ⚙️

  1. 获取分区的 UUID:
    blkid /dev/sdb1

输出示例:

/dev/sdb1: UUID="puresai-xxxx" TYPE="xfs"
  1. 编辑 /etc/fstab 文件:

    vim /etc/fstab
  2. 添加以下行(替换实际的 UUID 和文件系统类型):

    UUID=puresai-xxxx  /data  xfs  defaults  0 0

注意事项 ⚠️

  • 确保在操作前备份重要数据
  • 确保有足够的权限执行这些命令
  • 建议在操作前确认磁盘设备名称正确
  • 如果使用其他文件系统,请相应修改格式化命令和 fstab 配置