Hilfe nach SAS Controller Tausch - ZFS Pool ist nicht mehr da

BigD

New Member
Feb 20, 2026
6
0
1
Ich bin inzwischen am Verzweifeln. Nachdem der Mainboardtausch durch eine Neuinstallation Proxmox wieder zum Leben erweckte, habe ich scheinbar nicht nur mit dem Mainboard ins Klo gegriffen. Mein gebrauchter ASR 8405 verabschiedete sich so alle 3-5 Tage mit SCSI hang...? Nachdem ich wohl alle Möglichkeiten ausgeschöpft hatte, habe ich beim Verkäufer nachgefragt und der schickte mir ohne weitere Diskussion ein Ersatz. Der vorherige hatte die neuste Firmware drauf und war auch schon im HBA Modus. Ich wollte natürlich sichergehen und überprüfte die Einstellungen. Da der HBA Modus war nicht eingeschaltet und wurde von mir aktiviert.
Blauäugig wie ich bin, ist auch meiner erster Kontakt mit ZFS, habe ich natürlich keine Maßnahmen ergriffen, wie ein Pool export oder gar Backup.
Nach dem Boot mit dem getauschten Controller meckerte Proxmox beim Hochfahren, dass der Pool nicht gefunden wurde. Also steckte ich den alten Controller wieder ran.
Ab hier wurde es mysteriös. Der Controller startet erst nicht. Nach dem dritten Soft/Hard Reset leuchteten die LEDs wieder. Was mich verwunderte war, dass die Festplatten munter ratterten. D.h. der Controller muss irgendwas gemacht haben.
Aber der Neustart zeigte auch keinen Pool mehr. Der Pool bestand aus zwei identischen Platten, die gemirrored waren.
Ein zpool import zeigt mir nichts an. Ein lsblk liefert:
sdb 8:16 1 2.7T 0 disk
sdc 8:32 1 2.7T 0 disk
Wenn ich mir die zpool.cache ansehe sehe ich die ID des Laufwerks, welches aber am Ende eine scsi-35000cca05844c8d0-part1 hat. Die hat sie jetzt nicht mehr.
Unter /dev/disk/by-id/ ist nur ein scsi-35000cca05844c8d0 als Laufwerk vorhanden.
Es ist glücklicherweise nichts lebenswichtiges drauf, aber die Rekonstruktion kann mehere Tage dauern. Wäre schön, wenn doch noch jemand einen Tipp hätte.
 
Last edited:
Der neue Controller (im IT/HBA-Modus) hat vermutlich die Partitionstabelle auf den Platten verändert oder gelöscht – manche Controller im IR-Modus schreiben Metadaten auf die Platten. Das erklärt warum part1 verschwunden ist.
Schau dir die Platten genauer an:

Code:
fdisk -l /dev/sdb
fdisk -l /dev/sdc

Siehst du noch Partitionen, oder sind die Platten "raw"?

Code:
zdb -l /dev/sdb
zdb -l /dev/sdc

Wenn ZFS-Metadaten noch vorhanden sind, siehst du hier den Pool-Namen und die GUID. ZFS schreibt seine Labels an den Anfang und ans Ende jeder Disk. Auch ohne Partitionstabelle kann man oft direkt importieren:

Code:
zpool import -d /dev/sdb

Wenn zdb -l /dev/sdb ZFS-Labels zeigt aber keine Partition existiert, kannst du die Partition neu erstellen ohne die Daten zu überschreiben:

Code:
sgdisk -n 1:0:0 -t 1:BF01 /dev/sdb

Danach nochmal zpool import versuchen.
 
  • Like
Reactions: BigD and UdoB
Der neue Controller (im IT/HBA-Modus) hat vermutlich die Partitionstabelle auf den Platten verändert oder gelöscht – manche Controller im IR-Modus schreiben Metadaten auf die Platten. Das erklärt warum part1 verschwunden ist.
Schau dir die Platten genauer an:

Code:
fdisk -l /dev/sdb
fdisk -l /dev/sdc

Siehst du noch Partitionen, oder sind die Platten "raw"?

Code:
zdb -l /dev/sdb
zdb -l /dev/sdc

Wenn ZFS-Metadaten noch vorhanden sind, siehst du hier den Pool-Namen und die GUID. ZFS schreibt seine Labels an den Anfang und ans Ende jeder Disk. Auch ohne Partitionstabelle kann man oft direkt importieren:

