Linux挂载数据盘教程(分区格式化+永久挂载+权限修复+卸载反操作)

 3天前     124  

文章目录

📀 挂载数据盘 · 一行一行执行版

⚠️ 重要执行规则:
本教程中每条命令都必须单独复制、粘贴,然后按回车执行。等上一条命令执行完毕(无报错)后,再执行下一条。
❌ 不要一次性复制多行命令,否则会导致后续命令不执行。
💾 通用提醒:操作前请务必备份重要数据! 以下操作涉及磁盘分区、格式化、删除目录等,一旦操作失误可能导致数据永久丢失。

🔍 第一步:查看磁盘信息,识别数据盘设备名

执行以下命令,列出所有块设备:

sudo lsblk

输出示例解读:

  • 系统盘:vdasdanvme0n1,大小与系统盘一致。
  • 数据盘:通常是 vdbsdbnvme1n1,大小为您购买的额外磁盘。

请记住您的数据盘设备名(例如 /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,请替换命令中的 ext4xfs)。

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 文件”。

此时无需重新挂载或重装,只需在宝塔面板中手动修正该目录的权限即可。请按以下步骤操作:

  1. 登录宝塔面板,点击左侧菜单【文件】。
  2. 在文件管理器中导航到 /www/wwwroot/,找到您的网站目录(例如 netooo.com)。
  3. 右键点击该目录,选择【权限】。
  4. 在弹出的窗口中:
    - 将【所有者】设为 www
    - 将【用户组】设为 www
    - 权限数字保持 755
    - 不要勾选“应用到子目录”(因为子目录的文件权限通常已经正确,勾选也可,但会增加不必要的操作)
    - 点击【应用】。
  5. 如果子目录或文件所有者仍有异常,可以再次对网站目录右键 → 权限,这次勾选【应用到子目录】,并将文件权限统一设为 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,只需创建目录并挂载新磁盘即可。

您可能感兴趣的

暂无评论

暂无评论...