Zapomnij o cp. Jak wycisnąć 100% z Twoich dysków SSD przy kopiowaniu danych w Linux?

Każdy z nas to zna: musisz przerzucić kilkaset gigabajtów danych z jednego dysku na drugi. Standardowe cp -r niby działa, ale przy setkach tysięcy małych plików zaczyna „mielić”, a Ty tracisz czas, patrząc w migający kursor bez żadnej informacji o postępie.

Jeśli masz w maszynie nowoczesne dyski SSD lub NVMe, kopiowanie danych starymi metodami to marnowanie ich potencjału. Czas na narzędzie, które wyciśnie z Twojego sprzętu siódme poty: rclone.

Ten wpis pokazuje jak w sposob sprytny z 2 godzin kopiowania w mc lub innym wizualnym narzedziu w Linux zrobic 20 minut tylko przy pomocy rclone i terminala Linux (nie potrzebujesz GUI i trybu graficznego) !!!

Dlaczego rclone, a nie po prostu cp lub rsync?

Rclone kojarzy się głównie z chmurą (Google Drive, S3), ale to absolutny potwór, jeśli chodzi o operacje lokalne. W przeciwieństwie do cp, rclone:

  1. Działa wielowątkowo – kopiuje wiele plików naraz.
  2. Dzieli duże pliki – potrafi przesyłać jeden ogromny plik kilkoma strumieniami jednocześnie.
  3. Ma wbudowany „Progress Bar” – dokładnie widzisz prędkość (MB/s) i czas do końca.
  4. Weryfikuje dane – masz pewność, że suma kontrolna pliku po kopii zgadza się z oryginałem.

Konfiguracja na „Maksymalnym Speedzie”

Jeśli Twoje źródło i cel to dyski SSD, zapomnij o domyślnych ustawieniach. Musimy otworzyć „przepustnicę”. Oto komenda, która zdejmuje kagańce z Twojego procesora i pamięci RAM:

$ rclone copy /sciezka/zrodlo /sciezka/cel \
    -P \
    --transfers 32 \
    --checkers 64 \
    --multi-thread-streams 8 \
    --buffer-size 128M \
    --checksum

Co tu się dzieje pod maską?

  • --transfers 32: Zamiast kopiować pliki jeden po drugim, rclone pcha 32 pliki jednocześnie. Przy SSD to czysty zysk, bo dysk nie musi czekać na zakończenie operacji I/O jednego pliku, by zacząć kolejny.
  • --checkers 64: Rclone błyskawicznie skanuje strukturę katalogów, sprawdzając, co trzeba skopiować, a co już jest na miejscu.
  • --multi-thread-streams 8: To „killer feature” dla dużych plików (np. obrazów ISO czy baz danych). Jeden plik jest cięty na 8 kawałków i przesyłany równolegle.
  • --buffer-size 128M: Wykorzystujemy pamięć RAM jako bufor, co drastycznie przyspiesza operacje przy kopiowaniu tysięcy malutkich plików (np. folderów node_modules).
  • --checksum: Bezpieczeństwo przede wszystkim. Po zakończeniu rclone porówna sumy kontrolne, by wykluczyć błędy zapisu.

Wskazówka: Jeśli kopiujesz ogromną liczbę bardzo małych plików (np. kody źródłowe, tysiące zdjęć), procesor może stać się wąskim gardłem przy obliczaniu sum kontrolnych. Wtedy warto dodać  --ignore-checksum, aby opierać się tylko na rozmiarze i dacie modyfikacji.

W trakcie kopiowania możesz ujrzeć notyfikację tego typu „NOTICE:” wskazującą, że jeśli zależy Tobie na skopiowaniu dowiązań symbolicznych musisz dodać parametr -L do rclone.

Kiedy warto zwolnić?

Pamiętaj, że powyższe ustawienia są agresywne. Jeśli podczas kopiowania planujesz pracować na komputerze, --transfers 32 może spowodować, że system będzie mniej responsywny. Wtedy zmniejsz tę wartość do 8 lub 16.

Podsumowanie

Jeśli Twoim priorytetem jest czas, rclone na Linuksie nie ma sobie równych. Wykorzystując wielowątkowość i bufory w RAM-ie, zmieniasz żmudne czekanie w błyskawiczny proces. Twoje dyski SSD w końcu dostaną zadanie, przy którym będą mogły pokazać pełnię mocy.

About the author

Autor "BIELI" to zapalony entuzjasta otwartego oprogramowania, który dzieli się swoją pasją na blogu poznajlinuxa.pl. Jego wpisy są skarbnicą wiedzy na temat Linuxa, programowania oraz najnowszych trendów w świecie technologii. Autor "BIELI" wierzy w siłę społeczności Open Source i zawsze stara się inspirować swoich czytelników do eksplorowania i eksperymentowania z kodem.