Mac如何在终端使用diskutil命令装载和卸载推出外接硬盘

news2024/9/26 5:19:20

最近用 macOS 装载外接硬盘的时候,使用mount死活装不上,很多文章也没详细的讲各种情况,所以就写一篇博客来记录一下。

如何装载和卸载硬盘(或者说分区)

mountumount是在 macOS 上是不能用的,如果使用会显示未知特殊文件或者没有权限,如下:

$ mount /dev/disk3s2
mount: /dev/disk3s2: unknown special file or file system.
$ umount /dev/disk3s2
umount: unmount(/Volumes/backup): Operation not permitted

如果给umount加上sudo就会显示Resource busy,提示使用diskutil unmount,如下:

$ sudo umount /dev/disk3s2
Password:
umount(/Volumes/backup): Resource busy -- try 'diskutil unmount'

某些情况下,如果你照着使用diskutil mount /dev/disk3s2,发现也可以成功装载了,如下:

$ diskutil mount /dev/disk3s2
Volume backup on /dev/disk3s2 mounted

使用diskutil unmount /dev/disk3s2卸载也会成功,如下:

$ diskutil unmount /dev/disk3s2
Volume backup on disk3s2 unmounted

提示一下,这里的路径可以不写,直接写diskutil unmount disk3s2也可以。如果你知道硬盘或卷宗名称,那么可以直接使用名称加载或者卸载,如下

$ sudo diskutil mount backup
Volume backup on backup mounted

需要注意,macOS 里的的“分区(partition)”和 Windows 里的分区不是一个概念。

但是如果你想加载或卸载一个分区里所有的卷宗,必须使用mountDiskunmountDisk,否则会显示如下内容:

$ diskutil unmount disk2
disk2 was already unmounted or it has a partitioning scheme so use "diskutil unmountDisk" instead

注意虽然这个选项里有Disk,但是操作的是“一个分区”,而不是“一个硬盘”。因为它是根据某个硬盘分区中的表来进行加载的。

如何获取得知硬盘路径和硬盘卷宗的名称

你可以通过“系统信息”和“磁盘工具”来获取连接硬盘的信息,但是这样太麻烦了。

