# Dringend: Tar-Probleme!

## ChrisM87

Hallo,

erstmal sorry fuer das "Dringend" im Betreff, aber hier geht es leider um eine Produktiv-Kiste, die spaetestens morgen frueh wieder laufen muss!

Ich wollte einen Rechner auf RAID1 migrieren und habe dazu das komplette Root-Dateisystem in ein tar.gz-Archiv gepackt. Bei diesem Packvorgang habe ich mit -v zugesehen und gesehen, dass er offenbar alles reingepackt hat. Das Archiv hatte dann auch eine Groesse von 29GB, was mir realistisch scheint.

Ich habe das Archiv dann auf einen anderen Rechner geschoben, den besagten Rechner mit der Gentoo-CD gebootet (in der ich jetzt auch immer noch bin), RAID eingerichtet, partitioniert etc. und das Archiv (immer noch richtige Groesse und gleiche md5sum!) zurueckkopiert.

Allerdings zeigt mir jetzt sowohl tar -tyvf als auch das Gnome-Entpackprogramm hier auf der Gentoo-LiveCD nur ein unvollstaendiges /sys im Archiv an (darin nur dm-0, md0, md1, md2 unter /sys/block/). Mit -x kommt auch nicht mehr heraus.

Woran koennte das liegen und wie komme ich an die restlichen Daten? Klar war es keine so clevere Idee, ohne --exclude zu packen, aber die koennen ja jetzt unmoeglich verloren sein, das Archiv hat ja noch wie vor 29GB!

Danke fuer eure Antworten!

ChrisM

----------

## toralf

Wird das /sys Filesystem nicht erst zur Laufzeit - analog /proc - angelegt  ?

----------

## ChrisM87

Hallo,

doch, aber ich hab halt beim Packen alles in das Archiv reingepackt und mir gedacht, dass ich spaeter nach dem Entpacken ja immer noch aufraeumen kann. Eigentlich muesste ja auch /proc usw. drin sein, aber wie gesagt, beim Entpacken mit -x kriege ich nur ein 400kb grossen Teil von /sys/ aus dem 29GB grossen Archiv.

Interessant ist, wenn ich mit -v entpacke, hat er sofort nach einer Sekunde das /sys entpackt und dann liest er noch 10 Minuten oder so von der Festplatte das restliche Archiv, aber entpackt ueberhaupt nichts mehr.

ChrisM

----------

## toralf

Was ich meine, ist, daß man das /sys gar nicht tar'en kann/muß/braucht,  da der Kernel es zur Laufzeit jedesmal _neu_ anlegt.

Ich habe mal von einer CD gebooted und ein Backup von meinem System gemacht, da ist in /sys natürlich gar nichts drin. Offensichtlich hast Du aus einem laufenden System heraus ge-tar-ed, aber da kannst du /sys getrost vergessen.

Davon abgesehen - wenn Du tar -xf tarfile <foo> aufruft, wird das gesamte Archiv gescannt, auch wenn <foo> gleich zu Beginn gefunden und ausgepackt wurde.

----------

## musv

Toralf hat recht.

Davon mal abgesehen eine kleine Backup-Grundsatzregel:

Wenn es sich vermeiden läßt, dann mach nie ein Backup vom System aus selbigem System heraus, da hieraus Inkonsistenzen entstehen können, wenn du Dateien geändert werden während das Backuptool noch am Packen ist. Das ist besonders wichtig bei Datenbanken, weswegen es dort dann spezielle Logs gibt, die alle ab dem Backup aufgetretenen Vorgänge aufzeichnen. 

Wenn es möglich ist, fahr die Kiste runter, starte Knoppix oder 'ne andere Live-CD und mach von da aus das Backup Deiner Systempartition.

Sys und Proc: Beide Verzeichnisse werden zur Laufzeit angelegt und spiegeln u.a. die Systemkonfiguration der Hardware wieder. Es hat keinen Sinn, diese Dateien abspeichern zu wollen. Was nützt es Dir z.B. die Anschlußreihenfolge der eingebauten Festplatten oder die momentane Temperatur Deiner CPU zu speichern?

----------

## Fauli

Oder anders ausgedrückt: Alles was du aus dem Archiv nach /sys ausgepackt hast, ist nach dem Booten eh nicht mehr sichtbar, da dann an dieser Stelle das sysfs gemountet ist. Der Platz im Root-Dateisystem ist aber trotzdem belegt (=verschwendet).

