Linux

超級塊中的錯誤幻數

  • October 1, 2022

所以我有三個磁碟。我曾想過給卷本身貼上標籤:

$ e2label /dev/sda
d80-JD-75MS

$ e2label /dev/sdb
e2label: Bad magic number in super-block while trying to open /dev/sdb
Found a dos partition table in /dev/sdb

$ e2label /dev/sdc
e2label: Bad magic number in super-block while trying to open /dev/sdc
Found a dos partition table in /dev/sdc

…所有三個磁碟都是可引導的。fdisk 沒有報告任何錯誤。但是通常的 ext4 實用程序都報告相同的事情或非常接近:

"Couldn't find a valid filesystem superblock
Found a dos partition table in ..."

/dev/sdb 是 Debian 11 all kosher 的全新安裝,但不知何故 e2label 對它不滿意。除此之外,我無法檢測到任何問題,但“超級塊”問題是怎麼回事?那可以修嗎?

順便說一句,看起來很有希望的一件事是:

mkfs.ext4 -L "wipeout" /dev/sda

…添加了一個標籤好吧,但也清除了磁碟上的所有內容:(

……所以這很淘氣?”

$ e2label /dev/sda "bad bad bad"

$ lsblk /dev/sda -o name,label,fstype,mountpoint,size,model
NAME    LABEL          FSTYPE MOUNTPOINT     SIZE MODEL
sda     bad bad bad    ext4                 74.5G WDC_WD800JD-75MSA3
├─sda1  d1--5-swap     swap                    5G 
├─sda2  d2--0-boot     ext4   /media/sda/2   200M 
├─sda3  d3--6-root     ext4   /media/sda/3     6G 
├─sda4      

…該命令很高興執行,該命令是關於標記一個 FS,而不是創建一個。似乎什麼都沒有損壞。我很高興。我想知道的是為什麼我會在另外兩個磁碟上收到那些“壞幻數”消息。

標籤是文件系統的屬性,而不是磁碟的屬性。

您可以e2label用來標記extN文件系統(對於 N={ 2, 3, 4 })。對於 FAT 文件系統,您需要使用fatlabelmlabel或其他支持 FAT 的工具。

您似乎直接extN在第一個磁碟上創建了一個文件系統,/dev/sda而不是通過分區表。這通常是一個非常糟糕的主意:您應該(幾乎)總是有一個磁碟分區表。

直接在磁碟 ( /dev/sda) 上而不是分區(例如/dev/sda1)上的文件系統的問題在於,您不能將磁碟用於除該文件系統之外的任何東西。

令人擔憂的是,從您稍後顯示lsblk輸出的編輯中,您在磁碟上有其他分區。充其量您已經損壞了第一個分區表,並且磁碟正在磁碟末尾附近使用其備份。在最壞的情況下,您還覆蓋了一個或多個分區上的數據。

現在,我傾向於建議您備份此磁碟上的所有數據並重建它。備份並測試備份成功後,如果您喜歡冒險,可以嘗試重建主 GPT。似乎gdisk使用rthenc選項應該可以做到這一點*,但我沒有嘗試過*。我想我會更樂意擦除磁碟並恢復我的數據。

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