linux的挂卸载
挂卸载操作
在 Linux 系统中,挂载(mount)和卸载(umount)是管理文件系统和存储设备的核心操作。通过这两个操作,我们可以将设备(如硬盘、光盘、U盘等)或网络文件系统的内容集成到系统的目录树中,或者在不再需要访问时断开它们的连接。
1. 挂载(Mount)操作详解
**挂载(mount)**是将外部设备或文件系统与 Linux 系统中的一个目录关联起来,使得该设备或文件系统中的文件能够在 Linux 系统中进行访问。
挂载基本命令:
mount <设备或文件系统> <挂载点>
- 设备或文件系统:可以是物理设备(如硬盘、U盘等),也可以是网络共享(如 NFS 或 CIFS)或其他挂载的文件系统。
- 挂载点:是文件系统在 Linux 系统中访问的路径。通常是一个空的目录,挂载后,该目录就代表了设备中的文件系统。
1.1 常见挂载方式
-
挂载本地硬盘:
mount /dev/sda1 /mnt这里
/dev/sda1是硬盘的第一个分区,/mnt是挂载点。挂载后,可以在/mnt目录下访问/dev/sda1中的文件。 -
挂载 CD-ROM 或光盘:
mount /dev/cdrom /mnt/cdrom将光盘或虚拟光驱(如 ISO 文件)挂载到
/mnt/cdrom目录。 -
挂载 NFS 文件系统(网络文件系统):
mount -t nfs 192.168.1.100:/exported/dir /mnt/nfs将远程 NFS 服务器
192.168.1.100上的/exported/dir目录挂载到本地的/mnt/nfs目录。
1.2 常用挂载选项
-
-t:指定文件系统类型,如ext4、ntfs、nfs等。mount -t ext4 /dev/sda1 /mnt -
-o:指定挂载的选项,如读写权限、只读、自动挂载等。常见选项包括:ro:只读挂载。rw:读写挂载。noexec:禁止执行挂载目录下的程序。user:允许普通用户挂载。auto:系统启动时自动挂载。defaults:使用默认选项。
例如,使用
rw选项将硬盘挂载为可读写:mount -o rw /dev/sda1 /mnt -
挂载的目标位置:挂载点必须是一个空的目录。例如,如果要挂载
/dev/sda1,首先需要确保/mnt目录为空。
1.3 查看已挂载的文件系统
mount:不带参数时,列出当前系统中所有已挂载的文件系统。mountdf:显示所有挂载的文件系统及其磁盘空间使用情况。df -h
1.4 自动挂载(/etc/fstab)
通过编辑 /etc/fstab 文件,可以让系统在启动时自动挂载某些文件系统。该文件定义了系统启动时如何挂载设备和文件系统。
格式:
<设备> <挂载点> <文件系统类型> <挂载选项> <转储> <检查>
示例:
/dev/sda1 /mnt ext4 defaults 0 2
这表示系统启动时会自动将 /dev/sda1 挂载到 /mnt,使用 ext4 文件系统,挂载选项为 defaults。
2. 卸载(Umount)操作详解
**卸载(umount)**是将已经挂载的文件系统从目录树中移除,断开该文件系统与系统的连接。卸载操作会使得文件系统不可访问。
卸载基本命令:
umount <挂载点或设备>
-
你可以通过指定设备或挂载点来卸载文件系统。比如:
umount /mnt这会卸载
/mnt目录挂载的文件系统。 -
如果要卸载特定设备,也可以使用设备路径:
umount /dev/sda1
2.1 常见卸载问题
-
设备忙(device is busy):当试图卸载一个正在使用的设备时,可能会出现“设备忙”的错误。常见原因包括:
- 当前目录或子目录中有文件正在被使用。
- 当前目录或子目录有进程正在访问。
解决办法:
- 使用
lsof或fuser命令查看哪个进程在使用该设备:lsof /mnt - 或者使用:
fuser -m /mnt
-
强制卸载:如果设备正在被使用且无法正常卸载,可以使用
-l(延迟卸载)或-f(强制卸载)选项:umount -f /mnt
2.2 查看卸载情况
可以通过 mount 或 df 命令确认文件系统是否已成功卸载。
mount:没有挂载的文件系统不会列出。mountdf:卸载后该文件系统不会出现在输出中。df -h
3. 挂载和卸载的注意事项
- 挂载点必须为空:挂载点(目录)必须是空的,否则挂载操作会失败。
- 卸载前确保没有进程占用:卸载之前必须确保没有任何进程在使用该设备。如果有,可以通过
lsof或fuser查看并终止相关进程。 - 卸载顺序:对于挂载在其他挂载点下的文件系统(例如嵌套的文件系统),需要按相反的顺序卸载。
- 先卸载子文件系统,后卸载父文件系统。
4. 总结
- 挂载(mount):将一个文件系统或存储设备连接到 Linux 系统的某个目录下,使得该文件系统的内容可以访问。
- 卸载(umount):断开文件系统与 Linux 系统的连接,使得该文件系统不可访问。
- 使用
mount和umount命令时,要注意文件系统的类型、挂载点的状态以及设备是否被占用。
新建文件系统并挂载
在 Linux 系统中,创建新文件系统并将其挂载到指定目录,涉及以下几个步骤:创建分区、格式化分区、创建挂载点、挂载文件系统、以及修改 fstab 文件以便系统启动时自动挂载。
步骤 1: 创建分区
首先,你需要一个磁盘或一个未分配的存储设备来创建新文件系统。如果你的磁盘没有分区,或者你想重新分区,可以使用 fdisk(对于 MBR 分区表)或 parted(对于 GPT 分区表)等工具来创建分区。
使用 fdisk 创建分区(MBR 分区表)
sudo fdisk /dev/sdX
/dev/sdX 是你要分区的磁盘(如 /dev/sda)。命令执行后进入交互式界面,使用以下命令:
- 输入
n创建新分区。 - 输入
p选择主分区(或e选择扩展分区)。 - 输入分区的起始和结束位置(默认设置一般可以直接按回车)。
- 输入
w保存更改并退出。
使用 parted 创建分区(GPT 分区表)
sudo parted /dev/sdX
进入交互模式后,使用以下命令:
- 输入
mklabel gpt创建一个 GPT 分区表。 - 输入
mkpart primary ext4 0% 100%创建一个ext4格式的分区,大小为磁盘的 100%。 - 输入
quit退出。
步骤 2: 格式化分区
创建分区后,下一步是将该分区格式化成一个文件系统。常用的文件系统格式有 ext4、xfs、btrfs 等,这里以 ext4 为例。
sudo mkfs.ext4 /dev/sdX1
/dev/sdX1是新创建的分区,例如/dev/sda1。- 如果你选择其他文件系统类型(如
xfs),可以将mkfs.ext4替换为mkfs.xfs或其他命令。
步骤 3: 创建挂载点
挂载点是你用来访问该文件系统的目录。通常,挂载点会在 /mnt 或 /media 目录下创建,但你也可以选择任何路径。
sudo mkdir /mnt/mydata
- 这里我们在
/mnt目录下创建了一个名为mydata的挂载点。
步骤 4: 挂载文件系统
使用 mount 命令将新格式化的分区挂载到刚刚创建的挂载点。
sudo mount /dev/sdX1 /mnt/mydata
/dev/sdX1是新创建并格式化的分区。/mnt/mydata是挂载点。
此时,你可以通过访问 /mnt/mydata 来操作该文件系统中的文件。
步骤 5: 配置开机自动挂载
为了确保每次系统启动时自动挂载该文件系统,需要将其添加到 /etc/fstab 文件中。
首先,获取分区的 UUID:
sudo blkid /dev/sdX1
这将输出类似以下的信息:
/dev/sda1: UUID="xxxx-xxxx" TYPE="ext4" PARTUUID="yyyyyyyy"
然后编辑 /etc/fstab 文件:
sudo nano /etc/fstab
在文件的最后添加一行,格式如下:
UUID=xxxx-xxxx /mnt/mydata ext4 defaults 0 2
UUID=xxxx-xxxx是你从blkid命令中获得的 UUID。/mnt/mydata是挂载点。ext4是文件系统类型。defaults是挂载选项,表示使用默认选项。0表示不需要备份。2表示文件系统检查的顺序,根文件系统通常设置为1,其他文件系统通常设置为2。
保存并退出编辑器。
步骤 6: 验证挂载
最后,检查挂载是否成功:
sudo mount -a
该命令会根据 /etc/fstab 中的配置尝试挂载所有未挂载的文件系统。
你还可以使用 df 或 mount 命令确认挂载:
df -h
mount | grep /mnt/mydata
如果显示挂载信息,说明新文件系统已经成功挂载。
总结
- 使用
fdisk或parted创建分区。 - 使用
mkfs格式化新分区。 - 创建挂载点并使用
mount命令挂载分区。 - 修改
/etc/fstab以便开机自动挂载。
按照这些步骤,你就可以创建并挂载新的文件系统了。
在 Linux 系统中,df 命令用于显示文件系统的磁盘空间使用情况,通常用于检查挂载的文件系统、可用空间、已用空间等。df -h 和 df -ah 都是 df 命令的变种,它们的区别在于输出的内容和单位的不同。
查询挂载点详情
1. df -h 命令
df -h 显示文件系统的磁盘空间使用情况,并使用 人类可读 的格式(即自动选择适当的单位,例如 KB、MB、GB),使得输出结果更容易理解。
-h选项表示 “human-readable”,即以易于理解的单位(KB、MB、GB 等)显示空间。
示例
df -h
输出示例:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 20G 28G 43% /
/dev/sdb1 100G 10G 85G 11% /mnt/data
解释:
Filesystem: 文件系统的名称或设备。Size: 文件系统的总大小。Used: 已用空间。Avail: 可用空间。Use%: 已用空间的百分比。Mounted on: 文件系统的挂载点。
2. df -ah 命令
df -ah 也是 df 命令的变种,其中:
-a选项表示显示所有文件系统,包括系统文件、虚拟文件系统和挂载的tmpfs等。-h选项表示以人类可读的格式显示磁盘空间。
因此,df -ah 会显示更多的挂载点信息,包括虚拟文件系统(如 tmpfs),而不仅仅是常规的磁盘分区。
示例
df -ah
输出示例:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 20G 28G 43% /
tmpfs 1.9G 1.3M 1.9G 1% /dev/shm
/dev/sdb1 100G 10G 85G 11% /mnt/data
解释:
tmpfs是一个虚拟文件系统,通常用来在内存中创建临时文件系统。/dev/shm是 Linux 系统中的一个临时内存挂载点。/dev/sda1和/dev/sdb1仍然是实际的磁盘分区。
总结
df -h:显示常规磁盘分区的使用情况,并以人类可读的格式(KB、MB、GB)显示大小。df -ah:除了显示常规磁盘分区外,还会显示所有文件系统的使用情况,包括虚拟文件系统(如tmpfs和devtmpfs),并以人类可读的格式显示。
如果你希望查看系统中的所有挂载点(包括虚拟文件系统等),使用 df -ah;如果只关心实际磁盘分区的使用情况,则使用 df -h。
相关文章:
linux的挂卸载
挂卸载操作 在 Linux 系统中,挂载(mount)和卸载(umount)是管理文件系统和存储设备的核心操作。通过这两个操作,我们可以将设备(如硬盘、光盘、U盘等)或网络文件系统的内容集成到系统…...
【和春笋一起学C++】OpenCV中数组和指针运用实例
前言:前面学习了数组和指针在C中的处理原理,本文通过自己编写一个图像处理的函数实例来加深对数组和指针的理解。为什么是图像处理呢,因为图像数据是一个二维矩阵,相当于一个二维数组,前面学习了一维数组,现…...
Maya 中创建游戏角色的头发,并将其导出到 Unreal Engine 5
这段视频教程讲解了如何在 Maya 中创建游戏角色的头发,并将其导出到 Unreal Engine 5 中,重点是如何处理头发的物理模拟和材质。 作者 Andrew Giovannini 首先展示了一个已完成的带物理模拟的头发模型,并介绍了他自己的游戏行业背景。然后&a…...
React 路由(React Router):在 React 应用中管理路由
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...
SAP-CPI组件Transformation介绍之Converter
1.配置CSV to XML Converter Field Description XML Schema 选择Select按钮,选择合适 XSD 文件. 或者可以选择 Upload from File System 系统中查找合适的XML文件....
Laravel 代理收益排行榜
创建了一个收入表 CREATE TABLE income_logs (id int(11) unsigned NOT NULL AUTO_INCREMENT,order_id int(11) NOT NULL COMMENT 订单ID,type int(11) NOT NULL DEFAULT 0 COMMENT 类型 0 支出 1收入,user_id int(11) NOT NULL COMMENT 消费者用户,price decimal(10,2) NOT…...
LeetCode hot100面试背诵版(自用)
点击题目可以跳转到LeetCode 哈希 两数之和 public int[] twoSum(int[] nums, int target) {int lengthnums.length;int[] ans new int[2];for (int i 0; i <length-1 ; i) {for (int j i1; j < length; j) {if(nums[i]nums[j]target){ans[0]i;ans[1]j;}}}return an…...
常见的Web安全漏洞——XSS
概念 跨站脚本攻击(XSS),指攻击者通过篡改网页,嵌入恶意脚本程序,在用户浏览网页时,控制用户浏览器进行恶意操作。 XXS的分类 反射型XSS存储型XSSDOM型XSS 原理 反射型XSS 接收用户提交的访问者的姓名࿰…...
liteflow 架构详解
LiteFlow 是一个轻量级的、高性能的流程编排框架,主要用于解决复杂业务流程的编排问题。它提供了一种简单而强大的方式来定义和执行复杂的业务流程。下面是 LiteFlow 的架构详解: 核心概念 组件(Component):是流程中…...
国产麒麟操作系统上运行LabVIEW
LabVIEW 目前并没有官方支持直接在国产麒麟操作系统(Kylin OS)上运行。LabVIEW 是由美国国家仪器公司(NI)开发的软件,主要面向 Windows 和 Linux 操作系统。麒麟操作系统虽然基于 Linux,但其内核和一些软件…...
【C语言】结构体(一)
一,是什么 结构体就是一些值的集合,这些值称为成员变量。 结构体的每个成员可以是不同类型的变量。说到集合,数组也是集合,但是不同的是数组只能是相同类型元素的集合。 二,结构体的声明 struct tag { member1;…...
C++《set与map》
在之前我们已经学习了解了CSTL当中的string和vector等容器,现在我们已经懂得了这些容器提供的接口该如何使用,并且了解了这些容器的底层结构。接下来我们在本篇当中将继续学习STL内的容器set与map,在此这两个容器与我们之前学习的容器提供的成…...
深度学习-52-AI应用实战之基于Yolo8的目标检测自动标注
文章目录 1 YOLOv81.1 YOLOV8的不同版本1.2 可检测类别1.3 数据说明1.4 网络结构1.5 算法核心步骤2 目标检测的基本原理2.1 安装yolov8(cpu版本)2.2 图片检测2.3 视频检测2.4 自动标注2.5 保存标注结果3 参考附录1 YOLOv8 YOLOv8是一种前沿的计算机视觉技术,它基于先前YOLO版…...
【Elasticsearch】05-DSL查询
1. 查询所有 es最多只支持查询1万条数据。 # 查询所有 GET /items/_search {"query": {"match_all": {}} }2. 叶子查询 全文检索 会对结果进行相关度打分。 # 检索单个字段 GET /items/_search {"query": {"match": {"name&…...
qml项目创建的区别
在Qt框架中,你可以使用不同的模板来创建应用程序。你提到的这几个项目类型主要针对的是Qt的不同模块和用户界面技术。下面我将分别解释这些项目类型的区别: 根据你提供的信息,以下是每个项目模板的详细描述和适用场景: Qt Widgets…...
.NET8/.NETCore 依赖注入:自动注入项目中所有接口和自定义类
.NET8/.NETCore 依赖接口注入:自动注入项目中所有接口和自定义类 目录 自定义依赖接口扩展类:HostExtensions AddInjectionServices方法GlobalAssemblies 全局静态类测试 自定义依赖接口 需要依赖注入的类必须实现以下接口。 C# /// <summary>…...
Flutter:city_pickers省市区三级联动
pubspec.yaml city_pickers插件地址 自己用的GetBuilder页面模板 cupertino_icons: ^1.0.8 # 省市区城市选择 city_pickers: ^1.3.0编辑地址页面:controller class AddressEditController extends GetxController {AddressEditController();Future<Result?>…...
Kafka-Connect自带示例
一、上下文 《Kafka-Connect》中已经阐述了Kafka-Connect的理论知识,为了更生动的理解它,我们今天通过官方的一个小例子来感受下它的妙用。 二、创建topic kafka-topics --create --topic connect-test --bootstrap-server cdh1:9092 --partitions 2 -…...
Hbase应用案例 随机号码生成
Hbase应用案例1 随机号码生成 在Hbase中插入如下格式的数据,数据内容随机生成 名称示例说明phonenumber158randomrowkey,号码dnum199randomcolumn,另一位通话者lengthrandomcolumn,时长valuerandomcolumn,接收或拨打…...
论文阅读——量子退火Experimental signature of programmable quantum annealing
摘要:量子退火是一种借助量子绝热演化解决复杂优化问题的通用策略。分析和数值证据均表明,在理想化的封闭系统条件下,量子退火可以胜过基于经典热化的算法(例如模拟退火)。当前设计的量子退火装置的退相干时间比绝热演…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...
Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
前言:本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中,跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南,你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案,并结合内网…...
ubuntu中安装conda的后遗症
缘由: 在编译rk3588的sdk时,遇到编译buildroot失败,提示如下: 提示缺失expect,但是实测相关工具是在的,如下显示: 然后查找借助各个ai工具,重新安装相关的工具,依然无解。 解决&am…...
