Ubuntu服务器 /data 盘需要手动挂载的解决方案
服务器 /data 盘需要手动挂载的解决方案
如果重启服务器后,发现 /data 盘 没有自动挂载,通常是因为:
/etc/fstab配置文件 没有正确设置 自动挂载。- 该磁盘 没有被正确识别,需要手动挂载。
- 文件系统错误 导致挂载失败。
下面是解决方案,确保 /data 盘可以手动挂载,然后配置自动挂载。
🔍 1. 确认 /data 盘是否存在
首先,使用 lsblk 或 fdisk 检查当前磁盘情况:
lsblk
示例输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk /
sdb 8:16 0 500G 0 disk
这里 sdb 可能是 /data 盘,但它还没有挂载。
如果 lsblk 不能确认,可以使用:
sudo fdisk -l
或者:
sudo blkid
📌 2. 手动挂载 /data 盘
2.1 确认 /data 目录是否存在
sudo mkdir -p /data
2.2 挂载磁盘
如果 lsblk 显示 /data 盘是 /dev/sdb1,手动挂载:
sudo mount /dev/sdb1 /data
然后检查是否成功挂载:
df -h
如果 /data 盘已挂载,说明手动挂载成功。
🔄 3. 配置开机自动挂载
如果 /data 盘需要 开机自动挂载,需要修改 /etc/fstab。
3.1 获取磁盘 UUID
使用以下命令获取 /data 盘的 UUID:
sudo blkid
示例输出:
/dev/sdb1: UUID="1234-ABCD-5678-EFGH" TYPE="ext4"
3.2 编辑 /etc/fstab
打开 /etc/fstab:
sudo nano /etc/fstab
添加一行:
UUID=1234-ABCD-5678-EFGH /data ext4 defaults 0 2
说明:
UUID=1234-ABCD-5678-EFGH:磁盘的 UUID(用你自己磁盘的 UUID 替换)。/data:挂载点。ext4:文件系统类型(如果你的磁盘是xfs,改为xfs)。defaults:常规挂载选项,表示读写权限正常。0 2:0:不进行dump备份(通常0)。2:用于fsck检查磁盘错误,/盘用1,其他盘一般用2。
保存文件(按 Ctrl + X → Y → Enter)。
3.3 测试 /etc/fstab 是否正确
运行:
sudo mount -a
如果没有报错,说明 /etc/fstab 配置正确。
3.4 重启并检查
sudo reboot
重启后,检查 /data 是否成功挂载:
df -h
如果 /data 正常显示在列表中,说明 开机自动挂载成功! 🎉
🛠️ 4. 其他可能遇到的问题
❌ 问题 1:手动挂载时报错
如果 mount /dev/sdb1 /data 报错:
mount: unknown filesystem type 'ext4'
可能是文件系统未格式化,需要格式化:
sudo mkfs.ext4 /dev/sdb1
⚠ 注意:这会清空 /dev/sdb1 磁盘上的所有数据!如果磁盘上有重要数据,不要执行这一步!
❌ 问题 2:挂载后 /data 为空
如果你之前存储的数据丢失,可能是 挂载了错误的分区,尝试:
lsblk
sudo blkid
找到正确的磁盘路径再挂载。
❌ 问题 3:/etc/fstab 配置错误,导致系统无法启动
如果 /etc/fstab 写错了,可能会导致 系统无法启动。
解决方案:
-
进入恢复模式:
- 在开机引导时按
ESC或Shift进入 GRUB 菜单。 - 选择 Advanced options → Recovery mode。
- 选择 Drop to root shell 进入命令行。
- 在开机引导时按
-
编辑
/etc/fstab并修复错误:mount -o remount,rw / nano /etc/fstab- 删除或修正错误的挂载行。
-
重新启动系统:
reboot
✅ 总结
| 步骤 | 命令 | 说明 |
|---|---|---|
| 检查磁盘 | lsblk / fdisk -l / blkid | 找到 /data 盘对应的设备 |
| 手动挂载 | sudo mount /dev/sdb1 /data | 临时挂载磁盘 |
| 开机自动挂载 | 编辑 /etc/fstab | 添加 UUID=xxx /data ext4 defaults 0 2 |
测试 fstab 是否正确 | sudo mount -a | 检查配置是否正确 |
| 重启检查 | df -h | 确保 /data 盘开机自动挂载 |
🚀 现在,您的 /data 盘应该可以在服务器重启后自动挂载了! 🚀
如果还有问题,请提供 lsblk、df -h 和 /etc/fstab 配置,我可以帮你进一步排查!😊
$ sudo lsblk -l
[sudo] password for:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 63.7M 1 loop /snap/core20/2434
loop1 7:1 0 63.7M 1 loop /snap/core20/2496
loop2 7:2 0 87M 1 loop /snap/lxd/29351
loop3 7:3 0 89.4M 1 loop /snap/lxd/31333
loop4 7:4 0 44.3M 1 loop /snap/snapd/23258
loop5 7:5 0 44.4M 1 loop /snap/snapd/23545
sda 8:0 0 447.1G 0 disk
sda1 8:1 0 1G 0 part /boot/efi
sda2 8:2 0 2G 0 part /boot
sda3 8:3 0 444G 0 part
sdb 8:16 0 29.1T 0 disk
ubuntu–vg-ubuntu–lv 253:0 0 100G 0 lvm /这里的sdb就是我要的盘,如何挂载
挂载 sdb 盘并设置开机自动挂载
你的 lsblk -l 输出中显示:
sdb 8:16 0 29.1T 0 disk
这表示 sdb 是一块 未分区 或 未挂载 的磁盘,总大小 29.1T。
下面是完整的 挂载 sdb 的步骤,包括 手动挂载、格式化、分区、以及开机自动挂载。
🔍 1. 检查 sdb 是否已有分区
运行:
sudo fdisk -l /dev/sdb
如果输出类似:
Disk /dev/sdb doesn't contain a valid partition table
说明 sdb 没有分区,需要格式化(如果有数据,请提前备份)。
📌 2. 挂载 sdb(如果已经格式化)
如果 sdb 已经格式化(fdisk -l 显示有分区,如 /dev/sdb1),可以直接挂载:
sudo mkdir -p /data # 创建挂载点
sudo mount /dev/sdb1 /data # 挂载
然后检查是否挂载成功:
df -h
如果 /data 目录中可以看到磁盘空间,说明挂载成功。
🔄 3. 创建分区(如果 sdb 没有分区)
如果 fdisk -l /dev/sdb 显示 sdb 没有分区,则需要先创建分区。
3.1 使用 fdisk 创建分区
sudo fdisk /dev/sdb
在 fdisk 命令行:
- 输入
n(新建分区) - 按
Enter(默认主分区) - 按
Enter(使用默认起始扇区) - 按
Enter(使用整个磁盘) - 输入
w(写入并退出)
3.2 格式化分区
假设分区名称为 /dev/sdb1,使用 mkfs.ext4 进行格式化:
sudo mkfs.ext4 /dev/sdb1
⚠ 警告:格式化会清空所有数据!如果 sdb 里有数据,请先备份。
📌 4. 手动挂载 sdb1
创建挂载点:
sudo mkdir -p /data
挂载磁盘:
sudo mount /dev/sdb1 /data
检查是否成功:
df -h
如果 /data 显示 sdb1 的容量,说明挂载成功。
🔄 5. 设置开机自动挂载
5.1 获取 sdb1 的 UUID
运行:
sudo blkid /dev/sdb1
示例输出:
/dev/sdb1: UUID="1234-ABCD-5678-EFGH" TYPE="ext4"
5.2 编辑 /etc/fstab
sudo nano /etc/fstab
添加一行:
UUID=1234-ABCD-5678-EFGH /data ext4 defaults 0 2
解释:
UUID=1234-ABCD-5678-EFGH(用blkid输出的 UUID)。/data(挂载点)。ext4(文件系统类型)。defaults(挂载选项)。0 2(文件系统检查顺序,2代表非/分区)。
保存并退出(按 Ctrl + X → Y → Enter)。
5.3 测试 /etc/fstab 是否正确
sudo mount -a
如果没有错误,则 /etc/fstab 配置正确。
📌 6. 重新启动并检查
sudo reboot
重启后检查:
df -h
如果 /data 仍然正确挂载,说明 挂载成功 🎉。
🚀 总结
| 步骤 | 命令 | 说明 |
|---|---|---|
| 检查磁盘 | lsblk / fdisk -l /dev/sdb | 确保 sdb 存在 |
| 手动挂载(已有格式) | sudo mount /dev/sdb1 /data | 如果 sdb 已有格式 |
| 创建分区(若无) | sudo fdisk /dev/sdb → n → w | 创建 /dev/sdb1 |
| 格式化(清空数据) | sudo mkfs.ext4 /dev/sdb1 | 格式化为 ext4 |
| 创建挂载点 | sudo mkdir -p /data | 确保 /data 存在 |
| 挂载磁盘 | sudo mount /dev/sdb1 /data | 手动挂载 |
| 获取 UUID | sudo blkid /dev/sdb1 | 用于 /etc/fstab 持久挂载 |
配置 /etc/fstab | sudo nano /etc/fstab | 设置开机自动挂载 |
| 测试挂载 | sudo mount -a | 检查 /etc/fstab 配置 |
| 重启检查 | sudo reboot → df -h | 确保 /data 盘自动挂载 |
🚀 现在你的 /data 盘应该可以 永久自动挂载 了!
如果还有问题,提供 lsblk、df -h 和 /etc/fstab 配置,我可以继续帮你排查!😊
后记
2025年2月22日19点18分于上海,在GPT 4o大模型辅助下完成。确实完成了服务器挂载的任务。
相关文章:
Ubuntu服务器 /data 盘需要手动挂载的解决方案
服务器 /data 盘需要手动挂载的解决方案 如果重启服务器后,发现 /data 盘 没有自动挂载,通常是因为: /etc/fstab 配置文件 没有正确设置 自动挂载。该磁盘 没有被正确识别,需要手动挂载。文件系统错误 导致挂载失败。 下面是解…...
无法打开包括文件: “crtdbg.h”: No such file or directory
目录 无效解决措施(重装WindowsSDK) 有效解决措施 创建环境变量 添加环境变量INCLUDE 添加环境变量LIB RC无法运行 问题现象描述 复制以下文件至Error路径 无效解决措施(重装WindowsSDK) 参考文献:94176676/227706449-a5222d7d-d8d2-4a19-addb-8f546e69786f…...
番茄工作法html实现
对比了deepseek-r1-online和本地部署的14b的版本,输出的输出的html页面。 在线满血版的功能比较强大,可以一次完成所有要求。14b版本的功能有一些欠缺,但是基本功能也是写了出来了。 input write a html named Pomodoro-clock which “hel…...
多源 BFS 算法详解:从原理到实现,高效解决多源最短路问题
多源 BFS 是一种解决 边权为 1 的多源最短路问题 的高效算法。其核心思想是将所有源点视为一个“超级源点”,通过一次 BFS 遍历即可计算所有节点到最近源点的最短距离。以下从原理、实现和代码示例三个方面深入讲解: 目录 一、原理分析 1. 单源 BFS vs…...
使用IDEA提交SpringBoot项目到Gitee上
登录Gitee并新建仓库 创建本地仓库 提交本地代码到本地仓库 提交本地代码到远程仓库...
我们来学人工智能 -- DeepSeek客户端
DeepSeek客户端 题记使用后记系列文章 题记 我选择了 Cherry Studio是国内产品由CherryHQ团队开源是一个平台在这里,有豆包、kimi、通义千问的入口当然,最主要是作为大模型的UI正如标题,这里,作为DeepSeep的客户端 使用 下载本…...
【Linux】匿名管道的应用场景-----管道进程池
目录 一、池化技术 二、简易进程池的实现: Makefile task.h task.cpp Initchannel函数: 创建任务: 控制子进程: 子进程执行任务: 清理收尾: 三、全部代码: 前言: 对于管…...
JavaScript函数-函数的使用
在JavaScript编程中,函数不仅是组织代码的基本单元,也是实现复杂逻辑、提高代码复用性和可维护性的关键工具。无论你是刚开始学习JavaScript的新手,还是希望深入理解函数使用的开发者,本文都将为你提供全面的指导。 函数的基础知…...
水果生鲜农产品推荐系统 协同过滤余弦函数推荐水果生鲜农产品 Springboot Vue Element-UI前后端分离 代码+开发文档+视频教程
水果生鲜农产品推荐系统 协同过滤余弦函数推荐水果生鲜农产品 Springboot Vue Element-UI前后端分离 【亮点功能】 1.SpringbootVueElement-UIMysql前后端分离 2.Echarts图表统计数据, 直观展示数据情况 3.发表评论后,用户可以回复评论, 回复的评论可以被再次回复, …...
Android输入事件传递流程系统源码级解析
1. 硬件层到Linux内核 设备节点:触摸事件由内核驱动捕获,写入/dev/input/eventX。关键结构体:input_event(包含时间戳、类型、代码、值)。 2. Native层处理(system_server进程) 2.1 EventHub …...
自制操作系统学习第七天
今天要做什么? 实现HLT,不让计算机处于HALT(HLT).用C语言实现内存写入(错误,需要分析) 一:使用HLT,让计算机处于睡眠状态 写了下面这个程序,naskfunc.nas 函数名叫io_h…...
【多模态处理篇三】【DeepSeek语音合成:TTS音色克隆技术揭秘】
最近帮某明星工作室做AI语音助手时遇到魔幻需求——要求用5秒的咳嗽声克隆出完整音色!传统TTS系统直接翻车,生成的语音像得了重感冒的电音怪物。直到祭出DeepSeek的TTS音色克隆黑科技,才让AI语音从"机器朗读"进化到"声临其境"。今天我们就来扒开这个声音…...
Coze插件之基于IDE创建插件
上篇文章中,我们基于已有服务创建了一些插件和工具。方便我们开发更多工作流和智能体应用。 本篇文章要介绍的是基于IDE进行创建,为什么有了基于服务创建后还有基于IDE进行创建呢?基于IDE进行创建有哪些优势? 对于一些简单操作&…...
deepseek的模型经过训练 ai写出了linux 64位加壳软件
1. 加壳程序的设计目标 目标:保护64位Linux下的可执行文件,使其难以被反编译或调试。核心功能: 在运行时加载原始可执行文件并解密。隐藏壳代码和原程序的真正入口点。提供一定的反调试机制。 2. 思路 加壳流程: 加载器…...
解锁音频新境界:LALAL.AI 与 Audo Studio 深度解析
在音频处理的世界里,噪音常常是困扰我们的一大难题。无论是专业的音频工作者,还是普通的音频爱好者,都渴望拥有一款强大的工具来解决这个问题。今天,就为大家介绍两款来自 AI 工具导航(AIDH.NET)的 AI 语音…...
Kubernetes 使用 Kube-Prometheus 构建指标监控 +飞书告警
1 介绍 Prometheus Operator 为 Kubernetes 提供了对 Prometheus 机器相关监控组件的本地部署和管理方案,该项目的目的是为了简化和自动化基于 Prometheus 的监控栈配置,主要包括以下几个功能: Kubernetes 自定义资源:使用 Kube…...
20250221 NLP
1.向量和嵌入 https://zhuanlan.zhihu.com/p/634237861 encoder的输入就是向量,提前嵌入为向量 二.多模态文本嵌入向量过程 1.文本预处理 文本tokenizer之前需要预处理吗? 是的,文本tokenizer之前通常需要对文本进行预处理。预处理步骤可…...
【C++】const关键字的作用及常见应用场景
一、核心作用 用于定义“常量”,限制程序对变量的修改,提升代码安全性和可读性。其核心作用包括: 避免误修改:明确标识不可变数据。编译器优化:常量可被放入符号表,减少内存访问,优化执行效率…...
04控制流
一、二路分支 逻辑:程序中某段代码需要在满足某个条件时才能运行形式: if 语句:表达一种 如果-则 的条件执行关系if-else 语句:表达一种 如果-否则 的互斥分支关系 流程图: 注意: if 语句可以单独使用&…...
【Leetcode 每日一题】2506. 统计相似字符串对的数目
问题背景 给你一个下标从 0 0 0 开始的字符串数组 w o r d s words words。 如果两个字符串由相同的字符组成,则认为这两个字符串 相似 。 例如,“abca” 和 “cba” 相似,因为它们都由字符 ‘a’、‘b’、‘c’ 组成。然而,“…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
Docker拉取MySQL后数据库连接失败的解决方案
在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...
