Respostas:
Às vezes, é inadequado usar os recursos de realocação automática de setor de uma unidade, de modo que a questão levantada pela ohho se torna distinta:
Se houver um setor defeituoso, você poderá:
- considere isso antes de executar qualquer ação que possa causar realocação (ou remapeamento ou economia, ou o que você chamar).
Enquanto o SpinRite 6 não é para Macs, uma página de 2003 para a versão 5 é esclarecedora:
Observe a seção sobre realocação automática e o risco associado ao dataloss.
SpinRite à parte, avance rapidamente uma década de 2003 a 2013:
Para a pergunta aqui ...
Para Mac - para OS X - não conheço nada tão capaz e cuidadoso quanto o SpinRite (nada para desativar a realocação automática).
Então, como estão as coisas: para verificar os setores de um disco no USB com o OS X , provavelmente estamos limitados ao uso de utilitários que podem causar realocação . Não posso estimar o grau de risco do dataloss associado, mas se esse risco for aceitável , devo orientar primeiro:
Dica: o que está sob a questão relacionada (1) é mais imediato e fácil de usar.
O SO sozinho não pode usar as tecnologias SMART em unidades externas em barramentos como USB 2.0 e FireWire.
Em outros lugares, há uma grande quantidade de informações (e mal-entendidos;); portanto, focarei esta parte da resposta em apenas um ponto:
Driver kasbert / OS-X-SAT-SMART no GitHub:
… Um driver de kernel para unidades externas USB ou FireWire do Mac OS X. Ele estende o comportamento padrão do driver, fornecendo acesso aos dados SMART da unidade. A interface para os dados SMART é a mesma do driver da família ATA; portanto, a maioria dos aplicativos existentes deve funcionar. O driver requer um gabinete de unidade externa compatível com SAT (SCSI ATA Translation). …
Se você tentar este KEXT com o Lion, então - como em qualquer extensão de kernel de terceiros - continue com cuidado.
O comando interno do OS X fsck_hfs
tem uma opção -S
que aparentemente verifica se há um bloco defeituoso em um disco rígido USB no OS X.
-S causa fsck_hfs para escanear todo o dispositivo à procura de erros de I / O. Ele tentará mapear os blocos com erros para nomes, semelhante à opção -B .
Exemplo:
fsck_hfs -fy -S /dev/disk3s11
Ele parece estar fazendo que, quando executado em partições sem blocos ruins, mas eu ainda tenho que verificar / documento que ele faz quando não são bad blocks.
Abra o Terminal.app em Aplicativos / Utilitários.
Corte e cole isso dentro para instalar o Brew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Instale o e2fsprogs com o brew:
brew install e2fsprogs
Digite diskutil list
para encontrar seu dispositivo (/ dev / diskX)
Execute badblocks
no seu dispositivo: (substitua o X pelo número do seu dispositivo)
/usr/local/Cellar/e2fsprogs/1.44.3/sbin/badblocks -v /dev/diskX
Operation not permitted while trying to determine device size
(com / sem sudo)
Dependendo do sistema de arquivos na unidade, você pode executar
fsck_msdos /dev/disk1s1
Isso verificaria um FAT FS. Talvez seja isso que você quer? Os comandos possíveis são:
fsck_cs
fsck_exfat
fsck_hfs
fsck_msdos
fsck_udf
fsck_hfs -S
varre todo o conteúdo do sistema de arquivos e mapeia blocos com erros de E / S para nomes.
A única maneira de realmente saber é escrever para cada setor e lê-lo novamente para ver se você recebe a mesma coisa, verificando se há erros no caminho.
badblocks
no Linux faz isso. badblocks
possui um modo de teste de leitura / gravação não destrutivo.
No Windows, eu acredito que se você invocar chkdsk
com o /F
, /B
e /R
opções que irá testar cada setor de setores defeituosos. Também não é destrutivo, mas não tenho certeza se ele realmente grava em cada setor para testar.
Esta resposta do Superusuário sugere que o SpinRite 6 também pode fazer a mesma coisa, mas eu não testei.
Deixe-me aconselhá-lo em que ordem você deve proceder se suspeitar / saber que possui setores defeituosos:
1) Faça uma cópia de toda a sua partição para outro dispositivo usando o dd (procure o nome da sua partição usando df
). Isso pode demorar um pouco, talvez mais de um dia em um disco USB2 para 400Gb. bs=
acelera (fator 5 ou mais), sync
preenche os blocos de entrada com zeros se houver algum erro de leitura.
dd if=/dev/disk3s8 of=/dev/disk4s9 bs=1024k conv=noerror,sync
2) Verifique se realmente funcionou, não apenas a estrutura da pasta, mas também abra o conteúdo.
3) Caso contrário, tente copiar o conteúdo da sua partição no nível do arquivo.
cp -Rp /Volumes/<source>/ /Volumes/<destination>/
4) Somente agora, que você tentou salvar o máximo possível sem tocar no sistema de arquivos, verifique a partição. -f
A opção forçará mesmo que pareça ok, -S
procura blocos defeituosos. Não é garantido que esta operação seja não destrutiva, mas pode salvar seu disco.
fsck_hfs -fS /dev/disk3s8