Я внезапно начал получать ошибки при копировании файлов на внешний жесткий диск. Свободного места предостаточно: 1,64 ТБ свободно из 3,63 ТБ. Мне удалось завершить копирование файлов, выполнив одно из двух действий:
- Сначала удалите некоторые большие файлы с внешнего жесткого диска.
- ИЛИ поместите жесткий диск в другой USB-корпус
Кроме того, средство проверки ошибок Windows 8 завершается с ошибкой, если не используется другой корпус USB (удаление больших файлов в этом случае не помогает). Инструмент командной строки CHKDSK всегда работает и не сообщает об ошибках на диске.
Как убедиться, что проблема была в корпусе USB-жесткого диска?(Я хотел бы подтвердить, что проблема быланетс моим жестким диском и его можно безопасно продолжать использовать.)И как определить емкость, поддерживаемую корпусом USB HDD?
Подробная информация:
Ошибка при копировании большого файла:
- Код 0x80070057, по-видимому, является довольно общим кодом.
- Сразу после получения этой ошибки я успешно скопировал файл размером 2 ГБ. Я попробовал скопировать тот же файл еще раз (всего 4 ТБ) и получил ту же ошибку.
- В системных журналах событий, похоже, каждый раз при сбое копирования регистрируется следующая запись: «Теневые копии тома D: были прерваны из-за сбоя ввода-вывода на томе D:».
Ошибка средства проверки ошибок Windows 8:
- После сбоя открывается просмотрщик событий Windows с какой-то ошибкой, связанной с теневым копированием тома. (Забыл записать подробности об этом)
Аппаратное обеспечение:
- ЭнермаксДжаз 3.5Корпус USB HDD (Этот вызывает ошибки; это довольно старая модель.)
- ЛетоDATACLONE3.0Док-станция USB HDD (в этой модели, похоже, нет ошибок; она гораздо более новая).
- Жесткий диск Western Digital 4 ТБ GREENWD40EZRX
Файловая система:
- GPT (диск MBR объемом 2 ТБ был клонирован в диск объемом 4 ТБ, затем таблица разделов преобразована в GPT)
- NTFS
Система:
- Windows 8
- Ноутбук Lenovo X1 Carbon
обновлять:Дополнительные сведения о зарегистрированном событии «Теневые копии тома D: были отменены...»:
Система - Провайдер [ Имя] volsnap - EventID 14 [Квалификаторы] 49158 Уровень 2 Задача 0 Ключевые слова 0x800000000000000 - ВремяСоздано [ Системное время] 2015-01-24T21:23:54.296013300Z EventRecordID 1063256374 Система каналов Компьютер X1-Carbon Безопасность - EventData \Device\HarddiskVolumeShadowCopy6 Д: Д: 00000000030030000000000000E0006C00A0000000D0000C002000000000000000000000000000000
обновление 2:
Ошибка монтирования диска объемом 4 ТБ в Ubuntu с доком, работающим из Windows:
Ошибка монтирования /dev/sdc1 в /media/daniel/DeskStar: Командная строка `mount -t "ntfs" -o "uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000,dmask=0077,fmask=0177" "/dev/sdc1" "/media/daniel/DeskStar"' завершилась с ненулевым кодом выхода 13: ntfs_attr_pread_i: ntfs_pread failed: Ошибка ввода/вывода Не удалось прочитать NTFS $Bitmap: ошибка ввода/вывода NTFS либо несовместима, либо произошел сбой оборудования, либо это Аппаратное обеспечение SoftRAID/FakeRAID. В первом случае запустите chkdsk /f на Windows затем перезагрузитесь в Windows дважды. Использование параметра /f очень важно! Если устройство SoftRAID/FakeRAID, то сначала активируйте и смонтируйте другое устройство в каталоге /dev/mapper/ (например, /dev/mapper/nvidia_eahaabcc1). Пожалуйста, ознакомьтесь с документацией 'dmraid' Больше подробностей.
Диск не указан в fdisk -l
, поэтому не могу попробовать dd
... Я попробовал подключиться обратно к Windows: проблем нет; средство проверки свойств диска Windows не сообщает об ошибках.
Также:
Попробовал использовать dd
на (проблемном?) корпусе сдругойЖесткий диск 2 ТБ:
- Нет ошибок чтения
skip=0
- Нет ошибок чтения
skip=SOMEWHERE_NEAR_MIDDLE_OF_DRIVE
- Ошибки чтения секторов в конце или близком к концу диска:
daniel@computer:~$ sudo dd bs=512 if=/dev/sdb1 of=test skip=3907026942 count=1 dd: '/dev/sdb1': невозможно пропустить: Недопустимый аргумент 0+0 записей в 0+0 записей вышло 0 байт (0 Б) скопировано, 0,000210598 с, 0,0 кБ/с
решение1
Если это USB-накопитель, и это связано с размером, то USB-накопитель не может правильно обработать запрос на запись сектора (и, вероятно, чтение тоже). Размер файла не имеет значения. Причина в том, что в более крупном файле есть «части», выходящие за пределы адресуемой границы.
Из-за фрагментации диска трудно подтвердить или опровергнуть эту гипотезу, но вы можете попробовать с любым инструментом, который отображает карту фрагментации диска. Это должно отобразить большой диск с началом, которое заполняется, иничегопосле определенного момента. Не в конце, особенно.
На диске FAT32 вы можете попытаться заполнить диск небольшими файлами, каждый размером 8 Кб, пока не заполнится "доступная" область и диск не станет непригодным для записи. Но диск NTFS, и, однако, этот метод на самом деле не очень точен или определен.
Если это вообще возможно, я бы смонтировал диск на живом дистрибутиве Linux. В этом случае вы можете попробовать прочитать диск по одному сектору за раз:
fdisk -l
скажет вам, сколько 512-байтовых блоков находится на внешнем диске. Затем
dd bs=512 if=/dev/sdc of=test skip=NNNNN count=1
запросит чтение сектора NNNNN (на основе единицы :-) ).
Если речь идет об ограничении NNNNN, вы заметите, что:
N=1 it works
N=MAX_NUM it fails
N=MAX_NUM/2 it fails
...
так что вы можете начать с классикиалгоритм деления пополами определите, где находится критический сектор "C" (любой сектор до C читается, любой после - нет). Если такой сектор существует, то у вас либо невероятно странное повреждение оборудования, либо доказательство виновности корпуса, которое вы искали.
Обновление - нахождение границы путем деления пополам: пример
Допустим, диск имеет размер 4 ТБ, то есть 8 000 000 000 секторов. Мы знаем, что сектор 1 читается, а сектор 8-миллиардный — нет. Пусть READABLE будет 1, пусть UNREADABLE будет 8. Тогда алгоритм будет таким:
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.
Давайте представим, что граница находится в секторе 3 141 592 653 из-за какого-то странного жучка в ограждении.
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
...
Так ЧИТАЕМЫЙ и НЕЧИТАЕМЫЙ все ближе и ближе следуют к неизвестной границе с обеих сторон. Когда они достаточно близки, вы можете даже пойти и попробовать все сектора между ними.
Чтобы найти границу, нужно прочитать только log2(max - min) = log2(4TB - 0) = log2(4TB) = log2(2 40 ) = 40 (на самом деле, я думаю, возможно, 42) секторов. Учитывая 30-дюймовую задержку сброса на корпусе при возникновении ошибки чтения, это должно быть максимум 20 минут; вероятно, гораздо меньше.
Как только у вас появится граница B, подтвердите ееявляетсяграницу, вы можете выполнить последовательное чтение больших фрагментов перед B (это не займет много времени), может быть, один мегабайт на каждый гигабайт или около того; а затем случайную выборку секторов за пределами B. Например, первые 4*63 сектора за границей, затем один сектор каждые 3905 (или каждые RAND(4000, 4100) ), чтобы попытаться избежать попадания всегда на одну и ту же магнитную пластину.
Но на самом деле, если вы обнаружите поведение, похожее на границу, и подтвердите это с помощью другого ограждениятакой границы нет-- ну, я бы объявил дело закрытым.
решение2
Ладно, я думаю, я понял:
- Проверьте
dmesg
журнал, чтобы проверить адресуемую память, поддерживаемую USB-устройством. - Linux, по-видимому, не позволяет использовать жесткий диск, если его объем превышает адресуемую память USB-устройства. (С несколькими ошибками).
- Windows позволяет использовать жесткий диск, даже если он превышает адресуемую память USB-устройства. (Пока не будет достигнут предел адреса.) (Так проблема была в... Windows?)
Один и тот же диск, разные корпуса дают два разных значения емкости:
7814037168 512-byte logical blocks: (4.00 TB/3.63 TiB)
3519069872 512-byte logical blocks:(1.80 TB/1.63 TiB)
Полная информация:
1. dmesg
при подключении «современной» док-станции с диском 4 ТБ:
[93507.922275] usb 1-1.2: новое высокоскоростное USB-устройство номер 17 с использованием ehci-pci [93508.087948] usb 1-1.2: Найдено новое USB-устройство, idVendor=067b, idProduct=2773 [93508.087959] usb 1-1.2: Новые строки USB-устройства: Mfr=1, Product=2, SerialNumber=3 [93508.087964] usb 1-1.2: Продукт: Контроллер моста ATAPI-6 [93508.087969] usb 1-1.2: Производитель: Prolific Technology Inc. [93508.087973] usb 1-1.2: Серийный номер: 0123456789000000110 [93508.088621] usb-storage 1-1.2:1.0: Обнаружено USB-устройство хранения данных [93508.089092] scsi24 : usb-накопитель 1-1.2:1.0 [93509.087318] scsi 24:0:0:0: Прямой доступ Prolific ATAPI-6 Bridge C MPAO PQ: 0 ANSI: 0 [93509.087836] sd 24:0:0:0: Прикрепленный scsi generic sg2 тип 0 [93509.088684] sd 24:0:0:0: [sdb] Очень большое устройство. Попытка использовать READ CAPACITY(16). [93509.089837] sd 24:0:0:0: [sdb] 7814037168 512-байтовые логические блоки: (4,00 ТБ/3,63 ТиБ) [93509.090945] sd 24:0:0:0: [sdb] Защита от записи отключена [93509.090958] sd 24:0:0:0: [sdb] Режим Sense: 03 00 00 00 [93509.092819] sd 24:0:0:0: [sdb] Страница режима кэширования не найдена [93509.092832] sd 24:0:0:0: [sdb] Предполагая кэш диска: сквозная запись [93509.094321] sd 24:0:0:0: [sdb] Очень большое устройство. Попытка использовать READ CAPACITY(16). [93509.100539] sd 24:0:0:0: [sdb] Страница режима кэширования не найдена [93509.100545] sd 24:0:0:0: [sdb] Предполагая кэш диска: сквозная запись [93509.170090] сдб: сдб1 [93509.171931] sd 24:0:0:0: [sdb] Очень большое устройство. Попытка использовать READ CAPACITY(16). [93509.176059] sd 24:0:0:0: [sdb] Страница режима кэширования не найдена [93509.176078] sd 24:0:0:0: [sdb] Предполагая кэш диска: сквозная запись [93509.176086] sd 24:0:0:0: [sdb] Подключенный диск SCSI
2. dmesg
при подключении старого корпуса с диском 4 ТБ:
[89939.561869] usb 1-1.2: новое высокоскоростное USB-устройство номер 14 с использованием ehci-pci [89939.656581] usb 1-1.2: Найдено новое USB-устройство, idVendor=152d, idProduct=2338 [89939.656592] usb 1-1.2: Новые строки USB-устройства: Mfr=1, Product=2,SerialNumber=5 [89939.656598] usb 1-1.2: Продукт: USB to ATA/ATAPI Bridge [89939.656602] usb 1-1.2: Производитель: JMicron [89939.656606] usb 1-1.2: Серийный номер: 0613316A1498 [89939.658334] usb-storage 1-1.2:1.0: Обнаружено USB-устройство хранения данных [89939.658805] scsi20 : usb-накопитель 1-1.2:1.0 [89940.659147] scsi 20:0:0:0: Прямой доступ HGST HMS 5C4040ALE640 A580 PQ: 0 ANSI: 2 CCS [89940.659959] sd 20:0:0:0: Прикрепленный scsi generic sg2 тип 0 [89940.661373] sd 20:0:0:0: [sdb] 3519069872 512-байтовые логические блоки: (1,80 ТБ/1,63 ТиБ) [89940.662410] sd 20:0:0:0: [sdb] Защита от записи отключена [89940.662424] sd 20:0:0:0: [sdb] Режим Sense: 00 38 00 00 [89940.663438] sd 20:0:0:0: [sdb] Не удалось запросить данные кэша [89940.663446] sd 20:0:0:0: [sdb] Предполагая кэш диска: сквозная запись [89940.667752] sd 20:0:0:0: [sdb] Не удалось запросить данные кэша [89940.667761] sd 20:0:0:0: [sdb] Предполагая кэш диска: сквозная запись [89940.684862] sdb: неизвестная таблица разделов [89940.687887] sd 20:0:0:0: [sdb] Не удалось запросить данные кэша [89940.687893] sd 20:0:0:0: [sdb] Предполагая кэш диска: сквозная запись [89940.687897] sd 20:0:0:0: [sdb] Подключенный диск SCSI
решение3
Есть несколько способов проверить ваш жесткий диск, загрузите программное обеспечение под названием "HDTune". Это платная программа, но у нее есть пробная версия, которая действует в течение 30 дней с полной функциональностью. Вы можете использовать ее для проверки на наличие поврежденных секторов, проверки состояния вашего жесткого диска. В любом случае, если у вас были поврежденные сектора, вы можете попробовать исправить это с помощью HDD Regenerators,Hirens СкачатьКоторым я лично пользуюсь.
Убедитесь, что у вас не подключены никакие жесткие диски, кроме того, который вы хотите проверить. Он загрузочный, вы можете записать его на CD или USB-накопитель.
Далее я предлагаю проверить кабели. Особенно на внешних дисках, обычно эти ошибки вызваны отсутствием питания, попробуйте вставить его в другой компьютер или поменять кабели, если у вас есть дополнительные, затем посмотрите, не исчезнет ли проблема.
решение4
Странно, что выдает ошибку на файлах больше 4 ГБ. Поскольку ФС NTFS, ограничение исключено.
Подозреваю, что это ошибка рассинхронизации буфера.
Попробуйте это: перейдите в regedit --> HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\System
Создайте новый параметр DWORD с именем CopyFileBufferedSynchronousIo
. Измените его значение с 0 по умолчанию на 1.
Другие моменты, которые следует учитывать: У вас очень большие пути и имена файлов (например, более 255 символов)? Используете ли вы дополнительные языки в ОС или другие языки, кроме региональных настроек/клавиатуры или формата времени/даты по умолчанию? (Как бы странно это ни звучало, они могут сломать достаточно много вещей в Windows). С другой стороны, контроллер внешнего диска может быть не в состоянии адресовать более 2,0 ТБ. -edit- Можете ли вы опубликовать снимок экрана с точным текущим используемым пространством?