Kann nicht rsync: Schreiben fehlgeschlagen - Kein Platz mehr auf dem Gerät (28)

7

Ich habe in den letzten Stunden erfolglos versucht, mein "/" zu speichern :(

Ich bin in einem Testzweig von Debian und möchte mein System jedes Mal vor dem Update speichern. Die Sicherung würde auf dem zweiten Laufwerk erfolgen, bei dem es sich um ein bootfähiges Win7 handelt.

sudo rsync -aAXv --inplace --info=progress2 --no-whole-file --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/home/*} / "/media/sessionR/Disque Dur 1/System_save_sauvegarde_25.03.2017/" > save.txt 

Der gleiche Befehl unten (nicht sicher über die beste Lesbarkeit)

sudo rsync -aAXv --inplace --info=progress2 --no-whole-file --exclude={"/dev/\*","/proc/\*","/sys/\*","/tmp/\*","/run/\*","/mnt/\*","/media/\*","/lost+found","/home/\*} / "/media/sessionR/Disque Dur 1/System_save_sauvegarde_25.03.2017/" > save.txt 
  • Die Quelle "/" befindet sich auf meiner internen Laptop-Sata-Festplatte.

  • Ziel "/ media / sessionR / Disque Dur 1 / System_save_sauvegarde_25.03.2017 /" ist der Mount-Punkt für "/ dev / sdb2", eine zweite interne SATA-Festplatte, die das DVD-Laufwerk ersetzt.

Nachdem einige Dateien kopiert wurden, wird bei Tonnen von Dateien der Fehler angezeigt: Auf dem Gerät ist kein Speicherplatz mehr vorhanden (28):

rsync: recv_generator: mkdir "/media/sessionR/Disque Dur 1/System_save_sauvegarde_25.03.2017/var/tmp" failed: No space left on device (28)
*** Skipping any contents from this failed directory ***

Und das Endergebnis unten ist wie 2 GB anstelle der ± 11 GB, die durch den Trockenlauf angekündigt wurden:

sent 2,554,663,982 bytes  received 1,188,942 bytes  17,446,095.04 bytes/sec
total size is 11,825,525,653  speedup is 4.63
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1196) [sender=3.1.2]

Ich verstehe es nicht; Ich habe viel Platz:

df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.9G     0  1.9G   0% /dev
tmpfs           376M   21M  356M   6% /run
/dev/sda1        18G   12G  5.3G  69% /
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda5       2.7G 1008M  1.6G  39% /var
/dev/sda8       120G   91G   24G  80% /home
/dev/sda7       360M   32M  306M  10% /tmp
tmpfs           376M   24K  376M   1% /run/user/1000
/dev/sdb2       287G  240G   47G  84% /media/sessionR/Disque Dur 1

Könnte es etwas über das Dateisystem sein? (Verstecktes NTFS WinRE + HPFS / NTFS / exFAT)

findmnt /dev/sdb2

TARGET SOURCE FSTYPE OPTIONS

/media/sessionR/Disque Dur 1 /dev/sdb2 fuseblk rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permis‌​sions,allow_other,bl‌​ksize=4096

sudo fdisk -l
[sudo] password for sessionR: 
Disk /dev/sda: 149.1 GiB, 160041885696 bytes, 312581808 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x5def152b

Device     Boot    Start       End   Sectors   Size Id Type
/dev/sda1  *        2048  38057983  38055936  18.2G 83 Linux
/dev/sda2       38057984 312581807 274523824 130.9G  5 Extended
/dev/sda5       38060032  43917311   5857280   2.8G 83 Linux
/dev/sda6       43919360  56475647  12556288     6G 82 Linux swap / Solaris
/dev/sda7       56477696  57255935    778240   380M 83 Linux
/dev/sda8       57257984 312580095 255322112 121.8G 83 Linux


Disk /dev/sdb: 298.1 GiB, 320072933376 bytes, 625142448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf571c4f5

Device     Boot    Start       End   Sectors   Size Id Type
/dev/sdb1             63  25173854  25173792    12G 27 Hidden NTFS WinRE
/dev/sdb2  *    25174016 625139703 599965688 286.1G  7 HPFS/NTFS/exFAT

Anscheinend sind es keine Inodes:

df -ih
Filesystem     Inodes IUsed IFree IUse% Mounted on
udev             467K   471  466K    1% /dev
tmpfs            470K   772  469K    1% /run
/dev/sda1        1.2M  441K  712K   39% /
tmpfs            470K     1  470K    1% /dev/shm
tmpfs            470K     6  470K    1% /run/lock
tmpfs            470K    15  470K    1% /sys/fs/cgroup
/dev/sda5        179K   17K  162K   10% /var
/dev/sda7         96K    26   96K    1% /tmp
/dev/sda8        7.7M   50K  7.6M    1% /home
tmpfs            470K    21  470K    1% /run/user/1000
/dev/sdb2         47M  271K   47M    1% /media/sessionR/Disque Dur 1

Was würden Sie tun?

Immer noch kein Glück. Tatsächlich kann ich nichts mehr auf die zweite Festplatte (Ziel) kopieren, es wird immer angezeigt, dass sie voll ist.

Anscheinend war das Vorhandensein von Dateisystemdateien das, was beim Kopieren / Einfügen Chaos angerichtet hat, was ein echtes Problem ist, da es genau das ist, was ich zu speichern versuche!

SessionR
quelle
1
Da fragst du: Ich würde dump/ restoreanstelle von verwenden rsync.
Satō Katsura
Ich habe noch nie von dump/ gehört restore, ich werde es mir ansehen, wenn ich es wirklich nicht herausfinden rsynckann. Ich denke, es werden keine Berechtigungen beibehalten? Das war mein beabsichtigtes Ziel. Ich möchte mein System jedes Mal speichern, bevor ich es aktualisiere, damit ich es bei Problemen wiederherstellen kann (ich bin im
Testzweig
1
@terdon Ich hatte den Eindruck, dass -a : Archive modeBerechtigungen erhalten bleiben würden. -a : The files are transferred in "archive" mode, which ensures that symbolic links, devices, attributes, permissions, ownerships etc are preserved in the transfer. Ich habe gelesen, dass man a verwenden könnte .tar, um Berechtigungen für NTFS beizubehalten, aber ich weiß nicht, ob dies der -aFall ist.
SessionR
1
Ich weiß nicht viel darüber, aber AFAIK, NTFS-Berechtigungen sind ihre eigene Sache und es ist möglich, aber komplex, sie dazu zu bringen, mit Linux-Dateisystemen gut zu spielen. Schauen Sie hier . Die Idee dabei tarist, dass die Berechtigungen im Tarball gespeichert werden und wiederhergestellt werden können, wenn Sie sie in einem Dateisystem extrahieren, das Berechtigungen ausführen kann. Aber ich würde nicht erwarten, dass dies mit nur einem so funktioniert, wie Sie es möchten rsync.
Terdon
1
Also ... NTFS unterstützt erweiterte Attribute, was bedeutet, dass Sie Besitztümer, Berechtigungen usw. mit speichern -M--fake-super(und mit wiederherstellen --fake-super -M--super) können. Ich denke, dies beantwortet @ terdons Kommentar zu Berechtigungen.
Roaima

Antworten:

5

Ihre externe Festplatte hat nur noch 47G. Ihre /homePartition wiegt 91G.

Die heutigen Linux-Distributionen bieten Verschlüsselung und es ist nicht ungewöhnlich, dass es ein verstecktes Verzeichnis gibt /home/.ecryptfs, das tatsächlich alle Dateien enthält. Ihre Ausschlussregel /home/*würde dieses Verzeichnis nicht ausschließen.

Wenn Sie auch versteckte Verzeichnisse ausschließen möchten, schließen Sie das Ganze aus /home, nicht /home/*. Übrigens, denken Sie an die --one-file-systemOption, ich finde es fehleranfällig zu speichern, /während eine lange Liste von Verzeichnissen ausgeschlossen wird.

xhienne
quelle
Wenn der Trockenlauf ankündigt, sent 2,554,663,982 bytes received 1,188,942 bytes 17,446,095.04 bytes/sec total size is 11,825,525,653heißt das nicht, dass nur 11 GB übertragen werden? Ich verwende keine Verschlüsselung und habe die --exclude={...so angepasst , dass .cachesie nicht vorhanden sein sollte. Ich werde es untersuchen.
SessionR
$HOME/.cachewäre schon aufgrund der --exclude=/home/*Regel ausgeschlossen. Ich dachte, dass das Verschlüsselungsverzeichnis auch unter $HOMEBIC (E) BW lebt , da ich selbst Verschlüsselung auf Festplattenebene verwende.
Roaima
@ xhienne d'oh! Ja, natürlich würde es. Egal, ich war dumm.
Terdon
1
@SessionR Nun, Sie scheinen recht zu haben. Insgesamt sind 11 GB vorhanden, und selbst wenn veraltete Dateien am Ende des rsync-Prozesses gelöscht werden, ist auf Ihrer externen Festplatte genügend Speicherplatz vorhanden. Ich habe keine Ahnung. NTFS-Quoten vielleicht? Sie sollten Ihre Festplatte wirklich wirklich auf ext4 umformatieren.
Xhienne
@xhienne, -xist --one-file-system. Ich habe allerdings ein Kapital verwendet, -Xalso muss ich nur mit dem Stammgast testen -x. Ich glaube nicht, dass das mein Problem verursacht, aber ich werde es testen. Ich sollte ja neu formatieren, aber das ist ein perfekt bootfähiges Win7-Laufwerk, auf das ich doppelt booten kann ...
SessionR
3

Manchmal, wenn ich nur auf das Root-Dateisystem zugreifen möchte , verwende ich den Trick:

mkdir /bind
mount -o bind / /bind
cd /bind

Jetzt kann ich das Root-Dateisystem ohne Submounts sehen. Wenn ich mache:

cp -a . /some/other/volume

oder

rsync -tral . /some/other/volume/

Dann werden keine Volumes aufgenommen, die auf meinem Root-Dateisystem gemountet sind.

Gregor
quelle