USBハードドライブの異常な動作

USBハードドライブの異常な動作

現在、新しい外付け USB ハード ドライブの使用時に奇妙な動作が発生しています。この動作はマウントの問題、ファイル システムの問題、または実際のハードウェア障害に関連していると思われます。問題を解決するために行った操作と、USB ハード ドライブのマウントに使用した方法を記載すると、コミュニティの役に立つと思います。

ファイルシステム

USB ハード ドライブは、Windows マシン上の VM で Ubuntu でフォーマットされました。その後、物理的な Ubuntu サーバーに移動されました。

USBマウント

USB マウントを使用してインストールしたsudo apt-get install usbmount後、ハードドライブを参照して、 経由で書き込むことができました/media/usb

すべて順調ですが...

ハード ドライブが約 20 GB になったところで、デバイスにコピーするときに FTP 経由でエラーが発生するようになりました。ここで奇妙な問題が発生しますが、sudo cp filenameデバイスを使用して書き込むとエラーがまったく発生しません。Flashfxp 経由で報告されるエラーは、ディスクがいっぱいか、読み取り/書き込み入力エラーのいずれかです。

Pmountの使用

USBMount を削除して Pmount を使用すると、問題は解決されません。ただし、pmount と usbmount の両方を削除する/media/usb0だけでは、まだ表示されるため、かなり奇妙に感じます。/usb//media/usb0/

Fdiskはいくつかの問題を報告します

以下は fdisk を使用したレポートです。ご覧のとおり、sdb にファイル システムがないように見えますが、表示できるので不思議です。fdisk /dev/sdb/ を使用すると、パーティションを表示できず、パーティションを作成しても削除できません。

simon@Pluto2:/media/usb0$ sudo fdisk -l

Disk /dev/sda: 37.0 GB, 37019566080 bytes 255 heads, 63 sectors/track, 4500 cylinders, total 72303840 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000c5772

   Device Boot      Start         End      Blocks   Id  System /dev/sda1   *        2048      499711      248832   83  Linux /dev/sda2          501758    72302591    35900417    5  Extended /dev/sda5          501760    72302591    35900416   8e  Linux LVM Note: sector size is 4096 (not 512)

Disk /dev/sdb: 2000.4 GB, 2000398929920 bytes 255 heads, 63 sectors/track, 30400 cylinders, total 488378645 sectors Units = sectors of 1 * 4096 = 4096 bytes Sector size (logical/physical): 4096 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x0001b7d6

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/mapper/Pluto2--vg-root: 32.6 GB, 32635879424 bytes 255 heads, 63 sectors/track, 3967 cylinders, total 63741952 sectors Units
= sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000

Disk /dev/mapper/Pluto2--vg-root doesn't contain a valid partition table

Disk /dev/mapper/Pluto2--vg-swap_1: 4123 MB, 4123000832 bytes 255 heads, 63 sectors/track, 501 cylinders, total 8052736 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000

Disk /dev/mapper/Pluto2--vg-swap_1 doesn't contain a valid partition table

fsckの実行

オンラインでいくつかのガイドを見つけましたが、そのうちの 1 つでは fsck を実行するように記載されていました... 残念ながら、これによって問題がさらに混乱するだけです。

simon@Pluto2:/media/usb0$ sudo fsck /dev/sdb
fsck from util-linux 2.20.1
e2fsck 1.42.9 (4-Feb-2014)
ext2fs_open2: Bad magic number in super-block
fsck.ext2: Superblock invalid, trying backup blocks...
fsck.ext2: Bad magic number in super-block while trying to open /dev/sdb

The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem.  If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>
 or
    e2fsck -b 32768 <device>

e2fsck -b 8193 および -b 32768 を実行

simon@Pluto2:/media/usb0$ sudo e2fsck -b 32768 /dev/sdb
e2fsck 1.42.9 (4-Feb-2014)
e2fsck: Bad magic number in super-block while trying to open /dev/sdb

The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem.  If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>
 or
    e2fsck -b 32768 <device>

smartctl -i の実行

