Kiedy kopiuję zawartość jednego dysku, kopia zajmuje mniej miejsca. Czemu? [Zamknięte]

1

Próbuję skopiować zawartość jednego dysku twardego na inny dysk twardy.

Ale po zakończeniu kopiowania zajmuje mniej miejsca niż oryginalne pliki.

Dlatego nie wszystkie pliki są kopiowane.

Podejrzewam, że może tak być, ponieważ po określonej liczbie folderów pliki nie są kopiowane.

Czy to jest poprawne? A jeśli tak, jak mogę temu zapobiec?

System operacyjny: Windows 8.1 Pro


SORRY I MEANT 700 GB NIE MB !!


Próbuję teraz na Linuksie i zobaczę, czy to samo się stanie.

użytkownik138072
źródło
1
Edytuj swoje pytanie, aby podać więcej szczegółów. Na przykład na jakim systemie operacyjnym się znajdujesz, jaki powinien być oczekiwany rozmiar kopii, a także jaki ostatecznie był?
JakeGould,
Również uzyskanie liczby plików nie powinno stanowić problemu
pun
2
Możliwe, że istnieją ukryte lub systemowe pliki, do których nie masz dostępu. Czy masz ustawione atrybuty, aby mieć dostęp do nich wszystkich?
CharlieRB
inna uwaga: fragmentacja ma wpływ na rozmiar dysku. Rozmiar pliku końcowego powinien być mniejszy, jeśli przechodzisz przez ten rekord dwóch. (Zakładając, że starsza lokalizacja została podzielona).
NBN-Alex,
1
Nie zapominaj, że rozmiar klastra może również wpływać na rozmiar dysku.
Tyson

Odpowiedzi:

1

Krótka odpowiedź :
niekoniecznie. Może to być tylko inny rozmiar klastra między urządzeniami.

Kilka słów więcej:
kopiując plik z urządzenia na inne (z dysku twardego na inny), należy wziąć pod uwagę nawet różne rozmiary klastra. Bez wchodzenia zbyt głęboko w zoo typu systemu plików wystarczy powiedzieć, że partycja jest zorganizowana jako arytmetyczny zeszyt ćwiczeń, bajty są pogrupowane w sektorach w podobny sposób, że w zeszycie ćwiczeń można powiedzieć, że kwadraty są zgrupowane na stronach. Indeks wolnego i zajętego miejsca (FAT) jest tworzony z uwzględnieniem tylko tych grup . Sektory mogą być wolne lub pełne, tert non datur .

Plik ma więc rozmiar użytych bajtów efektywnych (jeśli jest to plik tekstowy i zawiera tylko słowo „ Cześć ”, będzie to 2 bajty), a rozmiar miejsca używanego na urządzeniu (jeśli sektor ma wielkość 4 kB, będzie być wielokrotnością 4kB, jeśli na innym urządzeniu sektor ma 512 bajtów, będzie wielokrotnością 512B).

Z drugiej strony możliwe jest, że podczas kopiowania dużej liczby plików możesz mieć błędy w pisaniu lub czytaniu operacji, możesz nie mieć prawa dostępu do niektórych plików lub niektóre pliki można w międzyczasie usunąć, jeśli operacja jest długa i plik jest tymczasowy.

Jest to zwykle powiadamiane przez program, którego używasz, z pewnym komunikatem o błędzie i kodem wyjścia błędu. Na przykład w Linuksie można złapać kod wyjścia, pisząc w powłoce echo $?. Jeśli zwraca wartość inną niż 0, oznacza to błąd. Jeśli nie złapałeś tych wiadomości z góry, musisz to sprawdzić a posteriori .

Następnie skopiowano dużą liczbę plików, które można szybko sprawdzić , czy liczba plików i łączna liczba bajtów efektywnych są takie same. Bardziej efektywne sprawdzenie można wykonać, obliczając i porównując sumę md5 dla każdego pliku na obu kopiach. Jeśli to pasuje, cała zawartość jest w porządku. Przynajmniej możesz chcieć sprawdzić pozwolenie i datę.

Często można polegać na określonych narzędziach, takich jak rsyncLinux, robocopyWindows lub jedno z wielu innych dostępnych narzędzi.

Hastur
źródło
Ciekawy. Wiele z nich przeszło mi przez głowę w pierwszym czytaniu. Szczerze mówiąc, nigdy nie spodziewałem się, że systemy plików i „rozmiar jednostki alokacji” (zakładam, że o to ci chodziło?) Wpłynie na to, ile miejsca zajmuje plik na urządzeniu pamięci masowej! Wielkie dzięki!
user138072,
Nie ma za co. Nie mogę stąd stwierdzić, czy to jest przyczyna, ale polegam na tych krokach, aby ustalić, czy tak jest. BTW Nie miałem więcej czasu na napisanie tego prostszego.
Hastur