為什麼 fdisk -l 不顯示所有連接的驅動器?
我發現其他人啟動的無數執行緒無法從設備啟動,因為他們使用了錯誤的 SATA 配置。讓我向你保證,這不是我的問題。
我在一家公司的 IT 部門工作,我有需要擦除的 SSD。我已經創建了自己的 Ubuntu 機器,並帶有
dcfldd
和hdparm
(即使我在物理上破壞了 HDD)。我有幾個連接到電腦的 USB 到 SATA 讀卡器,可以輕鬆交換要擦除的連接驅動器。我們擦除的所有 SSD 最初都在 SATA AHCI 配置中進行映像。當我
fdisk -l
在終端中執行時,我偶爾會遇到未列出的 SSD。我已斷開驅動器並在不同的 SATA 讀取器中嘗試它們,只是為了得到相同的結果。SSD 上的 SATA 引腳沒有損壞或彎曲。我嘗試使用該命令
hdparm -I /dev/(drive)
來查看驅動器的資訊以查看它是否已鎖定/凍結/等,但該命令失敗。網際網路搜尋沒有產生關於如何解決/修復我遇到的問題或強制擦除連接的驅動器的結果,儘管系統無法辨識它。
對於可能偶然發現此問題的任何數據專家,我謙虛地提出以下兩個要求:
- 我很想知道為什麼某些驅動器沒有被辨識並且無法訪問。如果這可能是由於驅動器發生故障,我可以做些什麼來驗證這一點嗎?
- 擦除這些未被辨識的驅動器的替代方法是什麼?我需要安全地清除公司數據。能夠驗證數據已被破壞是一個加分項。
編輯: 我不想混淆任何人。我遵循美國政府的協議並使用命令
for n in 'seq 7'; do dcfldd if=/dev/urandom of=/dev/destination bs=8b conv=notrunc; done
使驅動器的數據無法恢復。同樣,問題在於
/dev/sda
Ubuntu,驅動器/dev/sdb - /dev/sdf
是我正在擦除的 SSD。有時沒有列出任何數量的這些驅動器,因此我用來擦除它們的命令對它們沒有任何作用。使用這種性質的命令不能替代我目前用來擦除驅動器的方法。此外,將這些驅動器直接連接到主機板上的 SATA 電纜不會使它們被任何實時啟動 USB 辨識。
fdisk
是一個使用者空間工具,如果核心無法辨識設備fdisk
,則無能為力。連接磁碟後,檢查dmesg
或journalctl
,您應該會看到類似於kernel: scsi 3:0:0:0: Direct-Access ATA Samsung SSD 860 2B6Q PQ: 0 ANSI: 5 kernel: sd 3:0:0:0: Attached scsi generic sg0 type 0 kernel: ata4.00: Enabling discard_zeroes_data kernel: sd 3:0:0:0: [sda] 1953525168 512-byte logical blocks: (1.00 TB/932 GiB) kernel: sd 3:0:0:0: [sda] Write Protect is off kernel: sd 3:0:0:0: [sda] Mode Sense: 00 3a 00 00 kernel: sd 3:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA kernel: sda: sda1 kernel: sd 3:0:0:0: [sda] Attached SCSI disk
並且還應該創建
/dev/sdX
節點和 sysfs 目錄。/sys/block/sdX
此時 UDev 和使用它的工具lsblk
應該能夠將其辨識為磁碟並嘗試使用它(檢查分區/文件系統等)。如果你看到類似的東西
kernel: print_req_error: I/O error, dev sda, sector 0 kernel: Buffer I/O error on dev sda, logical block 0, async page read
這通常是一個很好的跡象,表明磁碟有問題。這並不意味著它完全壞了,它仍然可能是控制器或電纜的問題,並不意味著它的數據無法恢復。
/dev/sdX
因此,如果您沒有設備節點(正確的政府程序)。您可以隨時嘗試將磁碟連接到不同的系統,或者按照@schrodigerscatcuriosity 的建議使用 USB 機箱。這至少可以消除一些電纜或主機板 SATA 控制器問題。