Przejdź do treści
Linux: rsync przerywa kopiowanie dużych plików
Linux Błąd

Linux: rsync przerywa kopiowanie dużych plików

Rsync przerywa transfer dużych plików — najczęstsze rozwiązanie to sprawdzenie systemu plików docelowego (np. FAT32), poprawa zasilania/łączności USB oraz użycie opcji rsync --partial --inplace i ustawienie większych timeoutów USB oraz --bwlimit/--timeout. W instrukcji są polecenia diagnostyczne i kroki naprawcze.

Najpierw sprawdź — co zrobić teraz

Jeżeli rsync przerywa kopiowanie dużych plików lub pojawia się błąd I/O podczas zapisu na dysku USB, natychmiast przerwij kolejny pełny transfer i wykonaj poniższe kroki diagnostyczne. Pierwszy krok to sprawdzenie systemu plików i zasilania dysku; te dwie przyczyny odpowiadają za większość przerwanych transferów.

Diagnostyka: podstawowe polecenia

  1. Sprawdź system plików i rozmiar maksymalny plików (FAT32 nie obsługuje >4 GB):
    • Sprawdź punkt montowania i system plików:
    lsblk -f
    mount | grep /media
    df -h /ścieżka/do/montażu
  2. Przetestuj dysk pod kątem błędów SMART (jeśli to dysk USB-SATA):
    sudo smartctl -a /dev/sdX

    Jeśli smartctl nie działa dla natywnych pendrive'ów, pomiń i przejdź do testów zapisu.

  3. Wykonaj szybki test zapisu odczytu w katalogu docelowym, aby sprawdzić stabilność USB:
  4. cd /ścieżka/do/montażu
    sync
    dd if=/dev/zero of=testfile bs=1M count=1024 oflag=direct
    sync
    rm testfile

    Jeśli dd zgłasza I/O error lub proces kończy się nagle — to wskazanie sprzętowe lub system plików.

Naprawa krok po kroku

  1. Jeżeli system plików to FAT32 i plik >4 GB: sformatuj lub użyj innego systemu plików.
    • Jeśli możesz, sformatuj docelowy dysk na ext4 (usuwa dane):
    sudo umount /dev/sdX1
    sudo mkfs.ext4 -L DATA /dev/sdX1
    sudo mount /dev/sdX1 /mnt/usb
  2. Jeśli nie chcesz formatować, użyj archiwizacji z dzieleniem pliku (split) przed transferem:
  3. split -b 2000M duzy_plik.bin duzy_plik.part.
    rsync -av --progress duzy_plik.part.* /mnt/usb/
    cat /mnt/usb/duzy_plik.part.* > /mnt/usb/duzy_plik.bin
  4. Użyj opcji rsync, które zmniejszają ryzyko utraty pliku podczas przerwania:
    • --partial: zostawia częściowo skopiowane pliki, --inplace: zapisuje bez tworzenia tymczasowego pliku
    rsync -av --progress --partial --inplace --timeout=300 /sciezka/zrodlowa/ /mnt/usb/

    --timeout ustawia limit I/O; dostosuj w razie potrzeby (wartości w sekundach).

  5. Jeśli problem wydaje się związany z USB (timeouty, reset portu):
    • Podłącz dysk do innego portu lub innego komputera.
    • Jeśli to hub USB, omijaj hub i podłącz bezpośrednio do portu w obudowie.
    • Sprawdź zasilanie: dyski 2,5" często potrzebują dwa kable USB lub zewnętrznego zasilacza.
  6. Jeśli podejrzewasz problemy z cache zapisu na Linuxie, zamontuj z opcją sync lub wyczyść cache po kopiowaniu:
    sudo umount /mnt/usb
    sudo mount -o sync /dev/sdX1 /mnt/usb
    # lub po rsync
    sync
    sudo eject /dev/sdX

    Mount z sync obniża wydajność, ale zmniejsza ryzyko utraty danych przy odłączeniu.

Jak sprawdzić, czy zadziałało

  • Powtórz test dd z sekcji diagnostycznej — brak I/O errors.
  • Uruchom rsync z opcją --progress i porównaj sumy kontrolne plików:
rsync -av --progress --partial --inplace /sciezka/zrodlowa/ /mnt/usb/
# porównanie
md5sum /sciezka/zrodlowa/plik && md5sum /mnt/usb/plik

Kiedy przerwać i skontaktować się ze wsparciem

  • SMART raport pokazuje reallocated sectors, read/write errors lub wyraźne komunikaty o degradacji — wymień dysk.
  • Jeśli problem występuje na różnych komputerach i portach, a pliki ciągle kończą się błędem I/O — reklamacja/wymiana sprzętu.
  • Jeśli używasz sprzętu firmowego z gwarancją, zgłoś logi dd, smartctl i output rsync do wsparcia.