当前位置: 首页 > article >正文

ubuntu 20.04挂载固态硬盘

我们有个工控机,其操作系统是ubuntu 20.04。可以接入一个固态硬盘。将固态硬盘插好后,就要进行挂载。在AI的指导下,过程并不顺利。记录如下:
在这里插入图片描述
在这里插入图片描述

1、检查硬盘是否被识别

安装好硬盘后,运行以下命令来检查Linux系统是否已识别新硬盘:

lsblk

结果如下

forlinx@FCU2601:~$ lsblk
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda            8:0    0 953.9G  0 disk
mmcblk0      179:0    0  28.9G  0 disk
|-mmcblk0p1  179:1    0     4M  0 part
|-mmcblk0p2  179:2    0     4M  0 part
|-mmcblk0p3  179:3    0    32M  0 part
|-mmcblk0p4  179:4    0    32M  0 part
|-mmcblk0p5  179:5    0    32M  0 part
`-mmcblk0p6  179:6    0  28.8G  0 part /
mmcblk0boot0 179:32   0     4M  1 disk
mmcblk0boot1 179:64   0     4M  1 disk

可以看到,有一个名为"sda"的盘被识别了。lsblk 是一个命令行工具,用于列出系统中所有存储设备的信息,基于 Linux 系统的主机使用它来显示有关可用块设备的信息。“lsblk” 代表 “list block devices”,即列出块设备。

2. 分区

sudo fdisk /dev/sda

为啥是/dev/sda 呢?在lsblk命令中,我们看到的明明是sda啊。在Linux系统中,设备文件是用户空间与内核空间交互的一种方式,它们通常位于/dev目录下。这个目录包含了所有设备的特殊文件,包括硬盘、分区、USB设备、声卡等,dev是所有设备文件所在的目录,因此要以“/dev”开头。

而sda则是系统为外接的硬盘自动分配的名字。sd本来代表“SCSI disk”,但泛指硬盘,a是序号,第一个是sda,第二个是sdb,。。。

在 fdisk 中操作如下:

输入 n 创建一个新分区:
选择 p(主分区)
分区号直接回车(默认1)
起始扇区回车(默认)
结束扇区回车(整个磁盘)
输入 w 保存并退出。

此时应该看到一个新的分区 /dev/sda1:

forlinx@FCU2601:/mnt/sda$ lsblk
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda            8:0    0 953.9G  0 disk
`-sda1         8:1    0 953.9G  0 part
mmcblk0      179:0    0  28.9G  0 disk
|-mmcblk0p1  179:1    0     4M  0 part
|-mmcblk0p2  179:2    0     4M  0 part
|-mmcblk0p3  179:3    0    32M  0 part
|-mmcblk0p4  179:4    0    32M  0 part
|-mmcblk0p5  179:5    0    32M  0 part
`-mmcblk0p6  179:6    0  28.8G  0 part /
mmcblk0boot0 179:32   0     4M  1 disk
mmcblk0boot1 179:64   0     4M  1 disk

3. 格式化为 ext4 文件系统

sudo mkfs.ext4 /dev/sda1

为什么要格式化为ext4文件系统?

ext4 是 Linux 系统中最常用、最稳定、兼容性最好的文件系统之一,适合大多数使用场景。格式化是为了让这块新硬盘能被 Linux 正确识别和使用。网上有些教程给出的例子是格式化为fuseblk,其实这可能是将固态硬盘当成U盘用,可插拔,而我是想永久性地扩展工控机的存储空间,因此还是选用ext4。

4. 创建挂载点目录

创建一个目录,用它指向固态硬盘。访问它即等于访问固态硬盘。

sudo mkdir /mnt/sda

这个名字自己起的,但mnt是约定俗成的名称,它是 Unix 和 Linux 系统中的一个传统目录,用于作为“挂载点”(mount point)来临时挂载文件系统的标准位置。这个目录的名称是“mount”的缩写,意指在此处挂载(mount)其他文件系统或外部存储设备。

5. 挂载

1)手动挂载

sudo mount -t ext4 /dev/sda1 /mnt/sda

将设备 /dev/sda1 这个分区挂载(mount)到 /mnt/sda 这个目录下,并指定文件系统类型为 ext4。但本语句只是临时挂载,当操作系统重启后,挂载即消失。应该使用下面的挂载方式。

-t ext4,指定要挂载的设备上的文件系统类型是 ext4。

2)自动挂载(写入 fstab)

修改系统文件/etc/fstab。这是一个非常重要的系统配置文件,在 Linux 系统中用于定义开机时自动挂载的文件系统(磁盘分区、网络存储等)。

首先备份一下

sudo cp /etc/fstab /etc/fstab.bak

打开文件:

sudo vi /etc/fstab

然后在文件/etc/fstab末尾加上一句:

/dev/sda1 /mnt/sda ext4 defaults 0 2

在这里插入图片描述
有关本语句的一些解释:

<挂载选项>:defaults
作用:设置挂载时的权限和行为。
defaults 的含义:是以下常用选项的缩写:
rw:可读可写(若设为 ro 则为只读)。
suid:允许设置 SUID 权限(用于某些特殊程序)。
dev:允许访问设备文件(如 /mnt/sda 下的 cdrom)。
exec:允许执行可执行文件(若设为 noexec 则禁止)。
auto:系统启动时自动挂载(若设为 noauto 则需手动挂载)。
nouser:普通用户不能挂载(只有 root 可挂载)。
async:异步读写(提升性能,但可能丢失数据,默认)。
自定义选项示例:
允许普通用户挂载:defaults,user
禁止自动挂载:defaults,noauto
强制为只读:ro

:0
作用:指定是否对该分区进行备份(由 dump 工具使用,现代系统几乎不用)。
值说明:
0:不备份。
1:每天备份。
2:不定期备份。
现状:多数场景下直接设为 0 即可。

:2
作用:指定系统启动时执行磁盘检查(fsck)的顺序。
值说明:
0:不检查(如 swap 分区、U 盘)。
1:优先检查根分区(/)(确保系统盘无错)。
2:检查其他分区(如数据盘、挂载的硬盘)。
注意:根分区必须设为 1,其他分区设为 2 或 0(非 ext4 格式设为 0)。

6. 权限分配

我目录挂载了以后,只有root才能写入,当前用户只读。人工智能一味地说,这个应该在fstab文件中设置。问题是,root可以写入啊,步骤5的自动挂载语句/dev/sda1 /mnt/sda ext4 defaults 0 2中,defaults就包含了指明挂载设备可读可写,而当前用户不能写入,是权限的问题,而并不是因为挂载时设为只读,相反,我们挂载时是指定可读可写的。

咋办呢?修改挂载目录的owner为当前用户

sudo chown forlinx:forlinx /mnt/sda  # 设置当前用户为所有者

7. 问题

在步骤5的自动挂载里,踩了一个坑。人工智能指点我,挂载的时候,要用UUID才够准确,但事实证明,采用UUID挂载,反而不能成功,不知道为什么。

1)为了获得固态硬盘的UUID,先运行语句

forlinx@FCU2601:~$ sudo blkid /dev/sda1
/dev/sda1: UUID="be676f65-feb3-4c68-bfac-b28649d605a5" TYPE="ext4" PARTUUID="53591fcc-01"

2)然后在/etc/fstab中加入挂载语句:

UUID=be676f65-feb3-4c68-bfac-b28649d605a5 /mnt/sda ext4 defaults 0 2

在这里插入图片描述
但事实上行不通,这样修改了fstab后,重启操作系统以后,根本没有挂载成功。如果手动挂载,运行语句“sudo mount -a”,还会报错:

forlinx@FCU2601:~/work/temp$ sudo mount -a
mount: /mnt/sda: wrong fs type, bad option, bad superblock on /dev/sda1, missing codepage or helper program, or other error.

一定是这样才行:

在这里插入图片描述

相关文章:

ubuntu 20.04挂载固态硬盘

我们有个工控机&#xff0c;其操作系统是ubuntu 20.04。可以接入一个固态硬盘。将固态硬盘插好后&#xff0c;就要进行挂载。在AI的指导下&#xff0c;过程并不顺利。记录如下&#xff1a; 1、检查硬盘是否被识别 安装好硬盘后&#xff0c;运行以下命令来检查Linux系统是否…...

【AI教我写网站-ECG datacenter】

阶段性总结&#xff1a;后端用户管理基础 在项目管理和协作中&#xff0c;清晰地阐述“为什么做”比“怎么做”更能凝聚共识和提供方向。我们不仅要理解技术实现&#xff0c;更要明白其背后的动机和意义。 让我们重新回顾并总结我们到目前为止的工作&#xff0c;这次会更侧重…...

2. Web网络基础 - 协议端口

深入解析协议端口与netstat命令&#xff1a;网络工程师的实战指南 在网络通信中&#xff0c;协议端口是服务访问的门户。本文将全面解析端口概念&#xff0c;并通过netstat命令实战演示如何监控网络连接状态。 一、协议端口核心知识解析 1. 端口号的本质与分类 端口范围类型说…...

PC与Windows远程连接与串流:方案简介(ZeroTier + Parsec、Moonlight + Sunshine、网易UU远程)

简介 在远程办公、云游戏、家用 NAS 串流、图形远程渲染等需求增长的背景下&#xff0c;越来越多用户开始寻找低延迟、高画质、跨网络可用的远程连接方案。今天这篇文章将深度分析三种目前在玩家圈和远程办公中都非常流行的组合方案&#xff1a; &#x1f7e2; ZeroTier Pars…...

SpringBoot+MySQL家政服务平台 设计开发

概述 基于SpringBootMySQL开发的家政服务平台完整项目&#xff0c;该系统实现了用户预约、服务管理、订单统计等核心功能&#xff0c;采用主流技术栈开发&#xff0c;代码规范且易于二次开发。 主要内容 系统功能架构 本系统采用前后端分离架构&#xff0c;前端提供用户交互…...

浏览器兼容-polyfill-本地服务-优化

babel和webpack结合 npx babel src --out-dir dist --presetsbabel/preset-env 这是把src下面的东西都用babel转化一下 webpack可以和babel结合使用&#xff0c;首先下载一个这东西&#xff1a; npm install babel-loader -D webpack配置&#xff1a; const path requir…...

c++ decltype关键字

decltype为类型推导关键字。 示例代码&#xff1a; // decltype也可用于函数模板编程: template<typename T, typename U> auto add(T t, U u) -> decltype(t u) {return t u; }// decltype推导函数返回类型 auto doubleNumFunc(int x) -> decltype(x * 2) {ret…...

分享今天做的力扣SQL题

其实做之前就打算分享的&#xff0c;但是做完又不想分享了。。。结果没几分钟&#xff0c;还是&#xff0c;写一下吧。我就当各位是监督我的。 说一下&#xff0c;这是第一天做SQL题&#xff0c;虽然我也是软件工程专业&#xff0c;但是学的本来就不好&#xff0c;又忘了个差不…...

全球化2.0|云轴科技ZStack助力香港服务机构VMware替代

香港一家大型社会服务机构长期致力于为公众提供支持与服务&#xff0c;是本地具有代表性的社会服务组织&#xff0c;在香港设有数十个服务中心。为应对VMware订阅模式带来的成本上升和硬件资源受限等问题&#xff0c;该机构决定采用云轴科技ZStack Cloud云平台替代VMware虚拟化…...

Selenium自动化测试工具安装和使用(PyCharm)

一&#xff0c;了解驱动 手工测试我们很了解&#xff0c;假设我要测试百度首页是否正常&#xff0c;只需要鼠标点击打开浏览器&#xff0c;然后输入百度网址即可 但是对于程序来说&#xff0c;打开浏览器&#xff0c;需要用到对应的驱动&#xff0c;就好比你给电脑装了个外置…...

【网络安全】fastjson原生链分析

fastjson 原生链 前言 说起 fastjson 反序列化&#xff0c;大部分的利用都是从 type 把 json 串解析为 java 对象&#xff0c;在构造方法和 setter、getter 方法中&#xff0c;做一些文件或者命令执行的操作。当然&#xff0c;在 fastjson 的依赖包中&#xff0c;也存在着像 …...

【人工智能 | 项目开发】Python Flask实现本地AI大模型可视化界面

文末获取项目源码。 文章目录 项目背景项目结构app.py(后端服务)index.html(前端界面)项目运行项目图示项目源码项目背景 随着人工智能技术的快速发展,大语言模型在智能交互领域展现出巨大潜力。本项目基于 Qwen3-1.7B 模型,搭建一个轻量化的智能聊天助手,旨在为用户提…...

uni-app 项目支持 vue 3.0 详解及版本升级方案?

uni-app 支持 Vue 3.0 详解及升级方案 一、uni-app 对 Vue 3.0 的支持现状 uni-app 从 3.0 版本 开始支持 Vue 3.0&#xff0c;主要变化包括&#xff1a; 核心框架升级&#xff1a; 基于 Vue 3.0 的 Composition API 和 Options API 双模式支持提供 vueuse/core 等组合式 API…...

SpringBoot3中使用虚拟线程的详细过程

在 Spring Boot 3 中使用 Java 21 的虚拟线程&#xff08;Virtual Threads&#xff09;可以显著提升 I/O 密集型应用的并发能力。以下是详细实现步骤&#xff1a; 1. 环境准备 JDK 21&#xff1a;确保安装 JDK 21 或更高版本Spring Boot 3.2&#xff1a;最低要求&#xff08;p…...

达梦使用存储过程实现删除重复记录、判断并添加主键和自增列的逻辑

在达梦数据库中&#xff0c;要确保主键的唯一性约束&#xff0c;可以在存储过程的最前面添加删除重复记录的逻辑。以下是一个完整的存储过程&#xff0c;包含删除重复记录、判断并添加主键和自增列的逻辑&#xff1a; 存储过程示例 -- 切换到指定模式;schema_name 是目标模…...

MySQL间隙锁入手,拿下间隙锁面试与实操

一、MySQL 间隙锁&#xff0c;究竟是什么&#xff1f; 在 MySQL 的世界里&#xff0c;间隙锁&#xff08;Gap Lock&#xff09;就像是一个默默守护数据一致性的卫士&#xff0c;看似低调&#xff0c;却在并发控制中扮演着至关重要的角色。​ 想象一下&#xff0c;你去图书馆借…...

词法分析和词性标注 自然语言处理

目录 一. 概述 1 不同语言的词法分析 2 英语的形态分析 英语单词的形态还原&#xff08;和正常英语的词法变化一样&#xff09; 1.有规律变化单词的形态还原 ​编辑 2.动词&#xff64;名词&#xff64;形容词&#xff64;副词不规则变化单词的形态还原 3.对于表示年代&…...

QT聊天项目DAY14

1. 客户端登录 1.1 初始化玩家头像 将头像的大小固定在250 * 250 void InitHeadImage(); // 初始化头像/* 初始化头像 */ void LoginWidget::InitHeadImage() {// 加载头像QPixmap OriginalPixmap(":/Chat/Images/head_5.jpg");OriginalPixmap …...

架构设计技巧——架构设计模板

一份实用、高效、覆盖核心要素的架构设计模板是确保设计质量、促进团队沟通和指导实施的关键。以下是一个经过提炼的架构设计文档核心模板框架&#xff0c;结合了业界最佳实践&#xff0c;并强调灵活裁剪&#xff1a; 架构设计文档模板 (核心框架) 文档标识 项目/系统名称&a…...

交易系统开发:跨境资本的高速通道架构解密

连接纽约、香港与内陆的金融管道工程 总收益互换&#xff08;TRS&#xff09;在港美股投资中扮演着跨境资本流动的“隐形桥梁”。本文基于真实跨境券商系统开发实践&#xff0c;深入解析支持多市场、多币种、多通道的TRS平台架构设计与业务解决方案。 一、港美股TRS的核心价值&…...

【Ragflow】27.RagflowPlus(v0.4.1):小版本迭代,问题修复与功能优化

概述 RagflowPlus v0.4.0 在发布后&#xff0c;收到了积极的反馈&#xff0c;同时也包含一些问题。 本次进行一轮小版本更新&#xff0c;发布 v0.4.1 版本&#xff0c;对已知问题进行修复&#xff0c;并对部分功能进行进一步优化。 开源地址&#xff1a;https://github.com/…...

易语言是什么?易语言能做什么?

易语言&#xff08;EPL&#xff09;是什么&#xff1f;​​ ​​易语言​​&#xff08;Easy Programming Language&#xff0c;简称EPL&#xff09;是一款​​面向中文用户的编程语言​​&#xff0c;由中国人吴涛于2000年开发&#xff0c;专为降低编程门槛设计。其核心特点是…...

【Oracle】数据仓库

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 数据仓库概述1.1 为什么需要数据仓库1.2 Oracle数据仓库架构1.3 Oracle数据仓库关键技术 2. 数据仓库建模2.1 维度建模基础2.2 星形模式设计2.3 雪花模式设计2.4 缓慢变化维度&#xff08;SCD&#xff09;处…...

基于开源AI大模型AI智能名片S2B2C商城小程序源码的中等平台型社交电商运营模式研究

摘要&#xff1a;本文聚焦中等平台型社交电商&#xff0c;探讨其与传统微商及大型社交电商平台的差异&#xff0c;尤其关注产品品类管理对代理运营的影响。通过引入开源AI大模型、AI智能名片与S2B2C商城小程序源码技术&#xff0c;构建智能化运营体系。研究结果表明&#xff0c…...

typeof运算符 +unll和undefined的区别

typeof运算符 JavaScript 有三种方法&#xff0c;可以确定一个值到底是什么类型。而我们 现在需要接触到的就是typeof 数值返回number 1 typeof 123 // "number" 字符串返回string 1 typeof 123 // "string" 布尔值返回boolean 1 typeof fal…...

Vite 双引擎架构 —— Esbuild 概念篇

Vite 底层采用 双引擎架构&#xff0c;核心构建引擎是 Esbuild 和 Rollup&#xff0c;二者在开发和生产环境中分工协作&#xff0c;共同实现高性能构建。不可否认&#xff0c;作为 Vite 的双引擎之一&#xff0c;Esbuild 在很多关键的构建阶段(如依赖预编译、TS 语法转译、代码…...

Life:Internship finding

1. 前言 fishwheel writes this Blog to 记录自分自身在研二下找实习的经历。When 写这篇 Blog 的时候我的最后一搏也挂掉了&#xff0c;只能启用保底方案了。When I 打开我的邮箱时&#xff0c;发现里面有 nearly 100 多封与之相关的邮件&#xff0c;顿时感到有些心凉&#x…...

阿里云Alibaba Cloud安装Docker与Docker compose【图文教程】

个人记录 进入控制台&#xff0c;找到定时与自动化任务 进入‘安装/卸载扩展程序’ 点击‘安装扩展程序’ 选择docker社区版&#xff0c;点击下一步与确定&#xff0c;等待一会 安装成功 查询版本 查询docker sudo docker version查询docker compose sudo docker compo…...

GitHub 趋势日报 (2025年06月07日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 603 netbird 459 dify 440 cognee 352 omni-tools 337 note-gen 239 ragbits 237 …...

Java编程之组合模式

引言 在软件开发的世界里&#xff0c;我们经常会遇到需要表示"部分-整体"层次结构的场景。比如文件系统中的文件和文件夹、图形界面中的各种组件、企业组织架构中的部门和员工等。这些场景都有一个共同的特点&#xff1a;我们需要以一种统一的方式来处理单个对象和由…...