Explorer: Absturz beheben und LVM im Gast unterstuetzen
Beim Einbinden stuerzte der Explorer mit IndexError ab. Ursache: prepare() meldete nur dann einen Fehler, wenn gar kein Geraet gefunden wurde - nicht aber, wenn zwar Geraete da waren, sich davon aber keins einhaengen liess. Der Aufrufer griff dann blind auf mountpoints[0] zu. * prepare() meldet jetzt einen Fehler, sobald kein Dateisystem eingehaengt werden konnte, und nennt dabei die gefundenen Geraete samt Dateisystem- Typ - sonst raet man beim Suchen nur. * Der Explorer prueft die Liste zusaetzlich selbst ab. Der wahrscheinlichste Grund fuer "gefunden, aber nicht mountbar" ist LVM im Gast: dahinter liegt zunaechst nur ein LVM2_member. Das wird jetzt unterstuetzt - inklusive der heiklen Stelle: heisst die Volume-Group im Gast genauso wie eine auf dem Host (typisch 'pve'), waere nicht mehr eindeutig, welche gemeint ist. Erkannt wird das an gleichem Namen bei unterschiedlicher UUID; dann wird bewusst nichts aktiviert und der Grund angezeigt. Beim Aufraeumen wird die Gruppe vor dem Aushaengen des Geraets wieder deaktiviert. Ausserdem "udevadm settle" nach dem Einbinden - die Partitionsgeraete tauchen sonst manchmal erst nach dem Scan auf. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
f37a942fea
commit
da08a81aab
@@ -858,6 +858,11 @@ def _main(stdscr, args):
|
||||
try:
|
||||
_show_notes(stdscr, session.notes)
|
||||
mountpoints = sorted(set(session.mounts.values()))
|
||||
if not mountpoints:
|
||||
_show_notes(stdscr,
|
||||
["Es wurde kein Dateisystem eingehaengt."] + session.notes,
|
||||
"Nichts zu zeigen")
|
||||
return 3
|
||||
start = mountpoints[0]
|
||||
if len(mountpoints) > 1:
|
||||
entries = [(m, m) for m in mountpoints]
|
||||
|
||||
Reference in New Issue
Block a user