有没有办法在 Mac 上重新安装弹出的 USB 设备?

有没有办法在 Mac 上重新安装弹出的 USB 设备?

我想知道是否可以在从 Finder 中移除 USB 设备后安装它,而无需将其重新插入 USB 端口。

我在 Mac 上连接了一个 USB 设备,但有时在暂停 Mac 后,USB 不再被检测到,然后我将其取出并再次插入。

是否有任何命令行可以重新激活?我尝试过,diskutil mountDisk但它不起作用,就好像 USB 设备已从 Mac 物理移除一样。

答案1

我想知道是否可以在从 Finder 中移除 USB 设备后安装它,而无需将其重新插入 USB 端口。

如果您指的是一般的 USB 设备?答案是肯定的,也可能是否定的,具体取决于弹出的设备类型:如果是已安装的硬盘驱动器(或 SSD 驱动器),则答案是肯定的,但如果是 USB 闪存驱动器,则答案是否定的。详情如下。

适用于 USB 硬盘驱动器

弹出 USB 硬盘驱动器并尝试重新安装它diskutil mountDisk

例如,下面是diskutil list我的 Mac OS X 10.9.5(Mavericks)机器的示例输出,该机器连接了一个 USB 外部硬盘驱动器和一个 USB 闪存驱动器:

/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Hard Drive              499.2 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *2.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS External Hard Drive     2.0 TB     disk2s2
/dev/disk3
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *8.0 GB     disk3
   1:                        EFI EFI                     209.7 MB   disk3s1
   2:                  Apple_HFS USB Flash Drive         7.7 GB     disk3s2

好的,现在我继续弹出“外部硬盘”并diskutil list再次检查,输出看起来与安装的 100% 相同:

/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Hard Drive              499.2 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *2.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS External Hard Drive     2.0 TB     disk2s2
/dev/disk3
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *8.0 GB     disk3
   1:                        EFI EFI                     209.7 MB   disk3s1
   2:                  Apple_HFS USB Flash Drive         7.7 GB     disk3s2

所以现在如果我想重新安装“外部硬盘”,我只需要记下“外部硬盘”的分区标识符(disk2s2)并运行此命令:

diskutil mountDisk /dev/disk2s2

等待该过程完成,卷将按预期安装。

不适用于 USB 闪存盘

弹出 USB 闪存驱动器并尝试重新安装它diskutil mountDisk

但如果我继续弹出“USB 闪存驱动器”,然后diskutil list再次运行,“USB 闪存驱动器”就会从列表中删除:

/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Hard Drive              499.2 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *2.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS External Hard Drive     2.0 TB     disk2s2

即使我尝试挂载该 USB 闪存驱动器,并且知道前面列表中的挂载点,如下所示:

diskutil mountDisk /dev/disk3s2

系统说:

Unable to find disk for /dev/disk3s2

如何解释这种行为差异?不确定。但归根结底,如果 USB 设备是硬盘驱动器或 SSD,并且它出现在 返回的列表中diskutil list,那么重新安装 USB 设备应该不会有问题。但如果它是 USB 闪存驱动器,并且没有出现在该列表中?除非 USB 闪存驱动器被物理拔出并重新插入,否则无法重新安装。

适用于 USB 闪存盘

卸载并重新加载 USB 大容量存储内核扩展(IOUSBMassStorageClass.kext)。

综上所述,Jannis Linxweiler 对这个答案的评论解释了如果卸载并重新加载 USB 大容量存储内核扩展 ( IOUSBMassStorageClass.kext),您可以有效地重新安装 USB 闪存驱动器,而无需物理拔下它。

在我的 Mac OS X 10.9.5(Mavericks)机器上进行了测试并且它按预期运行。

首先,弹出 USB 闪存驱动器,然后运行此命令进行卸载IOUSBMassStorageClass.kext

sudo kextunload /System/Library/Extensions/IOUSBMassStorageClass.kext

然后运行此命令来重新加载IOUSBMassStorageClass.kext

sudo kextload /System/Library/Extensions/IOUSBMassStorageClass.kext

这样做之后,我的 USB 闪存驱动器无需物理接触就可以恢复。真是巧妙的技巧!而且据我所知,它不会影响连接的 USB 硬盘驱动器。

相关内容