Code:
zpool import -d /dev/sdb

Wenn zdb -l /dev/sdb ZFS-Labels zeigt aber keine Partition existiert, kannst du die Partition neu erstellen ohne die Daten zu überschreiben:

Code:
sgdisk -n 1:0:0 -t 1:BF01 /dev/sdb

Danach nochmal zpool import versuchen.
ein fdisk liefert folgendes:
Code:
fdisk -l /dev/sdb
Disk /dev/sdb: 2.73 TiB, 3000592982016 bytes, 5860533168 sectors
Disk model: HUS72403CLAR3000
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Also "leer" für mich.
Code:
zdb -l /dev/sdb
failed to unpack label 0
failed to unpack label 1
failed to unpack label 2
failed to unpack label 3

Für sdc sieht gleich aus.

Ein Import hatte ja nicht funktioniert. Scheibt immer, dass der Pool nicht vorhanden ist.


Code:
sgdisk -n 1:0:0 -t 1:BF01 /dev/sdb
Caution: invalid main GPT header, but valid backup; regenerating main header
from backup!

Warning: Invalid CRC on main header data; loaded backup partition table.
Warning! Main and backup partition tables differ! Use the 'c' and 'e' options
on the recovery & transformation menu to examine the two tables.

Warning! Main partition table CRC mismatch! Loaded backup partition table
instead of main partition table!

Warning! One or more CRCs don't match. You should repair the disk!
Main header: ERROR
Backup header: OK
Main partition table: ERROR
Backup partition table: OK
 
Last edited:
Code:
gdisk -l /dev/sdc
GPT fdisk (gdisk) version 1.0.10

Caution: invalid main GPT header, but valid backup; regenerating main header
from backup!

Warning: Invalid CRC on main header data; loaded backup partition table.
Warning! Main and backup partition tables differ! Use the 'c' and 'e' options
on the recovery & transformation menu to examine the two tables.

Warning! Main partition table CRC mismatch! Loaded backup partition table
instead of main partition table!

Warning! One or more CRCs don't match. You should repair the disk!
Main header: ERROR
Backup header: OK
Main partition table: ERROR
Backup partition table: OK

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: damaged

Found invalid MBR and corrupt GPT. What do you want to do? (Using the
GPT MAY permit recovery of GPT data.)
 1 - Use current GPT
 2 - Create blank GPT

Mit "1" geantwortet kommt dann:
Code:
Disk /dev/sdc: 5860533168 sectors, 2.7 TiB
Model: HUS72403CLAR3000
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 82F0011A-75EA-3545-87D4-58D428D3D9A5
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 5860533134
Partitions will be aligned on 2048-sector boundaries
Total free space is 2925 sectors (1.4 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048      5860515839   2.7 TiB     BF01  zfs-118eed0bb2f543af
   9      5860515840      5860532223   8.0 MiB     BF07
 
Last edited:
Was liefert denn:

ls -l /dev/disk/by-id/

Und die direkte Abfrage via:

zdb -l /dev/sdb
zdb -l /dev/sdc
 
Nachdem ich nun gdisk /dev/sdBC mit "1" und schreiben der aktuellen Partitionstabelle durchgeführt hatte war der Pool nach einem Reboot wieder da.
VIELDN DANK @psalkiewicz

Wie ist nun das beste Vorgehen, den Controller zu tauschen. Es ist das gleiche Modell und es sollte nun ja auch schon im HBA Mode sein.
über ein zpool export und wieder import?
 
Last edited:
Wie ist nun das beste Vorgehen, den Controller zu tauschen. Es ist das gleiche Modell und es sollte nun ja auch schon im HBA Mode sein.
über ein zpool export und wieder import?
Erstmal Glückwunsch zum Erfolg.
Der schmerzloseste Weg ist ein passendes Backup. Dann installiert und richtet man einen PVE mit passendem Dateisystem ein und spielt die Backups regulär zurück.
Ein "unterjubeln" von Daten unterhalb des PVE-Horizonts ist immer diffiziler, als das Rückspielen von Sicherungen. Das gilt besonders für einen "Neuling" im betreffenden Dateisystem.
Sofern es sich nicht um CERN-Datenmengen handelt, bringt es auch nur etwas, wenn man selbige Backups nicht hat.