Mount

無法安裝外部 USB 驅動器

  • October 28, 2014

我在 Debian Jessie 上,我有一個帶有 NTFS 的外部 USB 驅動器。我將它插入我的樹莓派,然後它自發地重新啟動(對於我正在使用的適配器來說,功耗可能太高了)。從那以後,我再也無法訪問我的 USB 驅動器了。我試圖在我的普通電腦上修復它

sudo ntfsfix /dev/sdb1

但它只會告訴我

Volume is corrupt. You should run chkdsk.

我拿到了一台 Windows 電腦,但它也無法檢測到驅動器。這裡有一些更多資訊:

$ ll /dev/sd*
> brw-rw---- 1 root disk 8,  0 Oct 28 12:07 /dev/sda
> brw-rw---- 1 root disk 8,  1 Oct 28 12:07 /dev/sda1
> brw-rw---- 1 root disk 8,  2 Oct 28 12:07 /dev/sda2
> brw-rw---- 1 root disk 8,  5 Oct 28 12:07 /dev/sda5
> brw-rw---- 1 root disk 8, 16 Oct 28 12:16 /dev/sdb
> brw-rw---- 1 root disk 8, 18 Oct 28 12:16 /dev/sdb2
> brw-rw---- 1 root disk 8, 19 Oct 28 12:16 /dev/sdb3

$ sudo fdisk -l
> Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 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
> Disklabel type: dos
> Disk identifier: 0x0007f3b4
> 
> Device     Boot     Start       End   Sectors   Size Id Type
> /dev/sda1  *         2048 472016895 472014848 225.1G 83 Linux
> /dev/sda2       472018942 488396799  16377858   7.8G  5 Extended
> /dev/sda5       472018944 488396799  16377856   7.8G 82 Linux swap / Solaris

> Disk /dev/sdb: 1.8 TiB, 2000365289472 bytes, 3906963456 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
> Disklabel type: dos
> Disk identifier: 0x6e697373
> 
> Device     Boot      Start        End    Sectors   Size Id Type
> /dev/sdb1  ?    1936269394 3772285809 1836016416 875.5G 4f QNX4.x 3rd part
> /dev/sdb2  ?    1917848077 2462285169  544437093 259.6G 73 unknown
> /dev/sdb3  ?    1818575915 2362751050  544175136 259.5G 2b unknown
> /dev/sdb4  ?    2844524554 2844579527      54974  26.9M 61 SpeedStor
> 
> Partition table entries are not in disk order.

$ cat /etc/fstab 
> # /etc/fstab: static file system information.
> #
> # Use 'blkid' to print the universally unique identifier for a
> # device; this may be used with UUID= as a more robust way to name devices
> # that works even if disks are added and removed. See fstab(5).
> #
> # <file system> <mount point>   <type>  <options>       <dump>  <pass>
> # / was on /dev/sda1 during installation
> UUID=4b0d4c23-d659-4d16-9396-b895c4964b12 /               ext4    errors=remount-ro 0       1
> # swap was on /dev/sda5 during installation
> UUID=2cc71c90-2d55-4f49-bdb0-b25166d77014 none            swap    sw              0       0
> /dev/sdb1       /media/usb0     auto    rw,user,noauto  0       0

分區應該是/dev/sdb1,但如您所見,它不在/dev. 另外,我不明白為什麼fdisk說它的類型是QNX4.x 3rd part. 有什麼幫助我至少可以檢索磁碟上的文件嗎?

從命令可以看出fdisk,分區表全亂了。這可能是因為驅動器上的電源在它試圖訪問它時被切斷了。我安裝了testdisk,然後執行

sudo testdisk /dev/sdb

經過快速分析,該磁碟被正確辨識為只有一個分區的 ntfs 磁碟,而不是fdisk. 重寫分區表並testdisk修復問題。我現在可以訪問所有文件,就好像什麼都沒發生過一樣。

來源:https ://linuxacademy.com/blog/linux/ntfs-partition-repair-and-recovery-in-linux/

如果您能夠從磁碟讀取原始數據,則可以使用dd創建磁碟的複製(或者dd_rescue,如果dd失敗)。然後,您可以使用類似的文件雕刻foremost器(對我而言,它在格式化和損壞的分區上都產生了良好的效果)。

要使用foremost,您應該至少有 2.5 倍的分區大小來恢復為可用空間(您需要用於分區映像的空間和用於雕刻文件的空間)。

特別是如果您處理損壞的設備,則必須創建它的映像以進行處理(通過意外覆蓋設備來防止數據失去,並最大限度地減少由於設備故障導致的數據失去)。

文件雕刻器的缺點是您可能需要手動重建文件,或者您需要使用替代數據(例如,您無法重建的 JFIF 圖像的預覽)。

特別是對於 NTFS,您還可以嘗試像Stellar Phoenix NTFS 數據恢復這樣的工具(我沒有測試或使用過)。

引用自:https://unix.stackexchange.com/questions/164585