//Edit: Siehe gleich unten ab dem zweiten Edit
OK, dann wechsele noch mal nach:
cd /var/abs/community/extundelete
cd src/extundelete-0.2.0
nano src/block.c
Mit ALT+g wechselst du nun zur Zeile 69
Dort siehst du C Code, in den du eine Zeile eintippen mußt. Es muß genauso aussehen wie im Bugreport von Debian (letzter Link von mir, Punkt b), also:
ext2_filsys fs;
ext2_ino_t ino;
struct ext2_inode *inode;
+ struct ext2_inode inodebuf;
int type;
int level;
int max_depth;
Die Zeile mit dem + vornedran tippst du nun genau dort ein. *OHNE* das führende Pluszeichen.
Dann abspeichern und nochmal kompilieren, allerdings ohne makepkg. Dafür ausführen:
make all
im Verzeichniss wo du grade bist. Danach das Binary am besten nach /root kopieren:
cp src/extundelete /root/
Jetzt wechsele nochmal zurück in das verzeichniss (Medium) wo die zu restorenden Datein hinsollen und starte extundelete nochmal:
/root/extundelete --restore-all /dev/sda2
Hier muß für das gepatchte Binary nun explizit der komplette Pfad vorangestellt werden, ansosten würde er ja weiterhin das "alte" ungeptachte aus den commuity-Paket verwenden.
//Edit: Ich habe das Binary gerade mal für i686 gebaut, dürfte schneller gehen ;-)
http://derbrauer.homelinux.net/tmp/extundelete-i686
Auch hier am besten nach /root legen das File und immer mit absoluter Pfadangabe aufrufen, also:
/root/extundelete-i686 --restore-all /dev/sda2
Habe das restore nochmal in der (i686)VM probeirt, funktioniert auch dort (was ein Wunder… <g>)
Dein Vorgehen:
a) Arch Bootmedium booten, Netzverbindung herstellen, cd /root
b) pacman -Sy
c) pacman -S e2fsprogs (ist glucb ich nicht absolut notwendig, aber mach mal)
d) wget http://derbrauer.homelinux.net/tmp/extundelete-i686
e) chmod +x extundelete-i686
Dann der Wechsel ins Verzeichniss wo du das restore hinhaben willst (ausreichend Platz brauchst du, da u.U. sehr viel altes wiederhergestellt wird)
/root/extundelete-i686 --restore-all /dev/sda2
//Edit3 Ja Speicherzugriffsfehler bedeutet segfault (segmention fault). Der Originalcode von extundelete spricht ein ext4 FS auf eine "alte" Art an, die auf aktuellen Systemen überholt ist. Das bereinigt die Zeile C-Code die oben in den Code eingefügt wird.
Nochmal die Hinweise (ich weiß nicht wie "fit" du mit solchen Anweisungen meinerseits bist)
a) In /mnt/restore (wo du die Files restaureren willst) hast du irgendeine Partition/externe Platte etc. eingehängt? Nur der von der Boot-CD verwendete RAM wird ggf. nicht ausreichen…
b) /dev/sda2 habe ich als Beispiel gebracht. Das iost auch bei dir die Partition mit Archlinux auf der dein /etc war, also die "Rootpartition"?
Wollte das nur nochmal ansprechen, nicht daß ich nachher wieder schuld bin ;-)