OS/X fsck_hfs:单用户模式下外部驱动器的“操作不允许NO WRITE”[已解决]

Mik*_*son 2 fsck external-hard-drive macos-catalina

我试图通过启动到单用户模式并执行以下命令来修复OS/X Catalina 上的外部硬盘驱动器(备份驱动器)

 fsck_hfs -fyd /dev/disk2s2
Run Code Online (Sandbox Code Playgroud)

(我通过查看控制台中的日志确定了故障磁盘的身份。)

控制台日志在日志输出中显示“无法完全验证此卷”,但没有提供更多详细信息。这就是为什么我试图在带有-d标志的单用户模式下运行它。

这是我得到的:

 /dev/disk2s2 ... (NO WRITE)
 Operation not permitted.
Run Code Online (Sandbox Code Playgroud)

我如何获得fsck_hfs同意在此驱动器上运行?

Mik*_*son 6

终于意识到,由于这是一个外部驱动器,我不需要进入单用户模式,我以管理员身份登录并使用sudo终端中的命令。

首先,我试过:

 sudo diskutil repairdisk disk2
 sudo diskutil repairvolume disk2s2
Run Code Online (Sandbox Code Playgroud)

我注意到这实际上会调用fsck_hfs并且设备名称包含一个"r"to be /dev/rdisk2s2

首先,我阅读了命令的手册条目以查看要使用的参数:

 man fsck_hfs
Run Code Online (Sandbox Code Playgroud)

然后,我在打开调试信息的情况下运行命令,它工作:

 sudo fsck_hfs -ryd /dev/rdisk2s2
Run Code Online (Sandbox Code Playgroud)

虽然这仍然不能回答我为什么进入NO WRITE单用户模式......我仍然希望收到一个答案......这确实意味着我找到了解决我眼前问题的方法。

(注意:fsck_hfs在我连接驱动器后不久, MacOS在后台自动启动了自己的进程。我曾经top找到进程 ID,然后用来sudo kill <pid>终止它,以便驱动器不再“忙碌”并且我的终端命令可以运行反对。)