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
摘要:量子退火是一种借助量子绝热演化解决复杂优化问题的通用策略。分析和数值证据均表明,在理想化的封闭系统条件下,量子退火可以胜过基于经典热化的算法(例如模拟退火)。当前设计的量子退火装置的退相干时间比绝热演…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
小木的算法日记-多叉树的递归/层序遍历
🌲 从二叉树到森林:一文彻底搞懂多叉树遍历的艺术 🚀 引言 你好,未来的算法大神! 在数据结构的世界里,“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的,它…...
数据库——redis
一、Redis 介绍 1. 概述 Redis(Remote Dictionary Server)是一个开源的、高性能的内存键值数据库系统,具有以下核心特点: 内存存储架构:数据主要存储在内存中,提供微秒级的读写响应 多数据结构支持&…...
Docker、Wsl 打包迁移环境
电脑需要开启wsl2 可以使用wsl -v 查看当前的版本 wsl -v WSL 版本: 2.2.4.0 内核版本: 5.15.153.1-2 WSLg 版本: 1.0.61 MSRDC 版本: 1.2.5326 Direct3D 版本: 1.611.1-81528511 DXCore 版本: 10.0.2609…...
使用homeassistant 插件将tasmota 接入到米家
我写一个一个 将本地tasmoat的的设备同通过ha集成到小爱同学的功能,利用了巴法接入小爱的功能,将本地mqtt转发给巴法以实现小爱控制的功能,前提条件。1需要tasmota 设备, 2.在本地搭建了mqtt服务可, 3.搭建了ha 4.在h…...
第6章:Neo4j数据导入与导出
在实际应用中,数据的导入与导出是使用Neo4j的重要环节。无论是初始数据加载、系统迁移还是数据备份,都需要高效可靠的数据传输机制。本章将详细介绍Neo4j中的各种数据导入与导出方法,帮助读者掌握不同场景下的最佳实践。 6.1 数据导入策略 …...
云原生技术驱动 IT 架构现代化转型:企业实践与落地策略全解
📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、背景:IT 架构演进的战略拐点 过去十年,企业 IT 架构经历了从传统集中式架构到分布式架构的转型。进入云计算…...
