深色模式
磁盘与分区 lsblk/fdisk/mount
摘要:服务器加了一块新硬盘却看不到?本文带你在虚拟机/测试机上用 lsblk 看清磁盘结构,用 fdisk 分区,格式化后挂载,并配置开机自动挂载。前提:有 root 或 sudo 权限,且操作对象是未存放数据的空盘。
适用环境
bash
# 系统:CentOS 7+/Ubuntu 20.04+ 等主流发行版
# 权限:需要 root(以下命令省去 sudo,请自行加)
# 前置:确认有一块未分区的新盘,例如 /dev/sdb
cat /etc/os-release | head -2
whoami # 确认是 root 或可使用 sudo
lsblk # 先看清楚现有磁盘,避免误操作1
2
3
4
5
6
2
3
4
5
6
一、查看磁盘与分区
bash
lsblk # 树状列出所有块设备与挂载点
df -h # 已挂载分区的用量(人类可读)
lsblk -f # 同时显示文件系统类型与 UUID
fdisk -l # 列出所有磁盘及分区表1
2
3
4
2
3
4
二、为新盘分区(以 /dev/sdb 为例)
危险
fdisk 会直接改写分区表,务必确认设备名正确(用 lsblk 反复核对)。对正在使用的磁盘(如 /dev/sda)操作会导致数据丢失!
bash
fdisk /dev/sdb
# 进入交互界面后依次输入:
# n 新建分区
# p 主分区(默认)
# 回车 分区号默认
# 回车 起始扇区默认
# 回车 结束扇区默认(整盘)
# w 写入并退出1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
三、格式化与挂载
bash
mkfs.ext4 /dev/sdb1 # 格式化为 ext4(xfs 用 mkfs.xfs)
mkdir -p /data # 创建挂载点
mount /dev/sdb1 /data # 临时挂载
df -h /data # 确认挂载成功1
2
3
4
2
3
4
四、配置开机自动挂载
bash
blkid /dev/sdb1 # 复制 UUID
# 编辑 /etc/fstab,追加一行(用实际 UUID):
# UUID=xxxx-xxxx /data ext4 defaults 0 2
# 保存后执行:
mount -a # 校验 fstab 无错误(无输出即正常)1
2
3
4
5
2
3
4
5
验证
- [ ]
lsblk能看到/dev/sdb1且挂载在/data - [ ]
df -h /data显示正确容量 - [ ]
mount -a无报错,重启后仍挂载
常见坑
- fstab 写错导致无法开机:改 fstab 前先
mount -a测试;救援模式用mount -o remount,rw /修正。 - 整盘当分区用:有人直接
mkfs.ext4 /dev/sdb不做分区,能跑但不符合习惯、难扩容。 - UUID 比设备名稳:磁盘顺序变化会让
/dev/sdb变成/dev/sdc,fstab 务必用 UUID。 - ext4 vs xfs:CentOS/RHEL 默认 xfs,Ubuntu 默认 ext4,格式化命令不同别混用。