----------

## ChrisM87

Hallo,

ja, ihr habt natuerlich recht, dass es keinen Sinn macht /sys oder auch /dev/ (bei udev-Systemen), /proc/ usw. zu backuppen, aber ich habe nunmal aus dem laufenden Betrieb heraus ein Backup von / gezogen ohne die zu excluden und aus dem Backup moechte ich doch jetzt zumindest /home retten!

Ich habe das tar.gz-Archiv jetzt mal mit gunzip entpackt.

Dateigroesse des tar-Archivs jetzt: 37788108800 (37GiB)

Inhalt laut tar -t oder less:

 *Quote:*   

> drwxr-xr-x chris/users       0 2007-06-01 20:01 ./
> 
> drwxr-xr-x root/root         0 2007-06-01 06:49 sys/
> 
> drwxr-xr-x root/root         0 2007-06-01 06:49 sys/block/
> ...

 

Also, wo ist der Rest? Das Archiv ist wie gesagt 37GiB gross, aber tar "findet" nur die paar kleinen Dateien.

ChrisM

----------

## hoschi

Scheint mir so als unser Chris eine kleine Torschlusspanik ohne Grund bekommen hat proc, sys, dev sind rein virtuelle Dateisysteme, der Unix-Grundsatz gilt immer: alles ist eine Datei

<edit /> Zwischenposter   :Rolling Eyes: 

Hmm. Scheint so als ob was kaputt gegangen ist. Hast du es wirklich mal komplett entpackt?

Kann mir zwar vorstellen, dass sowas Probleme bereiten kann. Ich hoffe du hast nicht die alten Daten geloescht?

----------

## toralf

Also probier doch mal was in der Art:

```
tfoerste@n22 ~/devel $ tar -tvf results.tar | sort -n -k3 | tail

-rw-r--r-- tfoerste/users  88820 2007-01-15 12:29 results/make.log.222

-rw-r--r-- tfoerste/users  96542 2006-10-10 17:33 results/make.log.62

-rw-r--r-- tfoerste/users  96934 2006-10-13 10:39 results/make.log.70

-rw-r--r-- tfoerste/users  98569 2006-10-22 17:48 results/make.log.94

-rw-r--r-- tfoerste/users 101766 2006-11-29 12:30 results/make.log.142

-rw-r--r-- tfoerste/users 103121 2006-12-08 11:12 results/make.log.164

-rw-r--r-- tfoerste/users 104173 2006-10-10 14:04 results/make.log.59

-rw-r--r-- tfoerste/users 113412 2006-10-12 16:15 results/make.log.67

-rw-r--r-- tfoerste/users 133544 2006-10-26 14:45 results/make.log.101

-rw-r--r-- tfoerste/users 327101 2007-06-03 11:01 results/out.ps

```

damit Du erkennen kannst, _was_ in Deinem tar-File denn nun die 37 GB hauptsächlich einnimmt.

----------

## ChrisM87

Hallo,

danke.

Leider zeigt sich genau da das Problem:

 *Quote:*   

> gentoo@livecd /mnt/gentoo $ tar -tvf daedalus.tar | sort -n -k3 | tail 
> 
> -rw-r--r-- root/root      4096 2007-06-02 17:59 sys/block/md2/md/dev-sda2/errors
> 
> -rw-r--r-- root/root      4096 2007-06-02 17:59 sys/block/md2/md/dev-sda2/offset
> ...

 

Ich hab jetzt mal mit hexdump in das Archiv reingeschaut und da sind definitiv noch mehr Dateien drin, auch mein Homedir! Nur warum findet tar die nicht bzw. wie komm ich da ran?

ChrisM

----------

## ChrisM87

Hallo,

Problem gelöst, musste tar mit dem -i-Switch aufrufen.

ChrisM

----------

## flash49

Noch ein kleiner Tipp von mir, falls du oder jemand anderes die root Partition sauber mir tar, rsync oder ähnlichem sichern wollen:

```

#mount --bind / /mnt/root

#cd /mnt/root

#tar cjf /mnt/backup/root.tar.bz2 .

```

Das schöne hierbei ist, dass ihr ein Backup der gesammten root Partition (und nur von der!) inklusive aller durch das Mounten versteckten Dateien bekommt. 

