Zunächst die Situation: Ich habe einen Linux-Computer mit zwei eSATA-Laufwerkschächten, die austauschbare SSD-Laufwerke unterstützen. Ich versuche, eine kleine GUI-Anwendung zu schreiben, die es dem Benutzer erleichtert, die Laufwerke, die er in diese Einschübe legt, zu mounten / zu entmounten / zu formatieren / zu sichern / usw.
Es funktioniert meistens alles. Ein kleines Problem ist jedoch, dass ich erst nach erfolgreicher Bereitstellung der Laufwerke herausfinden kann, was sich auf den eingelegten Laufwerken befindet.
Wenn der Benutzer beispielsweise ein Laufwerk einfügt, das ich nicht bereitstellen kann (z. B. weil es nicht formatiert ist oder mit einem unerwarteten Dateisystem formatiert wurde), kann meine App nur sagen, dass das Bereitstellen des Laufwerks fehlgeschlagen ist.
Dies ist nicht sehr zufriedenstellend, da der Benutzer das Laufwerk wahrscheinlich formatieren möchte, wenn es nicht formatiert ist. Wenn das Laufwerk jedoch Daten aus einem nicht erkannten Dateisystem enthält, möchte der Benutzer es wahrscheinlich NICHT formatieren Zumindest möchte ich ihn warnen können, dass er auf diese Weise potenziell wertvolle Daten löscht.
Meine Frage lautet also: Gibt es eine Methode zum Abfragen einiger grundlegender Informationen (insbesondere des Dateisystemtyps) von einem Laufwerk, für die es nicht erforderlich ist, dass das Laufwerk bereits bereitgestellt ist? Oder muss ich nur versuchen, es mit verschiedenen bekannten Dateisystemen zu mounten, bis einer der Mount-Versuche erfolgreich war, und eine vage Meldung "Sei vorsichtig" ausgeben, wenn keiner von ihnen dies tut?
Falls es darauf ankommt, sind die Pfade, die ich verwende, um die Laufwerke in den Laufwerksschächten zu mounten:
/dev/disk/by-path/pci-0000:00:1f.2-scsi-2:0:0:0
/dev/disk/by-path/pci-0000:00:1f.2-scsi-1:0:0:0