引言

磁盘分区与挂载是Linux系统管理的"地基工程"🏗️!无论你是给服务器扩容还是为新硬盘配置存储空间,掌握分区挂载技能都至关重要。本文将手把手带你完成从磁盘分区到文件系统挂载的全过程,涵盖基础操作、高级场景、日常维护和故障排查。跟着我们的步骤操作,你就能轻松玩转Linux存储管理!🚀

磁盘准备
分区操作
创建文件系统
挂载使用
日常维护

一、准备工作

1.1 识别磁盘设备

lsblk                      # 查看所有块设备
sudo fdisk -l              # 列出所有磁盘和分区
sudo ls -l /dev/disk/by-*  # 通过不同标识查看磁盘

示例输出:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  100G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0     1G  0 part /boot
└─sda3   8:3    0  98.5G  0 part 
  └─vg-root 253:0    0  98.5G  0 lvm  /
sdb      8:16   0    1T  0 disk 

1.2 确定要操作的磁盘

  • /dev/sdX:SATA/SCSI/USB 磁盘(如 sda, sdb)
  • /dev/nvmeXnY:NVMe 磁盘(如 nvme0n1)
  • /dev/vdX:虚拟磁盘(如 vda, vdb)

二、分区操作

2.1 使用 fdisk 进行分区(MBR格式)

sudo fdisk /dev/sdb

交互命令:

n - 新建分区
p - 主分区(1-4)
e - 扩展分区
分区号 - 默认回车
起始扇区 - 默认回车
结束扇区 - 可指定大小如 +20G
t - 更改分区类型(82=swap, 83=Linux, 8e=LVM)
p - 预览分区表
w - 写入并退出
q - 不保存退出

2.2 使用 gdisk 进行分区(GPT格式)

sudo gdisk /dev/sdb

交互命令与fdisk类似,但支持更多分区(128个)

2.3 使用 parted 进行高级分区

sudo parted /dev/sdb

常用命令:

mklabel gpt                # 创建GPT分区表
mkpart primary ext4 1MiB 1GiB  # 精确指定分区范围
unit GB                    # 切换单位为GB
print                      # 显示分区表
quit                       # 退出

三、创建文件系统

3.1 常用文件系统类型

  • ext4:传统Linux文件系统
  • xfs:高性能文件系统
  • btrfs:支持高级特性(快照等)
  • vfat:兼容Windows(FAT32)
  • swap:交换分区

3.2 格式化分区

# ext4文件系统
sudo mkfs.ext4 /dev/sdb1

# xfs文件系统
sudo mkfs.xfs /dev/sdb2

# swap分区
sudo mkswap /dev/sdb3
sudo swapon /dev/sdb3   # 立即启用

# FAT32文件系统
sudo mkfs.vfat -F 32 /dev/sdb4

3.3 添加文件系统标签

sudo e2label /dev/sdb1 "DATA"          # ext2/3/4
sudo xfs_admin -L "BACKUP" /dev/sdb2   # XFS
sudo fatlabel /dev/sdb4 "SHARE"        # FAT

四、挂载文件系统

4.1 临时挂载

sudo mkdir /mnt/data
sudo mount /dev/sdb1 /mnt/data

4.2 永久挂载(/etc/fstab)

sudo blkid /dev/sdb1  # 获取UUID

编辑 /etc/fstab 添加:

# 格式:<设备> <挂载点> <文件系统> <选项> <dump> <fsck>
UUID=xxxx-xxxx  /mnt/data  ext4  defaults  0  2
或
/dev/sdb1      /mnt/data  xfs   defaults  0  2

常用挂载选项:

  • defaults:默认选项(rw,suid,dev,exec,auto,nouser,async)
  • noatime:不更新访问时间,提升性能
  • nodiratime:不更新目录访问时间
  • discard:启用SSD TRIM功能
  • nofail:启动时忽略挂载失败

4.3 验证fstab配置

sudo mount -a  # 挂载所有fstab中定义的文件系统

