Dialog kopiowania został zablokowany na 0 sekund ...
Ilekroć próbuję skopiować duże pliki na mój pendrive USB (w dowolnym formacie), zawsze zatrzymuje się w ostatniej chwili. Kończy się po długim czasie .
Szukałem Zapytaj Ubuntu o podobne posty i dostałem wiele , ale żadne z nich nie ma dobrych rozwiązań.
Więc ... Czy jest jakieś alternatywne narzędzie do kopiowania, takie jak Teracopy w systemie Windows?
Czy są jakieś poprawki, które mogę zrobić?
Odpowiedzi:
Nie powinieneś się tym zbytnio przejmować.
Może twój pendrive USB ma „niższą jakość”.
Dane wyjściowe okna dialogowego dotyczące czasu są mylące.
Inne narzędzia do kopiowania mogą mieć inne zachowanie wyjściowe,
ale nie poprawiają prędkości zapisu na dysku USB.
Najważniejsze jest to, że w końcu akcja kopiowania się powiedzie.
Możesz zoptymalizować harmonogramy wejścia / wyjścia dysków.
Zainstaluj
gksu
(jeśli jeszcze tego nie zrobiłeś), aby edytować plikigedit
jako root:Teraz zoptymalizuj priorytet wszystkich uruchomionych procesów dla różnych typów dysków:
Wklej następujące wiersze do tego pustego pliku i zapisz plik później:
Wprowadzone zmiany obowiązują po ponownym uruchomieniu systemu operacyjnego.
Ponadto ... alternatywne rozwiązanie kopiowania jest dostępne w repozytoriach Ubuntu:
Teraz uruchom narzędzie z terminala, aby porównać lub skopiować pliki i foldery:
dirdiff
jest GUI dladiff
i może obsługiwać maksymalnie 5 drzew. Wyświetla okno główne z listą plików różniących się między drzewami, z kolorowymi kwadratami wskazującymi względny wiek wersji. Menu pozwala wyświetlić różnice między dowolnymi dwoma wersjami w innym oknie. Kolejne menu pozwala kopiować pliki i foldery z jednego drzewa do drugiego.Podsumowanie: Najważniejsza jest jakość dysku USB i jego szybkość zapisu!
źródło
Powodem, dla którego kopiowanie odbywa się tak, jak robisz, jest to, że zapis na dysk USB jest asynchroniczny .
Podczas kopiowania pliku jest on faktycznie kopiowany do bufora napędu USB, który znajduje się w pamięci RAM komputera. Pierwsza część kopii jest bardzo szybka, ponieważ właśnie trafia do bufora. Dane są usuwanez bufora na dysk USB w znacznie wolniejszym tempie. Po zapełnieniu bufora musi poczekać, aż niektóre dane zostaną opróżnione na dysk, zanim będzie mógł umieścić je w buforze, więc kopia następnie zwalnia, skutecznie do prędkości napędu USB. Po umieszczeniu całego pliku w buforze wydaje się, że plik został skopiowany. Jednak nie wszystkie dane zostały usunięte z bufora na sam dysk USB. Niektóre programy do kopiowania po prostu powracają i pozwalają na kontynuowanie czyszczenia w tle. Niektórzy zaczekają, aż wszystkie dane zostaną usunięte, dlatego pozostanie na 100% przez jakiś czas.
Możesz przełączyć dysk w tryb synchroniczny, co oznacza, że wszystkie dane są natychmiast zapisywane na dysku USB bez użycia bufora. Sprawi to wrażenie płynniejszego transferu danych, ale może faktycznie skończyć się ogólnym zmniejszeniem prędkości.
Jeśli ręcznie zamontujesz dysk z wiersza poleceń, możesz dodać
-o sync
.Jeśli montujesz go za pomocą fstab, możesz dodać
sync
opcję.Jeśli polegasz na montowaniu go przez Ubuntu podczas uzyskiwania do niego dostępu w GUI, możesz zmodyfikować opcje montowania z wiersza poleceń po zamontowaniu:
źródło
Problem prawdopodobnie polega na tym, że plik zostanie w całości odczytany i zapisany w pamięci, zanim zostanie całkowicie zapisany na dysku docelowym.
Nie oznacza to dokładnej odpowiedzi na pytanie, ale
pv
w przypadku dużych plików można użyć obejścia z wiersza polecenia:Ilekroć trzeba skopiować duży plik:
Należy zauważyć, że cierpi to na podobny niepożądany problem buforowania, gdy jest używany w rurze; w takim przypadku poprawka ogranicza szybkość transferu do czegoś nieco powyżej prędkości zapisu dysku docelowego:
źródło
Istnieje wiele alternatyw. Możesz użyć metody wiersza poleceń:
cp *source* *target*
gdzie źródłem jest plik, który chcesz skopiować, a docelowy to plik lub folder, do którego chcesz skopiować. Dalsze opcje można znaleźć na https://softwarerecs.stackexchange.com/
źródło
Odczyta to z twojego
if
pliku i zapisze doof
pliku we fragmentach 64MiB i zaczeka na zapisanie każdego fragmentu przed rozpoczęciem następnego. Narzędzie, którego używasz, najprawdopodobniej po prostu odczytuje plik do pamięci, a następnie wysyła go na dysk (i nie wiadomo, ile bajtów jednocześnie robi). Buforowanie zapisu może odbywać się jednak w samym kluczu USB… Tak więc 60 MB na sekundę, jaką otrzymujesz, to szybkość przesyłania danych przez połączenie USB z wewnętrzną pamięcią podręczną klucza. Ale nie jest to prawdopodobne, chyba że jest to klucz USB3. USB2 nie ma wystarczającej przepustowości, aby obsłużyć 60 Mb na sekundę.źródło
Nie ma takiej potrzeby. Po prostu otwórz okno terminala, gdy transfer pokazuje 0% po lewej i wpisz
sync
Ze stron podręcznika polecenie synchronizacji opróżnia bufory systemu plików, ale oczywiście opróżnia tylko te, do których masz prawa. Jeśli chcesz je spłukać, wpisz wszystkiesudo sync
źródło