详解:macOS/Linux如何挂载磁盘?如何开机自动挂载/卸载磁盘?
本文最后更新于 2023年9月17日 上午
哈哈,好久没有更新文章了;最近年底,确实忙了点,但是还是有小伙伴在私信问Linux和macOS的事情,有几个小伙伴还问开机挂载磁盘问题,这里做个简单解答。
不管是Linux还是基于Unix的macOS,挂载磁盘可以使用mount命令进行磁盘的挂载。
挂载的一般步骤:
- 查看磁盘状态
- 挂载磁盘
- 读写磁盘
- 最后是卸载磁盘。
macOS和Windows类似,移动存储一般会自动挂载;部分Linux发行版本,也会对移动存储进行挂载(尤其是有GUI界面的发行版本)。
这次,就忽略所以GUI界面,看看命令上如何操作。最后,再看看如何开机自动挂载或卸载(取消挂载)磁盘。
如果你的Linux是云服务器,其实也差不多,你应该会得到云磁盘的UUID,和本文Linux插上U盘后获取U盘磁盘UUID类似。
更多可以参考云磁盘使用。
另外,一些网络磁盘,比如:rclone挂载Google Driver等,不在本文讨论范围,有机会单独起一篇文章进行讲解。
查看磁盘
查看磁盘,一般用fdisk
命令,但是有一些特殊。虽然macOS也有fdisk
命令,但是实际上使用和Linux是不一样的:
而Linux上的fdisk
命令:
实际上,macOS上达到Linux上的效果,需要使用diskutil
命令:
macOS
macOS上查看磁盘插入情况,使用命令:
1 |
|
我们插上U盘后的状态:
可以看到,多了一个disk4
的IDENTIFIER
。插入的物理接口是/dev/disk4
。类似于TCP/IP模型中网络层和物理层的关系。
这个可不是固定的,比如我用上扩展坞:
紧接着,还可以进一步查看磁盘状态:
1 |
|
而网上说,查看S.M.A.R.T
,实际上需要第三方工具包smartctl
的支持,并且U盘或者接口支持:
1 |
|
比如,我的U盘不支持:
其实也可能是我U盘/硬盘盒的主控,不支持。因为,macOS上即使安装了额外驱动还是很受限于主控代码。
但是自带的硬盘支持:
Windows上的CrystalDiskInfo
软件,更为方便:
当然,你的硬盘盒也需要支持S.M.A.R.T
,比如我的硬盘盒:
Linux
Linux的磁盘查看,一般使用fdisk
命令:
1 |
|
插上U盘,查看输出末尾,就可以看到我们的U盘设备:
可以看到,我的U盘,拥有四个分区(因为实际上是一个PE系统和Hackintosh安装盘)。
挂载磁盘
不管是Linux还是基于Unix的macOS,挂载磁盘可以使用mount
命令进行磁盘的挂载。根据上文查看的磁盘位置进行挂载:
1 |
|
首先我们看看macOS:
其中:
-t
: 磁盘类型。可以省略,缺省时候,会进行自动匹配,但是macOS上“不太聪明的样子”,最好指定,否则会挂载不上。-o
: 后续的rw、auto和nobrowse都是由这个同步模式进行追加参数。/dev/disk4
: 上文通过fdisk
或diskutil
获得的磁盘位置。Downloads/MintimateDisk
: 磁盘内容需要挂载到那个文件夹,可以为绝对路径,也可以为相对路径。
最后的命令为:
1 |
|
Linux其实也是一样,在mount
命令上,Unix和Linux都差不多:
卸载磁盘
卸载很简单。
首先,看看macOS:
1 |
|
同样的,Linux上的卸载也十分简单:
1 |
|
开机挂载/卸载
最后,我们看看如何开机自动挂载和卸载磁盘。
这里一般需要用到/etc/fstab
这个文件了:
每一行的含义:
1 |
|
其中,最后两个默认填0或者直接不填比较好,具体可以参考:
我个人很喜欢Archlinux的解释:
描述要挂载的特定块设备或远程文件系统; 请见 #文件系统标识。 描述挂载目录。 文件系统类型。 mount相关的挂载选项。 会被dump工具检查。该字段通常设置为 0, 以禁用检查。 设置引导时文件系统检查的顺序; 请见fsck。对于 root 设备该字段应该设置为 1。对于其它分区该字段应该设置为 2,或设置为 0 以禁用检查。
首先是卸载,一般运用在macOS。
在Intel版本的macOS上,可以选择安装双系统。如果你安装了双系统,可能会开机自动挂载Windows的磁盘分区:
自动挂载的内容
但是,我们在macOS上,并不能直接写Windows的分区,而且这样有点危险。为此,我们可以开机自动卸载:
操作很简单,我们编写卸载命令到/etc/fstab
。
首先,我们查看磁盘详情:
1 |
|
之后,找到Windows的分区,使用diskutil info
命令查看详情:
1 |
|
根据磁盘的Volume UUID
,添加到/etc/fstab
。这样macOS就会自动卸载了:
1 |
|
同理,Linux设备,如果想自动挂载U盘。首先查看UUID:
1 |
|
之后,我们添加到/etc/fstab
内保存即可:
1 |
|
不过,Linux更建议配置到启动服务脚本内: