如何在 OS X 上在外部驱动器上运行 fsck?

如何在 OS X 上在外部驱动器上运行 fsck?

当我尝试重新分区外部驱动器时出现此错误:“”。

我想fsck -fy在驱动器上运行,但不知道在外部驱动器上执行的正确语法?

有人能帮我解决这个问题吗?

答案1

实际上你想做的是:

% sudo fsck_hfs -fy /dev/disk1s1(取决于您想要检查哪个分区)。

fsck如果您只将其fsck_hfs作为命令来运行,它将不起作用。

答案2

当我尝试重新分区外部驱动器时出现此错误:“”

这确实是一个非常具有描述性的错误。


为了fsck在外部驱动器上运行,您首先需要找到驱动器的标识符。运行diskutil list并检查下面列出的卷的名称–例如,IDENTIFIER它将类似于。disk3s4

使用该名称运行fsck。您还可以传递-f选项以强制检查干净的文件系统。

sudo fsck /dev/disk3s4

fsck有各种文件系统类型的简写:

  • fsck_hfs对于 HFS,使用-f选项强制检查日志系统
  • fsck_exfat对于 ExFAT(-f这里没有选项)
  • fsck_msdos对于 FAT(-f这里没有选项)

答案3

我必须使用 -l 标志运行:

diskutil list # find your identifier
/sbin/fsck_hfs -l -f /dev/disk16

-l标志告诉 fsck 以只读模式检查驱动器。

答案4

这不是对原始问题的直接回答,但密切相关。

另一个选择是使用 diskutil 本身来验证或修复外部驱动器。
我不确定它与 fsck 相比如何,但它修复了我的外部驱动器,该驱动器在系统更新重新启动时意外插入后无法安装。

diskutil list  # to find the IDENTIFIER
  (some internal disks listed first)
  /dev/disk2 (external, physical):                                              
    #:                    TYPE NAME                    SIZE       IDENTIFIER
    0:   GUID_partition_scheme                        *500.1 GB   disk2     
    1:                     EFI EFI                     209.7 MB   disk2s1   
    2:               Apple_HFS FreeAgent GoFlex Drive  499.8 GB   disk2s2   

然后执行如下命令

diskutil verifyDisk disk2
diskutil verifyVolume disk2s1
diskutil verifyVolume disk2s2

出于某种原因,仅运行验证命令就解决了我的问题,但如果您需要进一步操作,还有修复命令:

diskutil repairDisk disk2
diskutil repairVolume disk2s1
diskutil repairVolume disk2s2

相关内容