外付けハードドライブにファイルをコピーするときに突然エラーが発生し始めました。空き容量は十分にあります。3.63TB のうち 1.64TB が空いています。次の 2 つのうちのいずれかを実行して、ファイルのコピーを完了できました。
- まず、外付けハードドライブから大きなファイルをいくつか削除します
- またはHDDを別のUSBエンクロージャに入れる
さらに、別の USB エンクロージャを使用しない限り、Windows 8 のエラー チェック ツールはエラーで失敗します (この場合、大きなファイルを削除しても役に立ちません)。CHKDSK コマンドライン ツールは常に機能し、ディスクにエラーは報告されません。
USB HDD エンクロージャに問題があることを確認するにはどうすればよいですか?(問題がないハードドライブに問題がなく、引き続き使用しても安全です。USB HDD エンクロージャでサポートされる容量をどのように確認すればよいでしょうか?
詳細情報:
大きなファイルをコピーするときのエラー:
- コード 0x80070057 はかなり一般的なコードのようです。
- このエラーが発生した直後に、2GB のファイルを正常にコピーしました。同じファイルを再度コピーしようとしましたが (合計 4TB)、同じエラーが発生しました。
- システム イベント ログには、コピーが失敗するたびに次の内容が記録されるようです: 「ボリューム D: のシャドウ コピーは、ボリューム D: の IO 障害のため中止されました。」
Windows 8 エラー チェック ツール エラー:
- 失敗すると、ボリューム シャドウ コピーに関連するエラーが Windows イベント ビューアーに表示されます。(この詳細を記録するのを忘れました)
ハードウェア:
- エナーマックスジャズ 3.5USB HDD エンクロージャ (これはエラーの原因になります。かなり古いモデルです。)
- レトデータクローン3.0USB HDD ドック (こちらはエラーがないようです。かなり新しいモデルです。)
- ウエスタンデジタル 4TB グリーンハードドライブWD40EZRX
ファイルシステム:
- GPT (2TB MBR ドライブを 4TB ドライブにクローンし、パーティション テーブルを GPT に変換しました)
- NTFS
システム:
- ウィンドウズ8
- レノボ X1 カーボン ノートパソコン
アップデート:「ボリューム D: のシャドウ コピーが中止されました...」というログに記録されたイベントの詳細:
システム - プロバイダー [名前] volsnap - イベントID 14 [ 予選通過者] 49158 レベル2 タスク 0 キーワード 0x800000000000000 - 作成時間 [ システム時間] 2015-01-24T21:23:54.296013300Z イベントレコードID 1063256374 チャネルシステム コンピュータ X1-Carbon 安全 - イベントデータ \デバイス\ハードディスクボリュームシャドウコピー6 デ: デ: 00000000030030000000000000E0006C00A0000000D0000C002000000000000000000000000000000
アップデート2:
Windows から動作するドックを使用して Ubuntu で 4TB ドライブをマウントするときにエラーが発生しました:
/media/daniel/DeskStar で /dev/sdc1 をマウント中にエラーが発生しました: コマンドライン `mount -t "ntfs" -o "uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000,dmask=0077,fmask=0177" "/dev/sdc1" "/media/daniel/DeskStar"' が 0 以外の終了ステータス 13 で終了しました: ntfs_attr_pread_i: ntfs_pread が失敗しました: 入出力エラー NTFS $Bitmap の読み取りに失敗しました: 入出力エラー NTFSに不整合があるか、ハードウェアに障害があるか、 SoftRAID/FakeRAIDハードウェア。最初のケースでは、Windowsでchkdsk /fを実行します。 その後、Windowsを2回再起動します。/fパラメータの使用は非常に 重要!デバイスがSoftRAID/FakeRAIDの場合は、まず /dev/mapper/ディレクトリの下に別のデバイスをマウントします(例: /dev/mapper/nvidia_eahaabcc1) を参照してください。「dmraid」ドキュメントを参照してください。 詳細については。
ドライブは にリストされていないfdisk -l
ため、試すことができませんdd
... Windows に再接続してみましたが、問題はありませんでした。Windows ディスク プロパティのエラー チェック ツールでは、エラーは報告されませんでした。
また:
dd
(問題の?)筐体で使用してみました違う2TBハードドライブ:
- 読み取りエラーなし
skip=0
- 読み取りエラーなし
skip=SOMEWHERE_NEAR_MIDDLE_OF_DRIVE
- ドライブの最後または終わり近くのセクターの読み取りエラー:
ダニエル@コンピュータ:~$ sudo dd bs=512 if=/dev/sdb1 of=テスト skip=3907026942 count=1 dd: '/dev/sdb1': スキップできません: 無効な引数です 0+0件のレコード 0+0 レコードが出力されました 0 バイト (0 B) がコピーされました、0.000210598 秒、0.0 kB/秒
答え1
USB ドライブで、サイズに関係する場合、USB ドライブはセクター書き込み (およびおそらく読み取りも) 要求を正しく処理できません。ファイル サイズは関係ありません。原因は、大きいファイルにアドレス指定可能な境界を超える「部分」があることです。
ディスクの断片化により、この仮説を確認または否定することは困難ですが、ディスクの断片化マップを表示するツールを試すことができます。このツールは、最初にいっぱいになっている大きなディスクと、何もないある時点を過ぎると。特に最後はそうではありません。
FAT32 ディスクでは、各 8Kb の小さなファイルでディスクを埋め尽くして、「到達可能」領域がいっぱいになり、ディスクが書き込み不能になるまで待つことができます。ただし、ディスクは NTFS であり、この方法は実際にはあまり正確ではなく、確実でもありません。
可能であれば、ディスクを Linux ライブ ディストリビューションにマウントします。その時点で、ディスクを 1 セクターずつ読み取ることができます。
fdisk -l
外付けディスクに512バイトのブロックがいくつあるかがわかります。
dd bs=512 if=/dev/sdc of=test skip=NNNNN count=1
セクター NNNNN (1 ベース :-) ) の読み取りを要求します。
NNNNN の制限の問題であれば、次のことがわかります。
N=1 it works
N=MAX_NUM it fails
N=MAX_NUM/2 it fails
...
クラシックから始めることができます二分アルゴリズムそして、重要なセクター「C」がどこにあるかを判断します (C より前のセクターは読み取り可能で、それ以降のセクターは読み取り不可能です)。そのようなセクターが存在する場合、非常に奇妙なハードウェアの損傷、またはエンクロージャの責任を示す探していた証拠のいずれかです。
更新 - 二等分による境界の検出: 例
ディスクが 4TB だとすると、セクター数は 8,000,000,000 です。セクター 1 は読み取り可能で、セクター 80 億は読み取り不可能であることがわかっています。読み取り可能を 1、読み取り不可能を 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
...
そのため、READABLE と UNREADABLE は、両方向から未知の境界をどんどん接近して追跡します。十分に接近すると、その間にあるすべてのセクターを試すこともできます。
境界を見つけるには、log2(max - min) = log2(4TB - 0) = log2(4TB) = log2(2 40 ) = 40 (実際にはおそらく 42) セクターのみを読み取る必要があります。読み取りエラーが発生したときにエンクロージャで 30 インチのリセット遅延が発生することを考慮すると、最大でも 20 分、おそらくそれよりはるかに短いはずです。
境界Bができたら、それを確認するにはは境界では、B の前の大きなチャンクを順次読み取り (これにはそれほど時間がかかりません)、おそらく 1 ギガバイトごとに 1 メガバイト程度読み取り、次に B を超えたセクターをランダムにサンプリングします。たとえば、境界を超えた最初の 4*63 セクター、次に 3905 ごとに 1 セクター (または RAND(4000, 4100) ごと) などです。これにより、常に同じ磁気プラッターにヒットすることがなくなります。
しかし、実際に境界のような行動を見つけ、別の囲い地でそれを確認すればそのような境界はない-- まあ、この事件は解決したと宣言します。
答え2
わかりました。分かったと思います。
- ログを調べて
dmesg
、USB デバイスでサポートされているアドレス指定可能なメモリを確認します。 - Linux では、USB デバイスのアドレス指定可能なメモリを超えるとハード ドライブの使用が禁止されるようです (エラーがいくつか発生)。
- Windows では、USB デバイスのアドレス指定可能なメモリを超えてもハード ドライブを使用できます (アドレス制限に達するまで)。 (つまり、問題は... Windows にあったのでしょうか?)
同じドライブ、異なるエンクロージャの場合、報告される容量は 2 通りになります。
7814037168 512-byte logical blocks: (4.00 TB/3.63 TiB)
3519069872 512-byte logical blocks:(1.80 TB/1.63 TiB)
全詳細:
1. dmesg
4TB ドライブを搭載した「最新」ドックを接続する場合:
[93507.922275] usb 1-1.2: ehci-pci を使用した新しい高速 USB デバイス番号 17 [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 ブリッジ C MPAO PQ: 0 ANSI: 0 [93509.087836] sd 24:0:0:0: SCSI汎用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 TB/3.63 TiB) [93509.090945] sd 24:0:0:0: [sdb] 書き込み保護はオフです [93509.090958] sd 24:0:0:0: [sdb] モードセンス: 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] sdb: sdb1 [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
古いエンクロージャを 4TB ドライブに接続する場合:
[89939.561869] usb 1-1.2: ehci-pci を使用した新しい高速 USB デバイス番号 14 [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 から ATA/ATAPI へのブリッジ [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汎用SG2タイプ0を接続 [89940.661373] sd 20:0:0:0: [sdb] 3519069872 512バイトの論理ブロック:(1.80 TB/1.63 TiB) [89940.662410] sd 20:0:0:0: [sdb] 書き込み保護はオフです [89940.662424] sd 20:0:0:0: [sdb] モードセンス: 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
4GB を超えるファイルでエラーが発生するのは奇妙です。FS は NTFS なので、制限は除外されます。
バッファの同期解除エラーだと思います。
これを試してください: regedit に移動 -->HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\System
という新しい DWORD 値を作成しますCopyFileBufferedSynchronousIo
。その値をデフォルトの 0 から 1 に変更します。
他に考慮すべき点: 非常に大きなパスとファイル名 (255 文字以上など) がありますか? OS で追加の言語を使用したり、デフォルトの地域/キーボードまたは時刻/日付の形式設定以外を使用したりしていますか? (奇妙に聞こえるかもしれませんが、これらは Windows で十分な問題を引き起こす可能性があります)。または、外付けドライブのコントローラーが 2.0 TB を超えるアドレスを処理できない可能性があります。 -編集- 現在使用されている正確なスペースのスクリーンショットを投稿できますか?