CentOS 挂载硬盘(4T 以下)
云服务器开通时默认只给系统盘,数据盘往往要另外购买、单独挂载。比如你买了 2TB 的数据盘,登录进去 df -h 却看不到——因为它还没有分区、格式化、挂载,这三步做完,新的容量才会出现在系统里。如果你是在云厂商控制台购买的云盘,通常还要先在控制台里“挂载到实例”,否则操作系统根本看不到这块盘;物理服务器加盘则直接插入即可。下面的步骤从登录后开始,默认你已经能通过 lsblk 看到未分区的盘。挂载完成不等于一劳永逸,磁盘满了、要扩容、要换盘都还得再动它,把原理搞清楚比照着敲命令更重要。
提醒:挂载操作会清空数据,请确认挂载盘无数据或者未使用。
第一步:列出所有磁盘
ll /dev/disk/by-path
也可以先用 lsblk 看更直观的磁盘树:
lsblk
输出里系统盘一般是 sda(含 sda1、sda2 分区),数据盘通常是 sdb、sdc 这类整块盘。云厂商的文档通常会写明数据盘的设备名,比如阿里云是 /dev/vdb、腾讯云是 /dev/vdb 或 /dev/sdb,和本地命名可能不同,一切以 lsblk 的实际输出为准。如果仍无法确认,用 df 命令确认系统盘的名称,从而排除挂错盘的情况。
第二步:格式化硬盘(分区)
fdisk /dev/sdb
进入 fdisk 交互界面后,依次执行:
- 输入
n创建新分区; - 输入
p选择主分区(primary); - 分区编号直接回车使用默认值;
- 起始扇区和结束扇区直接回车使用默认值(占用整个磁盘);
- 输入
w保存并退出。
退出后可以再跑一次 lsblk,确认出现了 sdb1 这个分区。
第三步:创建文件系统
mkfs.ext4 /dev/sdb1
如果需要增加 inode 可用数量(适合大量小文件场景),可以使用:
mkfs.ext4 -i 2048 /dev/sdb1
-i 2048 表示每 2048 字节给一个 inode,文件数上限更高,但会多占一点元数据空间。默认值对一般业务够用,只有海量小文件(比如缓存目录、附件库)才需要调整。
第四步:挂载分区
mkdir /data
mount /dev/sdb1 /data
以上命令将 sdb1 这个硬盘分区挂载到 /data 目录。挂载点目录必须先创建,名字按业务习惯定(/data、/home、/www 都常见)。
第五步:写入 fstab,实现开机自动挂载
echo "/dev/sdb1 /data ext4 defaults 0 0" >> /etc/fstab
写入后可以用 mount -a 验证 fstab 配置是否正确,避免重启后因配置错误导致无法进入系统。更稳妥的做法是用 UUID 代替设备名——设备名可能因插拔顺序变化,UUID 不会:
blkid /dev/sdb1 # 拿到 UUID
echo "UUID=xxxx-xxxx /data ext4 defaults 0 0" >> /etc/fstab
mount -a && df -h
验证挂载结果
df -h
输出中应能看到类似下面的记录:
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 3.6T 77M 3.4T 1% /data
扩展:卸载与重新挂载
扩容或换盘时,先确认没有进程在使用该目录:
lsof +D /data # 查看占用进程
umount /data # 卸载
卸载后再重新分区、格式化、挂载,并把 /etc/fstab 里的 UUID 同步更新。换盘前先确认新盘容量与分区表类型匹配,整块盘用默认扇区即可,特殊阵列环境再单独处理。fdisk 只能处理 4T 以下的磁盘,更大容量要用 parted 建 GPT 分区表,完整步骤见CentOS 挂载 4T 硬盘。
常见问题
mount报“already mounted”:说明分区已挂到别处,先umount旧挂载点再挂。- 重启后没生效:八成是 fstab 写错,先看设备名/UUID 对不对,重启前务必
mount -a验证。 - 想换更大容量的盘:需要先卸载分区,再重新分区、格式化、挂载,操作前做好备份。
- 权限问题:挂载后目录属主是 root,Web 应用要写数据时记得
chown给对应用户。 - 格式化成 XFS 还是 ext4:CentOS 7 及以上默认支持 XFS,适合大文件和高吞吐;ext4 兼容性最好、用得最广。两者都能满足常规业务,选一个并保持一致即可。
df -h还是看不到:检查 fstab 是否写对、mount -a是否成功,或确认是不是挂到了别的路径。- 挂载点目录本身有数据怎么办:
mount后原目录内容会被隐藏,建议先把数据搬到临时目录,挂载完成后再挪回来,避免误以为数据丢失。 - 重启后变成只读:通常是文件系统异常或 fstab 挂载参数问题,先看
dmesg日志,再决定是否用fsck修复,修复前先备份。
注意事项
- 4T 以上的磁盘
fdisk无法分区,需要使用parted创建 GPT 分区表,可参考CentOS 挂载 4T 硬盘; - 挂载点目录必须先创建(
mkdir /data); - 修改
/etc/fstab前建议先备份,并仔细核对设备名与挂载点,防止重启失败。
硬盘挂载是服务器扩容的常用操作,更多服务器配置与运维技巧可以参考云服务器分类下的服务器运维技巧和服务器备份策略。
参考:CentOS 官方文档对存储分区的说明见 https://docs.centos.org/en-US/centos/install-guide/Partitioning/;
fdisk、mkfs.ext4、mount、fstab均可用man查看手册。
原文链接:https://www.cnblogs.com/cqzhuomi/articles/17282793.html(博客园 CQZHUOMI,转载)