五、高级分区与挂载场景

5.1 挂载ISO文件

sudo mkdir /mnt/iso
sudo mount -o loop ubuntu.iso /mnt/iso

5.2 绑定挂载(Bind Mount)

sudo mount --bind /var/www /mnt/www_backup
# 永久绑定(在fstab中添加):
/var/www    /mnt/www_backup    none    bind    0 0

5.3 使用LVM的挂载

# 创建物理卷
sudo pvcreate /dev/sdb1

# 创建卷组
sudo vgcreate vg_data /dev/sdb1

# 创建逻辑卷
sudo lvcreate -L 50G -n lv_files vg_data

# 格式化并挂载
sudo mkfs.xfs /dev/vg_data/lv_files
sudo mount /dev/vg_data/lv_files /mnt/files

5.4 挂载网络共享

# NFS挂载
sudo mount -t nfs 192.168.1.100:/share /mnt/nfs

# CIFS/SMB挂载
sudo mount -t cifs -o username=user //192.168.1.100/share /mnt/smb

六、日常维护与管理

6.1 查看已挂载文件系统

mount                      # 显示所有挂载点
findmnt                    # 树状显示挂载点
df -hT                     # 显示磁盘使用情况

6.2 卸载文件系统

sudo umount /mnt/data      # 通过挂载点卸载
sudo umount /dev/sdb1      # 通过设备卸载

# 强制卸载(当设备忙时)
sudo umount -l /mnt/data   # 延迟卸载
sudo fuser -vm /mnt/data   # 查看占用进程
sudo kill -9 <PID>         # 结束占用进程后卸载

6.3 调整文件系统大小

# 扩展ext2/3/4文件系统(先扩展分区)
sudo resize2fs /dev/sdb1

# 扩展XFS文件系统(分区必须已扩展)
sudo xfs_growfs /mnt/data

# 缩小ext文件系统(需先卸载并检查)
sudo e2fsck -f /dev/sdb1
sudo resize2fs /dev/sdb1 20G

七、故障排除

7.1 修复文件系统错误

# 检查ext文件系统
sudo fsck /dev/sdb1

# 修复XFS文件系统
sudo xfs_repair /dev/sdb2

7.2 恢复损坏的分区表

sudo testdisk /dev/sdb     # 交互式分区恢复工具

7.3 处理"mount: unknown filesystem type"错误

# 确保文件系统工具已安装
sudo apt install xfsprogs btrfs-progs dosfstools  # Debian/Ubuntu
sudo yum install xfsprogs btrfs-progs dosfstools  # RHEL/CentOS

八、最佳实践

  1. 始终使用UUID挂载:避免设备名变化导致的问题
  2. 重要操作前备份数据:分区操作有风险
  3. 合理规划分区方案
    • /boot:500MB-1GB
    • 根分区:20-50GB
    • /home:根据用户数据量
    • 交换分区:物理内存的1-2倍(但不超过8GB)
  4. SSD优化
    • 使用fstrim定期TRIM
    • 挂载选项添加discard,noatime
  5. 定期检查磁盘健康
    sudo smartctl -H /dev/sda
    

总结 🎯

通过本文的系统学习,我们已经掌握了Linux磁盘管理的核心流程:

  1. 分区规划:从MBR到GPT的分区策略 📊
  2. 文件系统:ext4/XFS等格式的选择与创建 🗂️
  3. 挂载技巧:临时与永久挂载的多种方案 📌
  4. 运维智慧:日常维护与故障排查的经验传承 🧙♂️

关键要点

  • fdisk适合MBR,parted适合GPT ⚖️
  • /etc/fstab是永久挂载的关键 🔑
  • resize2fsxfs_growfs是扩容利器 📈

记住:好的磁盘规划是系统稳定的基石! 现在就去实践这些命令,打造你的完美存储方案吧!🐧💪


PS:如果你在学习过程中遇到问题,别慌!欢迎在评论区留言,我会尽力帮你解决!😄

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