悠悠楠杉
Linux系统磁盘分区及挂载:fdisk实用指南
一、初识Linux磁盘管理
当我们在Linux服务器插入新硬盘时,会经历三个关键步骤:分区→格式化→挂载。这就像给新房划分房间(分区)、装修每个房间(格式化)、最后给房间挂上门牌号(挂载)的过程。
常用的分区工具中,fdisk
因其简单可靠成为经典选择(注:超过2TB硬盘建议使用parted
工具)。最近在为公司的NFS存储服务器扩容时,我就用fdisk完成了4块8TB硬盘的配置,整个过程不到20分钟。
二、实战:从零开始配置新磁盘
1. 识别新磁盘
首先用lsblk
查看磁盘情况:
bash
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 512M 0 part /boot
└─sda2 8:2 0 99.5G 0 part /
sdb 8:16 0 2T 0 disk # 这就是新磁盘
2. 使用fdisk分区
进入交互式分区界面:
bash
$ sudo fdisk /dev/sdb
常用操作指令:
- n
:新建分区
- d
:删除分区
- p
:查看当前分区表
- w
:保存并退出
典型分区过程:
1. 输入n
创建新分区
2. 选择p
创建主分区(或e
扩展分区)
3. 设置分区号(默认1)
4. 设置起始扇区(直接回车默认)
5. 设置结束扇区:如+500G
分配500GB空间
6. 输入t
可修改分区类型(Linux默认83,交换分区82)
3. 格式化分区
推荐使用ext4文件系统:
bash
$ sudo mkfs.ext4 /dev/sdb1
如果需要支持超大文件(如数据库):
bash
$ sudo mkfs.ext4 -T largefile /dev/sdb1
4. 挂载分区
临时挂载测试:
bash
$ sudo mkdir /data
$ sudo mount /dev/sdb1 /data
永久挂载需修改/etc/fstab
,添加如下行:
/dev/sdb1 /data ext4 defaults 0 2
重要参数说明:
- 最后一个0
表示不备份文件系统
- 2
表示非根分区检查顺序
三、避坑指南
1. 常见报错处理
- "Unable to open /dev/sdb":说明没有操作权限,需用sudo或切换root
- "Partition table is full":主分区已满4个,需改用扩展分区
- 挂载失败:检查
dmesg | tail
查看内核日志
2. 性能优化技巧
- 大数据场景建议关闭日志功能:
bash mkfs.ext4 -O ^has_journal /dev/sdb1
- 使用noatime减少磁盘写入:
bash /dev/sdb1 /data ext4 defaults,noatime 0 2
3. 安全建议
生产环境中建议:
1. 使用LVM实现灵活扩容
2. 重要数据目录挂载时添加nodelalloc
选项
3. 定期检查/etc/fstab
语法:mount -a
四、进阶应用
1. 分区对齐优化
现代SSD建议使用1MiB对齐:
bash
fdisk命令中起始扇区设置为2048(即1MiB边界)
2. 脚本自动化
对于批量部署,可以用sfdisk
实现非交互式分区:
bash
echo ';' | sudo sfdisk /dev/sdb
3. 与LVM配合
更专业的方案是先用fdisk创建物理分区,再交给LVM管理:
bash
pvcreate /dev/sdb1
vgcreate data_vg /dev/sdb1
lvcreate -n data_lv -L 1.5T data_vg
总结:掌握fdisk就像获得了一把Linux系统管理的瑞士军刀。虽然现在有更先进的工具出现,但在大多数场景下,这个经典工具仍然是系统管理员最值得信赖的伙伴。记得每次操作前用fdisk -l
确认磁盘状态,修改分区表后建议重启系统确保变更完全生效。