De repente, comecei a receber erros ao copiar arquivos para meu disco rígido externo. Há muito espaço livre: 1,64 TB livre de 3,63 TB. Consegui concluir a cópia do arquivo fazendo uma de duas coisas:
- Excluindo alguns arquivos grandes do disco rígido externo, primeiro
- OU colocar o HDD em um gabinete USB diferente
Além disso, a ferramenta de verificação de erros do Windows 8 falha com um erro, a menos que um gabinete USB diferente seja usado (excluir arquivos grandes não ajuda neste caso). A ferramenta de linha de comando CHKDSK sempre funciona e não relata erros no disco.
Como posso confirmar se o gabinete do disco rígido USB era o problema?(Gostaria de confirmar que o problema foinãocom meu disco rígido e é seguro continuar usando.)E como posso determinar a capacidade suportada por um gabinete USB HDD?
informações detalhadas:
O erro ao copiar um arquivo grande:
- O código 0x80070057 parece ser um código bastante genérico.
- Logo após receber esse erro, copiei com sucesso um arquivo de 2 GB. Tentei copiar o mesmo arquivo novamente (para um total de 4 TB) e obtive o mesmo erro.
- Nos logs de eventos do sistema, isso parece ser registrado sempre que uma cópia falha: "As cópias de sombra do volume D: foram abortadas devido a uma falha de E/S no volume D:."
Erro da ferramenta de verificação de erros do Windows 8:
- Depois de falhar, abre o visualizador de eventos do Windows com algum erro relacionado à cópia de sombra do volume. (Esqueci de registrar os detalhes sobre este)
Hardware:
- EnermaxJazz 3.5Gabinete USB HDD (este causa erros; é um modelo bastante antigo).
- LetoDATACLONE3.0Dock USB HDD (este parece não ter erros; modelo muito mais recente).
- Disco rígido VERDE de 4 TB Western DigitalWD40EZRX
Sistema de arquivo:
- GPT (a unidade MBR de 2 TB foi clonada para uma unidade de 4 TB e, em seguida, a tabela de partição foi convertida para GPT)
- NTFS
Sistema:
- Janelas 8
- Notebook Lenovo X1 Carbono
atualizar:Mais detalhes do evento registrado "As cópias de sombra do volume D: foram abortadas...":
Sistema - Fornecedor [Nome] volsnap - EventID 14 [Qualificatórias] 49158 Nível 2 Tarefa 0 Palavras-chave 0x80000000000000 - Tempo criado [Hora do sistema] 2015-01-24T21:23:54.296013300Z EventRecordID 1063256374 Sistema de canais Computador X1-Carbono Segurança - Dados do Evento \Dispositivo\Disco RígidoVolumeShadowCopy6 D: D: 0000000003003000000000000E0006C00A0000000D0000C0020000000000000000000000000000
atualização 2:
Erro ao montar a unidade de 4 TB no Ubuntu com o dock que funciona no Windows:
Erro ao montar /dev/sdc1 em /media/daniel/DeskStar: linha de comando `mount -t "ntfs" -o "uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000,dmask=0077,fmask=0177 " "/dev/sdc1" "/media/daniel/DeskStar"' saiu com status de saída diferente de zero 13: ntfs_attr_pread_i: ntfs_pread falhou: erro de entrada/saída Falha ao ler NTFS $Bitmap: erro de entrada/saída O NTFS é inconsistente, ou há uma falha de hardware, ou é um Hardware SoftRAID/FakeRAID. No primeiro caso, execute chkdsk /f no Windows em seguida, reinicie no Windows duas vezes. O uso do parâmetro /f é muito importante! Se o dispositivo for SoftRAID/FakeRAID, primeiro ative e monte um dispositivo diferente no diretório /dev/mapper/, (por exemplo /dev/mapper/nvidia_eahaabcc1). Por favor, veja a documentação do 'dmraid' para mais detalhes.
A unidade não está listada em fdisk -l
, então não posso tentar dd
... Tentei conectar novamente ao Windows: sem problemas; A ferramenta de verificação de erros nas propriedades do disco do Windows não relata erros.
Também:
Tentei usar dd
no gabinete (problemático?) Com umdiferenteDisco rígido de 2 TB:
- Nenhum erro de leitura
skip=0
- Nenhum erro de leitura
skip=SOMEWHERE_NEAR_MIDDLE_OF_DRIVE
- Erros ao ler setores no final ou próximo ao final da unidade:
daniel@computador:~$ sudo dd bs=512 if=/dev/sdb1 of=test skip=3907026942 count=1 dd: '/dev/sdb1': não é possível pular: argumento inválido 0+0 registros em 0+0 registros fora 0 bytes (0 B) copiados, 0,000210598 s, 0,0 kB/s
Responder1
Se for a unidade USB e estiver relacionada ao tamanho, a unidade USB não está conseguindo processar corretamente uma solicitação de gravação de setor (e provavelmente de leitura também). O tamanho do arquivo não importa. A causa é que o arquivo maior possui "pedaços" que ultrapassam o limite endereçável.
Devido à fragmentação do disco, é difícil confirmar ou negar esta hipótese, mas você pode tentar com qualquer ferramenta que exiba o mapa de fragmentação do disco. Isso deve exibir um disco grande com o início sendo preenchido enadapassado de um certo ponto. Não no final, especialmente.
Em um disco FAT32 você pode tentar preencher o disco com arquivos pequenos, cada um com 8Kb de tamanho, até que a área "alcançável" seja preenchida e o disco se torne não gravável. Mas o disco é NTFS e, no entanto, o método não é muito preciso ou certo.
Se possível, eu montaria o disco em uma distribuição Linux live. Nesse ponto, você poderia tentar ler o disco, um setor de cada vez:
fdisk -l
informará quantos blocos de 512 bytes existem no disco externo. Então
dd bs=512 if=/dev/sdc of=test skip=NNNNN count=1
solicitará uma leitura do setor NNNNN (baseado em um :-)).
Se for uma questão de limite para NNNNN, você observará que:
N=1 it works
N=MAX_NUM it fails
N=MAX_NUM/2 it fails
...
então você pode começar com um clássicoalgoritmo de bissecçãoe determine onde está o setor crítico "C" (qualquer setor antes de C é legível, qualquer setor depois não é). Se tal setor existir, você terá um dano de hardware incrivelmente estranho ou a prova que procurava da culpa do gabinete.
Atualização - encontrando o limite pela bissecção: um exemplo
Digamos que o disco tenha 4 TB, ou seja, 8.000.000.000 de setores. Sabemos que o setor 1 é legível e o setor 8 bilhões não. Deixe READABLE ser 1, deixe UNREADABLE ser 8. Então o algoritmo é:
let TESTING be (READABLE + UNREADABLE)/2
if sector TESTING is readable then READABLE becomes equal to TESTING
else, UNREADABLE becomes equal to TESTING.
Lather, rinse, repeat with the new values of (UN)READABLE.
When two consecutive values of TESTING are obtained, that's your boundary.
Vamos imaginar que o limite esteja no setor 3.141.592.653 por causa de algum bug estranho no recinto.
first pass: testing = (1 + 8000000000)/2 = 4000000000.
4,000,000,000 is unreadable, so replace 8,000,000,000 with 4,000,000,000
second pass: testing (1 + 4M)/2 = 2M
sector 2M is readable, so replace 1 with 2,000,000,000
third pass: testing (2M + 4M)/2 = 3M
sector 3,000,000,000 is readable
fourth pass: testing (3M + 4M)/2 = 3,500,000,000 which is UNREADABLE
fifth: (3 + 3.5) / 2 = 3,250,000,000 UNREADABLE
...
Assim, READABLE e UNREADABLE perseguem a fronteira desconhecida cada vez mais de perto, em ambas as direções. Quando eles estão próximos o suficiente, você pode até tentar todos os setores intermediários.
Para localizar o limite, apenas log2(max - min) = log2(4TB - 0) = log2(4TB) = log2(2 40 ) = 40 (na verdade, acho que talvez 42) setores precisam ser lidos. Dado um atraso de reinicialização de 30" no gabinete quando ocorre um erro de leitura, isso deve ser de 20 minutos no máximo; provavelmente muito menos.
Depois de ter o limite B, para confirmá-loéum limite, você pode fazer uma leitura sequencial de grandes pedaços antes de B (isso não demorará muito), talvez um megabyte a cada gigabyte ou mais; e então uma amostragem aleatória de setores além de B. Por exemplo, os primeiros 4*63 setores além do limite, depois um setor a cada 3905 (ou cada RAND(4000, 4100) ) para tentar evitar bater sempre no mesmo prato magnético.
Mas, na verdade, se você encontrar um comportamento semelhante a um limite e confirmar isso com outro recintonão existe tal limite- bem, eu declararia o caso encerrado.
Responder2
OK, acho que descobri:
- Examine o
dmesg
log para verificar a memória endereçável suportada pelo dispositivo USB. - O Linux parece impedir o uso de um disco rígido se exceder a memória endereçável de um dispositivo USB. (Com vários erros).
- O Windows permite o uso de um disco rígido mesmo que exceda a memória endereçável de um dispositivo USB. (Até que o limite de endereço seja atingido.) (Então o problema era... Windows?)
A mesma unidade, gabinetes diferentes resultam em duas capacidades relatadas diferentes:
7814037168 512-byte logical blocks: (4.00 TB/3.63 TiB)
3519069872 512-byte logical blocks:(1.80 TB/1.63 TiB)
Detalhes completos:
1. dmesg
ao conectar dock "moderno" com unidade de 4 TB:
[93507.922275] usb 1-1.2: novo dispositivo USB de alta velocidade número 17 usando ehci-pci [93508.087948] usb 1-1.2: Novo dispositivo USB encontrado, idVendor=067b, idProduct=2773 [93508.087959] usb 1-1.2: Novas strings de dispositivo USB: Mfr=1, Produto=2, SerialNumber=3 [93508.087964] usb 1-1.2: Produto: Controlador de ponte ATAPI-6 [93508.087969] usb 1-1.2: Fabricante: Prolific Technology Inc. [93508.087973] usb 1-1.2: Número de série: 0123456789000000110 [93508.088621] usb-storage 1-1.2:1.0: dispositivo de armazenamento em massa USB detectado [93508.089092] scsi24: armazenamento usb 1-1.2:1.0 [93509.087318] scsi 24:0:0:0: Ponte C MPAO prolífica de acesso direto ATAPI-6 PQ: 0 ANSI: 0 [93509.087836] sd 24:0:0:0: SCSI genérico sg2 tipo 0 anexado [93509.088684] sd 24:0:0:0: [sdb] Dispositivo muito grande. Tentando usar READ CAPACITY(16). [93509.089837] sd 24:0:0:0: [sdb] 7814037168 Blocos lógicos de 512 bytes: (4,00 TB/3,63 TiB) [93509.090945] sd 24:0:0:0: [sdb] Proteção contra gravação está desativada [93509.090958] sd 24:0:0:0: [sdb] Sensor de modo: 03 00 00 00 [93509.092819] sd 24:0:0:0: [sdb] Nenhuma página de modo de cache encontrada [93509.092832] sd 24:0:0:0: [sdb] Assumindo cache da unidade: gravação [93509.094321] sd 24:0:0:0: [sdb] Dispositivo muito grande. Tentando usar READ CAPACITY(16). [93509.100539] sd 24:0:0:0: [sdb] Nenhuma página de modo de cache encontrada [93509.100545] sd 24:0:0:0: [sdb] Assumindo cache da unidade: gravação [93509.170090] sdb: sdb1 [93509.171931] sd 24:0:0:0: [sdb] Dispositivo muito grande. Tentando usar READ CAPACITY(16). [93509.176059] sd 24:0:0:0: [sdb] Nenhuma página de modo de cache encontrada [93509.176078] sd 24:0:0:0: [sdb] Assumindo cache da unidade: gravação [93509.176086] sd 24:0:0:0: [sdb] Disco SCSI anexado
2. dmesg
ao conectar um gabinete mais antigo com unidade de 4 TB:
[89939.561869] usb 1-1.2: novo dispositivo USB de alta velocidade número 14 usando ehci-pci [89939.656581] usb 1-1.2: Novo dispositivo USB encontrado, idVendor=152d, idProduct=2338 [89939.656592] usb 1-1.2: Novas strings de dispositivo USB: Mfr=1, Produto=2,SerialNumber=5 [89939.656598] usb 1-1.2: Produto: USB para ponte ATA/ATAPI [89939.656602] usb 1-1.2: Fabricante: JMicron [89939.656606] usb 1-1.2: Número de série: 0613316A1498 [89939.658334] usb-storage 1-1.2:1.0: dispositivo de armazenamento em massa USB detectado [89939.658805] scsi20: armazenamento usb 1-1.2:1.0 [89940.659147] scsi 20:0:0:0: HGST HMS de acesso direto 5C4040ALE640 A580 PQ: 0 ANSI: 2 CCS [89940.659959] sd 20:0:0:0: SCSI genérico sg2 tipo 0 anexado [89940.661373] sd 20:0:0:0: [sdb] 3519069872 blocos lógicos de 512 bytes:(1,80 TB/1,63 TiB) [89940.662410] sd 20:0:0:0: [sdb] Proteção contra gravação está desativada [89940.662424] sd 20:0:0:0: [sdb] Sensor de modo: 00 38 00 00 [89940.663438] sd 20:0:0:0: [sdb] Falha ao solicitar dados de cache [89940.663446] sd 20:0:0:0: [sdb] Assumindo cache da unidade: gravação [89940.667752] sd 20:0:0:0: [sdb] Falha ao solicitar dados de cache [89940.667761] sd 20:0:0:0: [sdb] Assumindo cache da unidade: gravação [89940.684862] sdb: tabela de partição desconhecida [89940.687887] sd 20:0:0:0: [sdb] Falha ao solicitar dados de cache [89940.687893] sd 20:0:0:0: [sdb] Assumindo cache da unidade: gravação [89940.687897] sd 20:0:0:0: [sdb] Disco SCSI anexado
Responder3
Existem algumas maneiras de testar seu disco rígido, baixe um software chamado "HDTune". Este é um programa pago, mas possui uma versão de teste que dura 30 dias com todas as funcionalidades. Você pode usá-lo para verificar setores defeituosos e verificar a integridade do disco rígido. De qualquer forma, você teve setores defeituosos, você pode tentar consertar com HDD Regenerators,Baixar HirensQue eu pessoalmente uso.
Certifique-se de não ter nenhum disco rígido inserido além daquele que deseja testar. é inicializável, você pode gravá-lo em um CD ou em uma unidade USB.
o próximo que sugiro é verificar seus cabos. Principalmente em drives externos, normalmente esses erros são causados por falta de energia, tente inseri-lo em outro computador ou trocar os cabos se tiver extras e veja se ainda falha.
Responder4
É estranho que gere erro em arquivos acima de 4GB. Como o FS é NTFS, a limitação está excluída.
Suspeito que seja um erro de dessincronização do buffer.
Tente isto: vá para regedit -> HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\System
Crie um novo valor DWORD chamado CopyFileBufferedSynchronousIo
. Altere seu valor do padrão 0 para 1.
Outras coisas a considerar: Você tem caminhos e nomes de arquivos muito grandes (como mais de 255 caracteres)? Você usa idiomas adicionais no sistema operacional ou diferentes da configuração padrão de formato regional/teclado ou de hora/data? (Por mais estranho que pareça, eles podem quebrar muitas coisas nas janelas). Como alternativa, o controlador da unidade externa pode não conseguir endereçar mais de 2,0 TB. -edit- Você pode postar uma captura de tela do espaço exato usado atualmente?