📀 挂载数据盘 · 一行一行执行版
⚠️ 重要执行规则:
本教程中每条命令都必须单独复制、粘贴,然后按回车执行。等上一条命令执行完毕(无报错)后,再执行下一条。
❌ 不要一次性复制多行命令,否则会导致后续命令不执行。
💾 通用提醒:操作前请务必备份重要数据! 以下操作涉及磁盘分区、格式化、删除目录等,一旦操作失误可能导致数据永久丢失。
🔍 第一步:查看磁盘信息,识别数据盘设备名
执行以下命令,列出所有块设备:
sudo lsblk
输出示例解读:
- 系统盘:
vda、sda或nvme0n1,大小与系统盘一致。 - 数据盘:通常是
vdb、sdb、nvme1n1,大小为您购买的额外磁盘。
请记住您的数据盘设备名(例如 /dev/vdb),后续所有命令中的设备名都要替换成它。
📌 常见对应关系:
- 虚拟化磁盘:设备 /dev/vdb,分区 /dev/vdb1
- 传统 SCSI/SATA:设备 /dev/sdb,分区 /dev/sdb1
- NVMe 固态:设备 /dev/nvme0n1,分区 /dev/nvme0n1p1(注意 p)
🔁 设备名替换提醒: 本教程中所有命令示例使用 /dev/vdb 和 /dev/vdb1,请务必根据你的实际情况替换为正确设备名(如 /dev/sdb、/dev/nvme0n1 等)。直接复制执行可能导致操作错误的磁盘!
2️⃣ 分区操作(仅当数据盘没有分区时执行)
如果上一步 lsblk 显示数据盘下面没有子项(例如 vdb 下面是空的),则需要创建分区。
如果已有分区(如 vdb1),请直接跳至第3步。
⚠️ 危险操作: 如果数据盘已有分区但你想重新分区(例如删除现有分区并新建),必须先删除旧分区。以下命令会清除磁盘上所有分区表数据,请确认磁盘无误且数据已备份。
sudo wipefs -a /dev/vdb
(注意:此操作会彻底清除分区表,慎用!普通用户建议跳过重新分区,直接使用现有分区。)
创建新分区(GPT 分区表,整个磁盘为一个主分区):
(将命令中的 vdb 替换为你的数据盘设备名)
sudo parted /dev/vdb --script mklabel gpt
sudo parted /dev/vdb --script mkpart primary 0% 100%
sudo partprobe /dev/vdb
完成后再次执行 sudo lsblk 确认出现了 vdb1(设备名请替换)。
💡 如果提示 sudo: partprobe: command not found,请先安装 parted 工具:sudo apt update && sudo apt install parted -y(Debian/Ubuntu)或 sudo yum install parted -y(CentOS/RHEL)。
3️⃣ 格式化分区为 ext4
⚠️ 注意: 如果您的数据盘已有重要数据,请勿格式化!直接跳至第4步(保留数据挂载)。
如果磁盘是全新的,或您确定不需要旧数据,执行格式化(将 vdb1 替换为你的实际分区名):
sudo mkfs.ext4 -F /dev/vdb1
等待输出 Writing superblocks ... done 即完成。
🔁 设备名替换提醒: 确认你的数据盘分区为 /dev/vdb1?如果不是(例如 /dev/sdb1 或 /dev/nvme0n1p1),请务必替换命令中的设备名。
4️⃣ 挂载到 /www(两种方式可选)
🅰 场景A:全新磁盘或不需要保留旧数据(继续使用上面格式化的分区)
sudo mkdir -p /www
sudo mount /dev/vdb1 /www
🅱 场景B:数据盘已有分区且含有重要数据,要保留原文件
前提:您确认 /dev/vdb1 上已有数据且格式为 ext4(或 xfs,请替换命令中的 ext4 为 xfs)。
sudo mkdir -p /www
sudo mount /dev/vdb1 /www
挂载后执行 ls /www 应该能看到原有的目录结构,说明数据保留成功。
🔁 设备名替换提醒: 上述命令中的 /dev/vdb1 请替换为你的实际分区设备名。
5️⃣ 获取 UUID 并写入永久挂载配置
获取 UUID(将 vdb1 替换为你的分区):
sudo blkid /dev/vdb1
复制输出的 UUID 字符串(例如 878e257e-a853-4d16-a53f-ebc6cbab6a04)。
备份 fstab:
sudo cp /etc/fstab /etc/fstab.bak
将 UUID 写入 fstab(请将下面的 UUID 替换成您实际复制的):
echo 'UUID=您的UUID /www ext4 defaults,nofail 0 2' | sudo tee -a /etc/fstab
示例: 假设您的 UUID 是 878e257e-a853-4d16-a53f-ebc6cbab6a04,则实际执行的命令为:
echo 'UUID=878e257e-a853-4d16-a53f-ebc6cbab6a04 /www ext4 defaults,nofail 0 2' | sudo tee -a /etc/fstab
(以上仅为示例,请勿直接复制执行,请替换成您自己的 UUID)
测试挂载配置:
sudo mount -a
df -h /www
如果显示 /dev/vdb1 及正确容量,说明永久挂载成功。
💡 为什么用 UUID? 重启后设备名可能变化,UUID 是唯一且不变的,保证系统开机自动挂载到正确磁盘。
✅ 验证与重启测试
- 查看挂载:
df -h /www应显示数据盘分区 - 检查 fstab:
cat /etc/fstab | grep /www应显示 UUID 那一行 - 重启验证:
sudo reboot后再次df -h /www,应自动挂载
至此,数据盘永久挂载完毕,可以开始使用 /www 目录存放数据了。
🔧 补充:修正网站目录权限(如果遇到无法写入 wp-config.php 等问题)
在完成数据盘挂载并安装宝塔面板后,正常通过宝塔“添加站点”创建的网站目录,其所有者应为 www:www。但少数情况下(如面板版本差异、安全软件干扰等),站点根目录可能会变成 root 所有,导致 WordPress 安装时提示“无法写入 wp-config.php 文件”。
此时无需重新挂载或重装,只需在宝塔面板中手动修正该目录的权限即可。请按以下步骤操作:
- 登录宝塔面板,点击左侧菜单【文件】。
- 在文件管理器中导航到
/www/wwwroot/,找到您的网站目录(例如netooo.com)。 - 右键点击该目录,选择【权限】。
- 在弹出的窗口中:
- 将【所有者】设为www
- 将【用户组】设为www
- 权限数字保持755
- 不要勾选“应用到子目录”(因为子目录的文件权限通常已经正确,勾选也可,但会增加不必要的操作)
- 点击【应用】。 - 如果子目录或文件所有者仍有异常,可以再次对网站目录右键 → 权限,这次勾选【应用到子目录】,并将文件权限统一设为
644,目录权限统一设为755(宝塔面板会自动区分文件和目录)。
💡 注意事项:
- 仅修改您自己的网站目录(如 /www/wwwroot/你的域名),切勿对整个 /www 或 /www/server 递归修改权限,否则可能导致宝塔面板运行异常。
- 修正后,刷新 WordPress 安装页面即可正常完成安装。如果仍提示无法写入,也可手动将安装程序提供的 wp-config.php 内容复制到该目录下,填写正确的数据库信息。
🗑️ 扩展:卸载数据盘并删除 /home(反向操作)
⚠️ 危险操作警告:
以下操作会永久删除 /home 目录中的所有用户数据,并且使普通用户无法登录(root 不受影响)。
请确保已备份重要数据,并且当前没有进程正在使用 /home(如已退出普通用户的会话)。
特别提醒: 如果 /home 仍处于挂载状态,执行 rm -rf /home 将会删除数据盘内的所有数据!请务必先确认 /home 已卸载。
当您希望彻底移除之前挂载到 /home 的数据盘、清空用户主目录时,请严格按照以下顺序逐条执行:
0️⃣ 前置检查:确认 /home 未挂载
mount | grep /home
如果该命令有输出(例如 /dev/vdb1 on /home ...),说明 /home 还在挂载状态,必须先卸载:
umount /home
如果提示 “target is busy”,使用强制结束进程并卸载:
fuser -km /home && umount /home
再次运行 mount | grep /home 确认无输出后方可继续。
1️⃣ 删除 /home 目录(如果还存在且不需要保留数据)
rm -rf /home
2️⃣ 彻底移除自动挂载配置(防止重启后再次挂载)
sed -i '/\/home/d' /etc/fstab
3️⃣ (可选)清除数据盘分区表,彻底废弃这块盘
执行后 lsblk 将不再显示 vdb1 分区(整个磁盘变空白)。
wipefs -a /dev/vdb
💡 如果只想保留磁盘裸设备以备他用(例如将来挂载到 /www),可以跳过第3步,仅执行前两步。
✅ 最终验证命令
lsblk # vdb1 应无挂载点,或 vdb 已无分区
mount | grep home # 无输出
cat /etc/fstab # 无包含 /home 的行
至此,数据盘已卸载,/home 被删除,系统不会自动挂载。如果将来需要重新使用 /home,只需创建目录并挂载新磁盘即可。