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
摘要:量子退火是一种借助量子绝热演化解决复杂优化问题的通用策略。分析和数值证据均表明,在理想化的封闭系统条件下,量子退火可以胜过基于经典热化的算法(例如模拟退火)。当前设计的量子退火装置的退相干时间比绝热演…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
