CentOS 磁盘目录映射
前言
服务器上只有一个磁盘,空间都在/home下,但是我们平常的操作习惯是放在/data下。
我们依然可以通过**“目录绑定挂载(bind mount)”**的方法,把 /home 目录下的部分空间“映射”到 /data 下。
这种方法非常巧妙,它不需要新硬盘,而是让你在 /home 下划出一块地盘(比如创建一个文件夹),然后让 /data 这个目录直接指向它。
这样,你往 /data 里存数据,实际占用的就是 /home 所在的磁盘空间。
具体操作步骤
假设我们要把 /home/data_space 这个文件夹映射为 /data 目录:
1. 在 /home 下创建一个专属文件夹
首先,我们在 /home 目录下创建一个用来存放数据的文件夹:
1 | sudo mkdir /home/data_space |
2. 创建 /data 目录
接着,创建你最终想要使用的 /data 目录:
1 | sudo mkdir /data |
3. 执行绑定挂载(bind mount)
使用 mount --bind 命令,将 /home/data_space 绑定到 /data 上:
1 | sudo mount --bind /home/data_space /data |
执行完这条命令后,你访问 /data 目录,实际上就是在访问 /home/data_space。
你可以用 df -h /data 查看一下,会发现 /data 的空间大小和 /home 所在的分区是一模一样的。
4. 设置开机自动挂载(永久生效)
上面的命令重启后会失效,为了让它永久生效,我们需要修改 /etc/fstab 文件:
1 | sudo vi /etc/fstab |
在文件的末尾添加下面这一行配置:
1 | /home/data_space /data none bind 0 0 |
保存退出后,可以执行 sudo mount -a 测试一下配置是否有报错。如果没有报错,说明配置成功,以后服务器重启也会自动挂载。
5. 调整权限(可选)
如果你希望普通用户也能直接读写 /data,别忘了给源目录赋予相应的权限:
1 | sudo chown -R 你的用户名:你的用户名 /home/data_space |
优缺点
- 优点:完全不需要动硬盘分区,操作非常安全且可逆。如果以后买了新硬盘,随时可以取消绑定,把新硬盘挂载到
/data上。 - 缺点:因为本质上还是共用同一个物理磁盘,如果
/home所在的分区被彻底塞满,/data也会跟着没有空间。
通过这种方式,你就成功在单磁盘的服务器上“变”出了一个独立的 /data 目录来专门存放数据啦!