Ubuntu

為什麼 fdisk -l 不顯示所有連接的驅動器?

  • August 3, 2021

我發現其他人啟動的無數執行緒無法從設備啟動,因為他們使用了錯誤的 SATA 配置。讓我向你保證,這不是我的問題。

我在一家公司的 IT 部門工作,我有需要擦除的 SSD。我已經創建了自己的 Ubuntu 機器,並帶有dcflddhdparm(即使我在物理上破壞了 HDD)。我有幾個連接到電腦的 USB 到 SATA 讀卡器,可以輕鬆交換要擦除的連接驅動器。

我們擦除的所有 SSD 最初都在 SATA AHCI 配置中進行映像。當我fdisk -l在終端中執行時,我偶爾會遇到未列出的 SSD。

我已斷開驅動器並在不同的 SATA 讀取器中嘗試它們,只是為了得到相同的結果。SSD 上的 SATA 引腳沒有損壞或彎曲。我嘗試使用該命令hdparm -I /dev/(drive)來查看驅動器的資訊以查看它是否已鎖定/凍結/等,但該命令失敗。

網際網路搜尋沒有產生關於如何解決/修復我遇到的問題或強制擦除連接的驅動器的結果,儘管系統無法辨識它。


對於可能偶然發現此問題的任何數據專家,我謙虛地提出以下兩個要求:

  1. 我很想知道為什麼某些驅動器沒有被辨識並且無法訪問。如果這可能是由於驅動器發生故障,我可以做些什麼來驗證這一點嗎?
  2. 擦除這些未被辨識的驅動器的替代方法是什麼?我需要安全地清除公司數據。能夠驗證數據已被破壞是一個加分項。

編輯: 我不想混淆任何人。我遵循美國政府的協議並使用命令

for n in 'seq 7'; do dcfldd if=/dev/urandom of=/dev/destination bs=8b conv=notrunc; done

使驅動器的數據無法恢復。同樣,問題在於/dev/sdaUbuntu,驅動器/dev/sdb - /dev/sdf是我正在擦除的 SSD。有時沒有列出任何數量的這些驅動器,因此我用來擦除它們的命令對它們沒有任何作用。使用這種性質的命令不能替代我目前用來擦除驅動器的方法。

此外,將這些驅動器直接連接到主機板上的 SATA 電纜不會使它們被任何實時啟動 USB 辨識。

fdisk是一個使用者空間工具,如果核心無法辨識設備fdisk,則無能為力。連接磁碟後,檢查dmesgjournalctl,您應該會看到類似於

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 控制器問題。

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