simon@Pluto2:/media/usb0$ sudo smartctl -d sat -i /dev/sdb
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-32-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.14 (AF)
Device Model:     ST2000DM001-1CH164
Serial Number:    XXXXXXXXXX
LU WWN Device Id: 5 000c50 06636209d
Firmware Version: CC49
User Capacity:    2,000,398,934,016 bytes [2.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2, ACS-3 T13/2161-D revision 3b
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Tue Dec  9 21:31:44 2014 GMT

==> WARNING: A firmware update for this drive is available,
see the following Seagate web pages:
http://knowledge.seagate.com/articles/en_US/FAQ/207931en
http://knowledge.seagate.com/articles/en_US/FAQ/223651en

SMART support is: Available - device has SMART capability.
SMART support is: Enabled

smartctl -d sat -t short /dev/sdb を実行

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%       258

20GB未満

また、5 GB のデータを削除した場合、問題なく別の 5 GB をデバイスに書き込むことができることも言及する価値があります。ドライブが特定のポイントまで使用されると、不良セクタが表示される可能性がありますが、その後はデバイス上でさまざまなツールを実行できると予想されます。

答え1

ハードディスク自体のセクターの1つに問題があるハードディスクの問題を解決する必要がある前にそれを再利用しようとします。

これまでやってきたことはファイルシステム修復ツールを実行することだけですこれらはすべて、作業に適したハードドライブを備えていることを前提としています

もし、あんたが本当にハードドライブの故障が疑われる場合は(このように見える場合)、badblocks

この場合、パーティションではなくドライブ全体で実行し、破壊テストを実行します (可能な場合)。

次のコマンドを実行する前に読んでくださいman badblocks

badblocks は、ディスクの低レベルフォーマットより 1 レベル上、FS フォーマットより 1 レベル下です。

私が行うことは、それを物理マシン(VM ではない)に移動し、ドライブのデバイス名がumount /dev/usb0&&badblocks /dev/usb0 -s -v -wどこにあるかを確認することです。usb0

上記のコマンドは、ドライブのSMARTテクノロジーを起動し、可能であれば不良セクタを交換します(SMARTが何もしない場合は、badblocksの出力を入力として使用できますmke2fs)。

会話全体をもう一度読みます:

新しいドライブです。返品して別のドライブと交換してください。

答え2

ドライブは他のコンピューターや Windows で正常に動作しますか? ドライブ全体の読み取りと書き込みは可能ですか?

以前、外付け USB ドライブ「ケース」を使用したことがあります。HD または CD/DVD ドライブを接続すると、Ubuntu (Linux Mint) は通常、HD を通常のドライブのように /dev/sdc (例) として認識します。 または は必要ありませんusbmountpmount、おそらくお使いのドライブの方が新しいか、何らかの点で変わっているのでしょう。まったく同じドライブを使用していて、Linux (Ubuntu、Debian、その他) で使用できる (または使用できない) 人はいますか?

とにかく、マウントされると、ドライブのフォーマットはどうなりますか? mount&/またはで確認してくださいlsblk

MBR または GPT ですか? /dev/sdb の「全体」デバイスで fsck を実行しており、/dev/sdb1 のようなパーティションでは実行していません (ただし、fdisk はいずれにしてもパーティションを認識しないようです)。しかし、そこに ext2/3/4 FS は認識されません。/dev/sdb1 で使用すると、fsck はまだ失敗しますか? また、一般的には、fsckマウントされていないパーティションで実行するのが最善です。

USB ハード ドライブの場合、ソフトウェア/ドライバーの問題なのか、HD 自体の問題なのか、外部の「ケース」の問題なのか、USB コードやハブ、プラグの問題なのかを判断するのは困難です...


新しい情報: 興味深い可能性のある情報を見逃していた可能性があります (ほぼ TL;DR ;-)。

USBハードドライブは、Windowsマシン上のVMのUbuntuでフォーマットされました

すべてが VM プログラムを経由するため、VM と USB (またはハードウェアへの直接アクセス) ではあまり良い結果が出ていません。これが、この奇妙な動作の大きな原因のようです...

答え3

badblocks の優れた代替手段として、diskscan (ターミナルから:apt-get install diskscan) を試すことができます。これはセクターの読み取りの待ち時間を測定し、不良セクターも報告します。待ち時間が長くなるほど、エラーが発生する可能性が高くなります。

関連情報