USB 硬碟的奇怪行為

USB 硬碟的奇怪行為

我目前在使用新的外部 USB 硬碟時遇到奇怪的行為,我認為該行為與安裝問題、檔案系統問題或實際硬體故障有關。如果我提及我為解決該問題所做的工作以及我用來安裝 USB 硬碟的方法,這應該會對社群有所幫助。

檔案系統

USB 硬碟機在我的 Windows 電腦上的 VM 中的 Ubuntu 中進行了格式化。後來它被轉移到實體 ubuntu 伺服器。

USB安裝座

我安裝了 USB Mount,sudo apt-get install usbmount然後我就可以瀏覽硬碟並通過/media/usb.

一切都很好,直到...

我的硬碟容量達到了 20GB 左右,之後我在透過 FTP 複製到裝置時遇到了失敗。現在奇怪的問題是,當我使用sudo cp filename和寫入設備時,我得到零錯誤。透過 Flashfxp 報告的錯誤要么是磁碟已滿,要么是錯誤讀取/寫入輸入錯誤。

使用Pmount

刪除 USBMount 並使用 Pmount 並不能解決我所看到的問題,而不僅僅是/media/usb0刪除/usb/pmount 和 usbmount 我仍然可以看到/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

我在網上找到了幾個指南,其中一個提到運行 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 以下標記

另外值得一提的是,如果我刪除5GB 的數據,我就可以毫無問題地向設備寫入另一個5GB 的數據。隨後我希望能夠在設備上運行各種工具。

答案1

您的硬碟本身的某個磁區有問題且硬碟問題需要修復你嘗試重新使用它。

到目前為止您所做的只是運行檔案系統修復工具所有這些都假設他們有一個好的硬碟可以使用

如果你真的懷疑硬碟故障,(這就是看起來的樣子)你應該運行badblocks

在這種情況下,我不會在分區上運行它,而是在整個驅動器上運行它並進行破壞性測試(如果可能)。

在運行以下命令之前閱讀man badblocks

badblocks 比磁碟低階格式化高一級,比 FS 格式低一級。

我要做的是將其移動到實體機(而不是虛擬機器)並且:驅動器的設備名稱在umount /dev/usb0&&badblocks /dev/usb0 -s -v -w哪裡。usb0

如果可能的話,上面的命令將啟動磁碟機的 SMART 技術來交換壞磁區(如果 SMART 不執行任何操作,則壞區塊的輸出可以用作 的輸入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 硬碟,很難判斷是軟體/驅動程式問題,還是硬碟本身的問題,還是外部「外殼」的問題,還是 USB 線、集線器或插頭的問題…


新資訊:我可能忽略了(幾乎太長;博士;-)一個可能有趣的訊息:

USB 硬碟在我的 Windows 機器上的 VM 中的 Ubuntu 中進行了格式化

我在VM和USB(或任何對硬體的直接存取)方面沒有好運,因為一切都透過VM程式進行,這看起來像是奇怪行為的一個很大的嫌疑...

答案3

作為壞區塊的一個很好的替代方案,您可以嘗試磁碟掃描(從終端機:apt-get install diskscan)。它測量讀取扇區的延遲時間並報告壞扇區。等待時間越長,發生錯誤的可能性就越大。

相關內容