2016-03-24 2 views
0

Ich versuche auf den Superblock zugreifen in der Eröffnung und Einlesen eines ext2-Dateisystems aus einer VDI-Datei. Ich möchte die Struktur ext2_super_block verwenden, die in der Datei ext2.h vorhanden ist (siehe Zeile 415 von http://lxr.free-electrons.com/source/fs/ext2/ext2.h). Ich möchte nur #include <ext2.h>, aber da meine aktuelle Unix-Betriebssystem ist ext3/ext4 die Header-Datei ist nicht in meinem System, noch ist eine der Dateien, die ext2.h enthalten muss.Zugriff auf Superblock in VDI, ext2

Wie kann ich diese Datei aufnehmen, erhalten diese Struktur? Soll ich es selbst bauen (die Struktur, um den Superblock beim Einlesen zu halten)? Wenn ich es selbst baue, wie unterscheidet sich das Einlesen?

Hier ist, was ich bisher für mein System zu vervollständigen nennt dies (natürlich nicht funktionieren im Moment):

fd = open (argv[1], O_RDONLY); 
    .......check for errors in open 
lseek(fd, OFFSET, SEEK_SET); //to skip to superblock 
read (fd, &mySB, sizeof(struct ext2_superblock)); 

Antwort

0

Du bist wahrscheinlich besser dran libext2fs eher als Kernel-Header verwendet wird. Es kennt alle Strukturen, es soll im Userspace verwendet werden, und es ist auf Nicht-GNU-Nicht-Linux-Hosts portierbar.