```
# ls -la /mnt/root/proc/

insgesamt 8

drwxr-xr-x  2 root root 4096 10. Mär 2005  .

drwxr-xr-x 21 root root 4096  4. Mär 15:45 ..

-rw-r--r--  1 root root    0 10. Mär 2005  .keep
```

----------

## toralf

 *ChrisM87 wrote:*   

> Problem gelöst, musste tar mit dem -i-Switch aufrufen.

 Hhm, aber warum ?

----------

## Necoro

 *toralf wrote:*   

>  *ChrisM87 wrote:*   Problem gelöst, musste tar mit dem -i-Switch aufrufen. Hhm, aber warum ?

 

es sind wahrscheinlich Dateien in der tar, die ein "EOF" enthalten... (/dev/zero ist ein Beispiel)

----------

## ChrisM87

Hallo,

ja, sowas in der Art wird's gewesen sein (nur unter /sys/, denn dort hat er ja abgebrochen).

Warum das aber nicht breiter bekannt ist, ist mir schleierhaft, schließlich kann das ja immer mal "aus Versehen" vorkommen und der Nutzer hat ein echtes Problem...

ChrisM

----------

## sschlueter

 *ChrisM87 wrote:*   

> Warum das aber nicht breiter bekannt ist, ist mir schleierhaft, schließlich kann das ja immer mal "aus Versehen" vorkommen und der Nutzer hat ein echtes Problem...

 

Naja, das mit /dev, /proc und /sys ist ja ziemlich logisch. /dev/zero ist ja beispielsweise auch unendlich groß. Dafür gibt es ja "--one-file-system".

Das Problem mit tar ist IMHO eher, dass es als Backuptool streng genommen unbrauchbar ist, weil es diverse Dateien nicht oder nicht korrekt sichern kann. Auch das ist bekannt, wird aber nicht gefixt. Und auch wenn es sich dabei um Spezialfälle handelt, wer kann sich schon sicher sein, dass bei ihm keiner dieser Spezialfälle vorliegt? Daher Backups von ganzen Partitionen wenn möglich mit dump erstellen.

----------

## flash49

 *sschlueter wrote:*   

> 
> 
> Naja, das mit /dev, /proc und /sys ist ja ziemlich logisch. /dev/zero ist ja beispielsweise auch unendlich groß. 

 

Das stimmt zwar, aber tar sichert in diesem Fall das device file und nicht den Inhalt. Schau dir mal den stage1 Tarball von Gentoo an, da ist auch /dev/zero drin.

 *sschlueter wrote:*   

> Dafür gibt es ja "--one-file-system".
> 
> Das Problem mit tar ist IMHO eher, dass es als Backuptool streng genommen unbrauchbar ist, weil es diverse Dateien nicht oder nicht korrekt sichern kann.

 Wie willst du denn die dynamisch wachsenden Dateien in proc "korrekt" sichern? Und warum auch, die sind ja eh nicht wirklich vorhanden!

 *sschlueter wrote:*   

>  Auch das ist bekannt, wird aber nicht gefixt. Und auch wenn es sich dabei um Spezialfälle handelt, wer kann sich schon sicher sein, dass bei ihm keiner dieser Spezialfälle vorliegt? Daher Backups von ganzen Partitionen wenn möglich mit dump erstellen.

 

Tar kann alles was an Dateien, Verknüpfungen, Gerätedateien, etc. auf einer Partition liegt auch sichern, nur zusätzliche Attribute gehen nicht immer. (z.B. ACLs im Gegensatz zu den Standard Unix Rechten)

----------

## sschlueter

 *flash49 wrote:*   

> Tar kann alles was an Dateien, Verknüpfungen, Gerätedateien, etc. auf einer Partition liegt auch sichern, nur zusätzliche Attribute gehen nicht immer. (z.B. ACLs im Gegensatz zu den Standard Unix Rechten)

 

Das kann es eben nicht. Bestimmte Ausnahmefälle kann es nicht richtig behandeln. Das ist bekannt und wird anscheinend auch nicht gefixt. Mag sein, dass diese Ausnahmefälle normalerweise nicht vorkommen, aber ich finde den Gedanken unangenehm, zur Sicherung seines kompletten Systems ein Tool zu verwenden, von dem bekannt ist, dass es nicht in allen Fällen funktioniert.

Und ich fühle mich unwohl, weil ich das jetzt innerhalb von kürzester Zeit schon dreimal gesagt habe. Ich verspreche euch, euch nicht länger damit auf die Nerven zu fallen.

----------

