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

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,。。。

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.

一定是这样才行:

在这里插入图片描述

相关文章:

  • Windows下WSL(Ubuntu)安装1Panel
  • Ubuntu 挂载新盘
  • 飞腾D2000,麒麟系统V10,docker,ubuntu1804,小白入门喂饭级教程
  • seafile:ubuntu搭建社区版seafile12.0
  • 解决 Ubuntu 20.04 虚拟机中 catkin_make 编译卡死问题
  • CppCon 2014 学习:Anatomy of a Smart Pointer
  • windows安装和部署docker
  • 八.MySQL复合查询
  • LangChain操作指南
  • 手把手教你用Appsmith打造企业级低代码平台:从部署到性能调优实战
  • 化工厂爆炸事件看制造业AI转型
  • Manus AI与多语言手写识别的创新革命:从技术突破到行业赋能
  • SpringBoot 自定义注解实现限流
  • 【操作系统原理08】文件管理
  • (三)动手学线性神经网络:从数学原理到代码实现
  • git clone报错:SSL certificate problem: unable to get local issuer certificate
  • 物联网数据归档方案选择分析
  • 【Bluedroid】蓝牙启动之sdp_init 源码解析
  • 帝可得- 人员管理
  • Linux系统-基本指令(5)
  • 做动漫网站/seo技术是什么意思
  • 律师事务所网站设计/小程序开发教程
  • 博客网站建设源码/正规接单赚佣金的app
  • 电商网站建设电话/广东省自然资源厅
  • 建站公司平台/品牌宣传
  • 广州手机网站建设公司/服装网络营销策划书