Kort svar: Förbereder säkerhetskopiering är Time Machine som räknar ut vad som har ändrats sedan förra gången. Oftast kan den läsa det från en ändringslogg som systemet för. När den loggen inte går att använda går den i stället igenom varje fil på disken, och det är skillnaden mellan fyrtio sekunder och fyra timmar.
Kommandot i nästa avsnitt visar vilket av de två som händer, så att du kan sluta gissa.
Innan den kopierar en enda byte måste Time Machine bestämma vad som ska kopieras. macOS för en löpande logg över ändringar i filsystemet som kallas FSEvents, och i det bra fallet frågar Time Machine loggen efter allt som har ändrats sedan den senaste säkerhetskopieringen, vilket tar sekunder även på en full disk.
I det dåliga fallet kan loggen inte svara. Då faller Time Machine tillbaka på en djupskanning, vilket betyder att varje fil i källan jämförs med den senaste säkerhetskopian, en i taget. På en Mac med en miljon filer, de flesta pyttesmå, är det timmar av arbete innan något kopieras. Förloppsindikatorn säger inget om det. Den säger ”Förbereder säkerhetskopiering” i båda fallen.
Två kommandon. Inget av dem ändrar något.
tmutil status
Leta efter Percent och BytesCopied. Under en verklig förberedelsefas står båda på noll, vilket är väntat. Det du vill ha är loggen, som säger rakt ut vilken väg den tog:
log show --predicate 'subsystem == "com.apple.TimeMachine"' --last 1h --info | grep -i -E "deep|event|scan|prepar"
En rad som nämner Deep event scan eller event database is not usable är svaret. Den skannar allt. En rad om att läsa händelser och ett litet antal sökvägar betyder att ändringsloggen fungerade och att något annat är långsamt.
För att i stället följa den live, och avsluta med Kontroll-C:
log stream --predicate 'subsystem == "com.apple.TimeMachine"' --info
Utan någon tidigare säkerhetskopia att jämföra med läses hela disken. Några timmar är normalt för en full enhet över USB, och mycket längre över wifi. En uppdatering av macOS gör också ändringsloggen ogiltig, så den första säkerhetskopieringen efter en sådan är per definition en djupskanning. Anslut, låt den stå över natten och kontrollera på morgonen innan du gör något annat.
Det här är det vanliga fallet på en Mac som har varit igång ett tag. En oren avstängning, en full disk eller en reparerad volym kan alla göra FSEvents oanvändbart, och därefter är varje säkerhetskopiering en djupskanning tills något bygger om det. Säkerhetskopieringen fungerar fortfarande. Den kostar bara timmar varje gång.
En omstart bygger i många fall om loggen för startvolymen, och det är det billigaste att prova.
En avbruten säkerhetskopiering lämnar en mapp som slutar på .inProgress på målet. Time Machine försöker stämma av den innan den startar något nytt, och på ett nätverksmål kan avstämningen ta längre tid än säkerhetskopieringen skulle ha gjort. Titta på säkerhetskopieringsenheten, i Backups.backupdb på en HFS+-disk eller i volymens egen mapp på en APFS-disk.
Att radera en .inProgress-mapp slänger en oavslutad säkerhetskopia och inget annat. Varje slutförd säkerhetskopia är en separat mapp och rörs inte. Flytta den till papperskorgen från Finder, töm papperskorgen och starta en säkerhetskopiering för hand.
En djupskanning begränsas av antalet filer, inte deras storlek. En videofil på 40 GB är en jämförelse. En node_modules-katalog på 40 GB kan vara två miljoner. Xcodes DerivedData, cacheminnen för npm och yarn, Docker-avbilder, Homebrews cellar och ett Steam-bibliotek är de vanliga misstänkta, och alla kan skapas igen.
Uteslut dem i Systeminställningar, Allmänt, Time Machine, Alternativ. Det kortar både skanningen och kopieringen, och det kostar dig inget som du någonsin skulle vilja ha tillbaka.
Time Machine skriver en skivavbild till en NAS eller en delad Mac, och varje sådan filjämförelse går över nätverket. Över wifi, längst bort i huset, kan en djupgenomsökning ta ett dygn. Flytta Macen bredvid routern, eller använd Ethernet, och se om samma säkerhetskopia blir klar på en timme.
Om den aldrig blir klar alls är problemet troligare själva delningen, och verifiering är sättet att ta reda på om det som redan finns där går att läsa.
.inProgress-mappen från början. Time Machine kan stoppas säkert från objektet i menyraden eller med tmutil stopbackup.Förbereder säkerhetskopiering är en status, och det är samma status oavsett om jobbet blir klart om en minut eller aldrig. Siffran du egentligen vill ha är när den senaste fungerande säkerhetskopieringen blev klar, och Time Machine gömmer den bakom en meny som du måste öppna.
Copy Shelter visar åldern på den senaste slutförda säkerhetskopian på sin huvudskärm, och den säger till efter sju dagar utan en. Den visar också vilken fas den är i och vilken fil den arbetar med, så att ett långt jobb ser ut som ett långt jobb och ett jobb som har fastnat ser ut att ha fastnat.
Och när en säkerhetskopiering väl blir klar är det ett påstående om en kopia som ingen har kontrollerat. Copy Shelter läser tillbaka den mot hasharna den sparade, enligt schema, så att en säkerhetskopia som i tysthet har slutat gå att läsa är något du får reda på en vanlig tisdag.
Sekunder till ett par minuter när ändringsloggen fungerar, oavsett diskens storlek. Timmar när den har fallit tillbaka på en djupskanning. Loggkommandot ovan visar vilket, och det är det enda pålitliga sättet att veta.
Ja. Inget har skrivits ännu under den fasen. Stoppa den från Time Machine-objektet i menyraden, eller kör tmutil stopbackup. Att tvångsavsluta eller dra ur enheten under kopieringsfasen är det riskabla, och det är det som lämnar en .inProgress-mapp efter sig.
Bara om du utesluter något som inte går att ersätta. Cacheminnen, byggkataloger, mappar för pakethanterare och nedladdade spelbibliotek kan alla byggas upp igen från internet. Vad du ska säkerhetskopiera på en Mac går igenom listan.
Då skannar den källan och skriver inte ännu. Aktivitet på enheten börjar i kopieringsfasen. Om en timmes loggutdata inte visar något alls från TimeMachine-delsystemet kan själva processen ha låst sig, och en omstart är nästa steg.
Den har samma jobb att göra och samma två sätt att göra det, så en första körning läser allt. Skillnaden är att den säger vilken fas den är i och vad den arbetar med, och betyget på huvudskärmen räknar den senaste säkerhetskopian som blev klar, aldrig den som startade.
Relaterat: Time Machine säger att det inte finns tillräckligt med utrymme, när en säkerhetskopiering slutar köras utan att säga något och Copy Shelter och Time Machine jämförda.