Respostas:
Estou recebendo esse erro ao tentar reparticionar uma unidade externa: ""
Esse é um erro muito descritivo.
Para executar fsckem uma unidade externa, primeiro você precisa descobrir o identificador da unidade. Execute diskutil liste verifique o nome do volume listado em IDENTIFIER- será algo como disk3s4, por exemplo.
Use esse nome para executar fsck. Você também pode passar a -fopção de forçar a verificação de um sistema de arquivos limpo.
sudo fsck /dev/disk3s4
fsck possui atalhos para diversos tipos de sistemas de arquivos:
fsck_hfspara HFS, use a -fopção para forçar a verificação de sistemas registrados no diáriofsck_exfatpara ExFAT (nenhuma -fopção aqui)fsck_msdospara FAT (nenhuma -fopção aqui)fscksem algum tipo de sinalizador. O uso do comando conforme indicado aqui resulta na saída de ajuda / uso.
fsck_hfs.
Eu tive que correr com a bandeira -l:
diskutil list # find your identifier
/sbin/fsck_hfs -l -f /dev/disk16
A -lbandeira diz ao fsck para verificar a unidade no modo somente leitura.
Esta não é uma resposta direta à pergunta original, mas intimamente relacionada.
Outra opção é usar o próprio diskutil para verificar ou reparar uma unidade externa.
Não tenho certeza de como ele se compara ao fsck, mas ele corrigiu minha unidade externa que não estava montando depois que eu acidentalmente a deixei conectada durante uma reinicialização para uma atualização do sistema.
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
e depois comandos como
diskutil verifyDisk disk2
diskutil verifyVolume disk2s1
diskutil verifyVolume disk2s2
por algum motivo, apenas executar os comandos de verificação resolve meu problema, mas se você precisar ir mais longe, também existem comandos de reparo
diskutil repairDisk disk2
diskutil repairVolume disk2s1
diskutil repairVolume disk2s2
diskutil listMeu cartão SD como disk2. Então você deseja encontrar o número da partição, faça algo assimls /dev/disk2*. Isso resulta emdisk2s1. Então o comando final que corro é essesudo fsck_hfs -f /dev/disk2s1. NOTA: Formatei propositalmente meu cartão SD como hfs. Normalmente eles estão usando como gordura ou algo assim.