本文最后更新于 1 分钟前,文中所描述的信息可能已发生改变。
适用场景:系统已安装在 /dev/sda,新增一块未挂载硬盘 /dev/sdb,希望将其挂载到 /opt 目录(常用于扩展存储或部署应用数据)。
⚠️ 重要提示
挂载到 /opt 会隐藏该目录中原有内容。若 /opt 中已有服务(如 containerd、自定义软件等),请先备份!
1. 查看当前磁盘状态
bash
lsblk确认:
- 系统盘:/dev/sda(通常挂载为 / 和 /boot/efi)
- 新硬盘:/dev/sdb(无分区、未挂载)
示例输出:
sda 8:0 0 446.1G 0 disk
├─sda1 8:1 0 1G 0 part /boot/efi
└─sda2 8:2 0 445.1G 0 part /
sdb 8:16 0 2.2T 0 disk2. 为新硬盘创建分区
使用 fdisk 创建主分区:
bash
sudo fdisk /dev/sdb交互操作(按顺序输入):
n → p → 1 → 回车 → 回车 → w再次运行 lsblk,确认出现 /dev/sdb1:
sdb 8:16 0 2.2T 0 disk
└─sdb1 8:17 0 2.2T 0 part3. 格式化分区为 ext4
bash
sudo mkfs.ext4 /dev/sdb1记录输出中的 UUID(用于后续自动挂载):
文件系统 UUID:3efd26b9-4e3e-4114-9175-e837f8e65f254. 备份原 /opt 目录
bash
sudo cp -a /opt /opt.bak验证备份内容(如有):
bash
ls -la /opt.bak示例:若存在 containerd 或 iot 等服务目录,说明需迁移。
5. 临时挂载测试
bash
sudo mount /dev/sdb1 /opt验证挂载:
bash
df -h /opt
ls -la /opt预期结果:
- df -h 显示 /dev/sdb1 挂载到 /opt
- ls 仅显示 lost+found(正常)
6. 迁移原有数据(可选但推荐)
如果原 /opt 有重要数据,将其复制到新挂载点:
bash
sudo cp -a /opt.bak/* /opt/验证:
bash
ls -la /opt此时 containerd、iot 等目录应重新出现,但实际存储在新硬盘上。
7. 配置开机自动挂载
获取分区 UUID
bash
sudo blkid /dev/sdb1输出示例:
/dev/sdb1: UUID="3efd26b9-4e3e-4114-9175-e837f8e65f25" TYPE="ext4"编辑 /etc/fstab
bash
sudo nano /etc/fstab在文件末尾添加一行:
UUID=3efd26b9-4e3e-4114-9175-e837f8e65f25 /opt ext4 defaults 0 2✅ 使用 UUID 而非 /dev/sdb1,避免设备名变化导致挂载失败。
测试 fstab 配置
bash
sudo mount -a无报错即表示配置成功。
8. 验证重启后是否自动挂载
建议重启系统测试:
bash
sudo reboot重启后检查:
bash
df -h /opt
ls /opt确保数据和挂载均正常。
常见问题
Q:为什么不用 /mnt 而用 /opt?
A:/opt 是 Linux 标准中用于第三方软件安装的目录。如果你的应用(如 IoT 平台、容器运行时)默认使用 /opt,直接挂载可避免路径修改。
Q:能否挂载到 /opt/data 而不是整个 /opt?
A:可以!更安全的做法是:
bash
sudo mkdir -p /opt/data
sudo mount /dev/sdb1 /opt/data然后在 fstab 中挂载到 /opt/data,避免影响系统目录。
Q:误操作导致 /opt 数据丢失怎么办?
A:只要执行了第 4 步备份,可随时恢复:
bash
sudo umount /opt
sudo rm -rf /opt/*
sudo cp -a /opt.bak/* /opt/总结
通过以上步骤,你已成功将第二块硬盘挂载到 /opt,并保留了原有服务数据。此方案适用于需要大容量存储且依赖 /opt 路径的应用场景。