可以使用`diskutil list以查看已经连接到 Mac 上所有的硬盘,如下(只保留了第一个外接硬盘的部分):

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk2
   1:                        EFI ⁨EFI⁩                     209.7 MB   disk2s1
   2:                 Apple_APFS ⁨Container disk3⁩         1000.0 GB  disk2s2

/dev/disk3 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +1000.0 GB  disk3
                                 Physical Store disk2s2
   1:                APFS Volume ⁨backup⁩                  323.2 GB   disk3s2

这时候就可以获取得知各个分区和卷宗的位置的名称了。

如果你只是想知道如何加载和卸载,那么读到这里就可以了,下面是解决一些好奇宝宝的疑问,以及记录一些 APFS 的知识,比如说装载 APFS 分区的底层操作是什么。

扩展知识

上面两部分有什么区别

可以看到上面的内容中,一个硬盘实际上生成了两个部分:/dev/disk2 (external, physical)/dev/disk3 (synthesized)。这俩有啥区别呢?

/dev/disk2 (external, physical)部分

这部分表示的硬盘的物理部分。也就是“磁盘工具”里这部分内容:

请添加图片描述

/dev/disk2中存放的是该硬盘的引导文件,也就是硬盘节点实例(device node entry),其中还包括各部分的硬盘标识符(disk identifier)。disk2TYPE写的也是GUID_partition_scheme(GUID 分区方案)。

disk2s2部分也就是你在“磁盘工具”里看到容器部分(如果眼尖的读者会发现这部分叫做容器disk3,“设备”部分也是“disk3”,下一章节会讲为什么这样):
请添加图片描述

如果你尝试加载这个容器disk2s2会显示如下信息:

$ sudo diskutil mount disk2s2
Volume on disk2s2 failed to mount because it appears to be
an APFS Physical Store (or is the APFS Container already mounted?)
Note that for this mount operation, Disk Arbitration reports that
the operation is not supported (kDAReturnUnsupported)

但是你可以加载 EFI 部分(如果你有需要的话):

$ sudo diskutil mount disk2s1
Volume EFI on disk2s1 mounted

/dev/disk3 (synthesized)部分

这部分则是上面容器中卷宗(Volume)的部分。

/dev/disk3是“APFS Container Scheme”(APFS 容器方案),包含了卷宗的各种信息,这也是为什么可以直接通过NAME部分的backup⁩来加载卷宗,而不是必须使用设备路径。

/dev/disk3s2则是容器里的包含的 APFS 卷宗,如果加载/dev/disk3s2这部分,那么可以通过访问加载位置(默认为/Volumes/)中的NAME为名的文件,来访问 APFS 格式的硬盘内容(Unix 里所有的设备都是文件)。

这部分也就是你在“磁盘工具”里看到的这部分(这是我的“时间机器”硬盘):

请添加图片描述

如果硬盘中只有一个卷宗,那么这个卷宗的在/dev中一般都是diskXs2

默认情况下,生成的宗卷都在/Volumes/目录中,可以在此进行访问(相当于 Linux 中的/mnt):

$ ls /Volumes/
16TB		Macintosh HD	backup

为什么容器的在第二张图里显示为容器disk3(“Physical Store diskXsX”部分是什么)

如果眼尖的同学可能发现在第二张图中,容器部分叫做容器disk3,“设备”部分也是“disk3”,而不是disk2s2,但是“物理存储区”却是disk2s2

这是因为在 APFS 中一个分区(partition)包含一个单独的容器(容器负责空间管理和垃圾保护)。而一个容器或者说分区是可以包含多个卷的。这与其他一些文件系统是不一样的,其他文件系统的分区大多直接就是文件系统层(File System Layer)。如下是硬盘上多个分区的硬盘在“磁盘工具”里的层级:

请添加图片描述

下图是 APFS 分区在硬盘上的空间划分,右侧是容器内部的空间划分:

APFS大致结构

也就是说,“Apple File System container”部分是上图中右侧部分的总称,在硬盘上的空间也是右侧的总和,并没有单独的一部分叫做“Apple File System container”。这就是为什么容器的物理存储区是disk2s2(是硬盘的第三部分),但是由于内部进行了进一步区分,所以容器内部需要进一步操作,将其分配成disk3

希望能帮到有需要的人~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/731329.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Clickhouse入门(一)

第一章 Clickhouse简介 ClickHouse (C编写)是俄罗斯的Yandex(相当于百度)于2016年开源的列式存储数据库(DBMS),使用C语言编写,主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据…

电脑各配置跟不上,造成频繁花屏。

本人用的是i3 7350K,然而散热器是二十多块的杂牌,CPU温度经常不稳定,可以在监控软件看到比较详细的情况,然后我的显卡是gtx1080,内存加到双条24G。 最近一直花屏,我甚至怀疑是不是显卡坏了,然后…

特征选择算法 | Matlab 基于最大互信息系数特征选择算法(MIC)的回归数据特征选择

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 特征选择算法 | Matlab 基于最大互信息系数特征选择算法(MIC)的回归数据特征选择 部分源码 %--------------------

css 字体间距 设置

一、css word-spacing属性设置字间距(单词的间距) word-spacing 属性增加或减少单词间的空白(即字间隔);在这个属性中,“字” 定义为由空白符包围的一个字符串。也就是说该属性是以空格为基准进行调节间距…

【一】PCIe基础知识

一、PCIe概述 1、PCIe速度 PCI采用总线共享式通讯方式;PCIe采用点到点(Endpoint to Endpoint)通讯方式,互为接收端和发送端,全双工,基于数据包传输;两个PCIe设备之间的连接称作一条链路(link), 一条链路可…

Nginx报跨域问题怎么解决

这就是报错信息,可以看出这里是一个请求发送了两次,这是什么原因呢? 这种请求是因为它是applocayion/json格式的请求,在请求一个资源的时候,先会发送一个预检请求,然后才会发送真正的请求,那为…

桥接模式:如何实现支持不同类型和渠道的消息推送系统?

上一节课我们学习了第一种结构型模式:代理模式。它在不改变原始类(或者叫被代理类)代码的情况下,通过引入代理类来给原始类附加功能。代理模式在平时的开发经常被用到,常用在业务系统中开发一些非功能性需求&#xff0…

Web前端 Day 2

元素显示模式 块元素 独占一行 宽、高、内外边距可以设置 eg. div 行内元素 一行可以存在多个 eg. span 行内块元素 一行可以存在多个 宽、高、内外边距可以设置 是否独占一行 表格标签 <table> <caption></caption> 表格标题&#xff08;概括&#…

手把手的教你安装PyCharm --Pycharm安装详细教程(一)(非常详细,非常实用)

简介 Jetbrains家族和Pycharm版本划分&#xff1a; pycharm是Jetbrains家族中的一个明星产品&#xff0c;Jetbrains开发了许多好用的编辑器&#xff0c;包括Java编辑器&#xff08;IntelliJ IDEA&#xff09;、JavaScript编辑器&#xff08;WebStorm&#xff09;、PHP编辑器&…

面向对象编程主线一

面向对象编程 一、Java面向对象学习的三条主线 Java类及类的成员&#xff1a;属性、方法、构造器&#xff1b;代码块、内部类面向对象的三大特征&#xff1a;封装性、继承性、多态性、&#xff08;抽象性&#xff09;其他关键字&#xff1a;this、super、static、final、abst…

分治法求最近点对问题

目录 蛮力法 分治法 探究分治规模小于一定程度时采用暴力解法 蛮力法 算法思想 蛮力法&#xff0c;顾名思义&#xff0c;即穷举所有点与点之间的距离&#xff0c;两层循环暴力找出最近点对。算法执行可视化如图1所示&#xff0c;word文档GIF静态显示&#xff0c;附件已含动…

BTY Carnival - Task2 | Get the OG Role Win USDT

欢迎来到比特元社区&#xff01; 比特元是一条兼具平行链与零知识证明技术的EVM兼容区块链。BitYuan的生态系统dns.bityuan.com即将开放公测。用户完成任务即获得白名单资格&#xff0c;可进入到DC群的DNS白名单频道 &#xff0c;我们将定期开展抽BTY等活动&#xff0c;并且将…

2022年第十三届JAVA B组国赛

文章目录 A.重合次数&#xff08;模拟&#xff09;B.数数&#xff08;数学&#xff09; A.重合次数&#xff08;模拟&#xff09; Answer:494 这个题目比较坑人&#xff0c; public class Main {static BufferedReader br new BufferedReader(new InputStreamReader(System.…

多元回归预测 | Matlab阿基米德算法(AOA)优化极限梯度提升树XGBoost回归预测,AOA-XGBoost回归预测模型,多变输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 阿基米德算法(AOA)优化极限梯度提升树XGBoost回归预测,AOA-XGBoost回归预测模型,多变输入模型,多变量输入模型,多变量输入模型,matlab代码回归预测,多变量输入模型,多变量输入模型 评价指标包括:MAE、RMSE和R2…

一文3000字从0到1带你进行Mock测试(建议收藏)

​什么是mock&#xff1f; ​mock测试是以可控的方式模拟真实的对象行为。程序员通常创造模拟对象来测试对象本身该具备的行为&#xff0c;很类似汽车设计者使用碰撞测试假人来模拟车辆碰撞中人的动态行为 为什么要使用Mock&#xff1f; 之所以使用mock测试&#xff0c;是因…

pdf怎么转换成jpg图片?分享几个实用的方法!

记灵在线工具是一种非常方便的工具&#xff0c;可以帮助我们将PDF文件转换为图片格式。下面介绍三种不同的方法&#xff0c;让我们来了解一下。 方法一&#xff1a;记灵在线工具 1、打开记灵在线工具&#xff0c;在工具列表中选择“PDF转图片”。 2、将需要转换的PDF文件添加…

[C语言][小游戏][猜数游戏]

C语言的奇妙旅行 目录&#xff1a;一、猜数判定二、重复到猜对为止三、随机设定目标数字四、限制输入次数五、保存输入的记录六、测试小游戏 目录&#xff1a; 带着梦想&#xff0c;带着好奇&#xff0c;带着执着&#xff0c;在C语言的世界里旅行。亲爱的朋友们&#xff0c;一…

能源结构变更图,传统能源结构对比新兴能源

以传统的能源&#xff08;煤、天然气&#xff09;提供能源&#xff0c;到新兴能源 目前新兴能源以 太阳能&#xff0c;风能为主以及其它行业&#xff0c; 一类企业以新兴能源这种为主&#xff0c;核心是能源接收&#xff0c;以及储存能源&#xff0c;存储通常两种方式&#x…

cmake列表

目录 cmake多行注释 求list长度 demo 获取list的值 demo 插入list demo 追加list demo 查找列表中的字符 demo 删除list list向前删除和向后删除数据 demo 字符串反转 demo 特殊操作 Readinglist(LENGTH <list> <out-var>)list(GET <list> &…

STM32CubeMX开发实战1-LED点灯

目录 点灯选择 MCU引脚设置时钟设置项目配置生成项目项目文件介绍Debugger 设置 点灯 这里将会以一个最简单的一个点灯实验来展示如何使用 STM32CubeMX 快速生成 STM32 工程并上手开发&#xff0c;包括对项目工程建立的详细内容分析解释 接下来使用正点原子探索者开发板 STM32F…