在 Mac OS X 中从命令行装载和卸载驱动器

macOS 中的终端

您可以从 MacOS 和 Mac OS X 的命令行安装和卸载驱动器、卷和磁盘。

对于许多用户而言,在 Mac 中卸载驱动器的最简单方法是将卷拖入废纸篓、使用弹出键、断开驱动器,或使用其中一种强制弹出方法。同样,如果你想重新安装一个驱动器,你通常可以直接拔掉驱动器然后再插回去。但是,如果您希望能够从命令行挂载、卸载和重新挂载驱动器怎么办?这正是我们将在此处介绍的内容。

此技巧适用于外部 USB 磁盘、硬盘驱动器、Firewire、Thunderbolt、DVD、CD、网络驱动器,甚至 USB 拇指驱动器,几乎可以是任何卷通过非常有用的 diskutil 命令安装和访问。通过使用命令行重新安装驱动器,必要时可以通过 SSH 远程完成整个过程,并且无需从 Mac 上断开驱动器的物理连接。这对于故障排除情况、脚本编写和自动化非常有用,对于我们这些只喜欢在终端中修修补补的人来说,这是一个绝妙的技巧。

如何在 Mac 上通过命令行卸载驱动器

让我们首先介绍卸载驱动器。为此,您需要以某种形式附加或连接到 Mac 的另一个卷,然后启动终端开始(位于 /Applications/Utilities/)。

1:列出所有驱动器

您需要做的第一件事是列出连接的驱动器。这将提供连接到 Mac 的所有驱动器的列表,这些驱动器已安装和未安装,以及它们各自的所有分区。我们这样做是为了获取驱动器标识符,通常类似于 disk1s2 或 disk2s2 等

磁盘工具列表

输出看起来像这样:

$ diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *121.3 GB disk0
1: EFI 209.7 MB disk0s1
/> 2: Apple_HFS Macintosh HD 120.5 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *16.0 GB disk1
1:EFI 209.7 MB disk1s1
2:Apple_HFS OSXDaily 15.7 GB disk1s2

在本示例中,我们将重点关注名为“OSXDaily”的附加驱动器,它恰好是列表最后显示的外部 USB 拇指驱动器。请注意该驱动器的标识符是“disk1s2”,我们将把它带到下一系列命令中以卸载和重新安装它。

可能值得一提的是,驱动器将始终位于 /dev/ 中,因此 /dev/ 将始终作为标识符的前缀。

2:卸载指定驱动器

仍然使用 diskutil 命令,我们将它指向要卸载的有问题的驱动器。

diskutil unmount /dev/disk1s2

这将报告命名卷和位置已卸载,如下所示:

$ diskutil unmount /dev/disk1s2
卸载 disk1s2 上的卷 OSXDaily

这就是它的全部。您会注意到该驱动器不再可以在 Finder 中访问,但它仍然可以通过命令行的 diskutil 或 Mac OS X 的 GUI 中更熟悉的磁盘工具应用程序看到。

如何在 Mac 上从命令行挂载驱动器

如果您可以卸载一个驱动器,您当然也可以安装或重新安装一个。命令序列非常相似;找到卷,然后安装驱动器。

1:找到要挂载的驱动器

如果您已经知道卷所在的位置,则可以忽略第 1 部分并直接跳到第 2 部分,但我们还是要介绍如何检索卷标识符。这一次我们会缩短它一点,因为我们假设我们知道要安装的驱动器的名称,因此我们只需要找到标识符。我们将通过使用 grep 缩短 diskutil 命令的输出来完成此操作,如下所示:

$ diskutil list |grep OSXDaily
2: Apple_HFS OSXDaily 15.7 GB disk1s2

该输出显然比完整输出 我们上面显示的 diskutil 列表。

对于此示例,驱动器“OSXDaily”仍位于 /dev/disk1s2,这就是我们要挂载的内容。

2:安装(或重新安装)驱动器

要挂载(或重新挂载)一个驱动器,我们将使用带有新标志的相同 diskutil 命令,并像这样输入:

diskutil mount /dev/disk1s2

使用与其他地方相同的示例,命令和输出如下所示:

$ diskutil mount /dev/disk1s2
Volume OSXDaily on /dev/disk1s2 mounted

这显然会再次装载驱动器,并且还会使装载的卷在 Mac OS X Finder 中再次可见,并在各种“打开”或“保存”对话框中对基于 GUI 的应用程序可见。

从命令行挂载和卸载驱动器在 Mac OS X 中

如何在单个命令中卸载和重新挂载驱动器/卷

终端

diskutil unmount /dev/disk1s2diskutil mount /dev/disk1s2echo "Remounted Volume"

执行时如下所示:

$ diskutil unmount /dev/disk1s2diskutil mount /dev/disk1s2echo "Remounted Volume"
Volume OSXDaily on disk1s2 unmounted
Volume OSXDaily on /dev/disk1s2 mounted
重新挂载卷

如果在此过程中您碰巧正在查看 Finder 中的音量,您会发现它会短暂消失,然后几乎立即重新出现。最后的 echo 部分是可选的,但它使整个命令操作更加冗长。

感谢 Nilesh 的提示灵感