Time Machine đang làm gì?


18

Đôi khi OS X nói với tôi rằng đó là "Chuẩn bị sao lưu ..." trong một khoảng thời gian khổng lồ. Thời gian dường như không có mối tương quan với lượng dữ liệu được sao lưu. Tương tự cho giai đoạn "Hoàn tất sao lưu ...".

Câu hỏi: OS X đang làm gì khi "Chuẩn bị sao lưu ..." và "Hoàn tất sao lưu ..."?

Tôi biết đó là tìm ra những gì để sao lưu và sau đó ghi lại các thay đổi, nhưng chắc chắn thời gian này sẽ tỷ lệ thuận với lượng dữ liệu đã thay đổi. Có rất nhiều dung lượng đĩa trống (vì vậy tôi cho rằng nó không xóa các bản sao lưu cũ). Tôi đang sử dụng TimeCapsule nếu điều đó tạo ra sự khác biệt. Không có gì sai với nó, tôi chỉ tò mò.

Câu trả lời:


20

Đây là một câu trả lời từ một diễn đàn khác (áp phích ban đầu mà tôi không biết):

Giai đoạn "chuẩn bị" trong Time Machine thường nhanh, bởi vì Time Machine sử dụng nhật ký các hoạt động của hệ thống tệp để biết nơi tìm các thay đổi cần được sao lưu.

Nhưng có những điều bạn có thể làm để làm cho bản ghi đó không đáng tin cậy. Khi Time Machine phát hiện ra nhật ký MIGHT không hợp lệ, nó sẽ quét toàn bộ hệ thống tệp của bạn để xác định những gì thực sự cần được sao lưu. Điều này có thể mất một thời gian. Trên Powerbook của tôi (và với ổ đĩa Time Machine bên ngoài firewire), nó có thể dẫn đến giai đoạn "chuẩn bị" kéo dài 20 phút. Nếu bạn để Time Machine tiếp tục, cuối cùng nó sẽ tìm ra những gì thực sự cần được thêm vào đĩa sao lưu và sẽ tiếp tục. Tất nhiên, điều này tốt hơn là chỉ đánh bạc nhật ký là chính xác hoặc chỉ sao lưu lại MỌI THỨ mặc dù chỉ một vài tệp thực sự có thể thay đổi (sẽ mất nhiều thời gian hơn và tiêu tốn nhiều dung lượng đĩa Time Machine hơn).

Trong những ngày đầu cài đặt Leopard, một trong những điều phổ biến nhất bạn có thể làm sẽ khiến nhật ký không đáng tin cậy là khởi động từ DVD cài đặt Leopard. Mỗi lần bạn làm điều đó, lần sau khi Time Machine chạy, nó sẽ phát hiện ra rằng MIGHT ổ cứng của bạn đã được sửa đổi mà không có thay đổi nào được phản ánh trong nhật ký. Vì vậy, nó thực hiện quét toàn bộ - một giai đoạn "chuẩn bị" dài - để đảm bảo nó làm mọi thứ đúng.


Trên thực tế, nhật ký không chỉ được sử dụng bởi Time Machine. Và đó là máy Mac của bạn có thể khai báo nhật ký cũ không hợp lệ. Bạn có thể tìm kiếm Bảng điều khiển fseventsdđể xem "đăng nhập sự kiện / Tập / .. không đồng bộ với âm lượng. Phá hủy nhật ký cũ." Nhật ký mới được tạo cũng sẽ có một mã định danh mới, sẽ không còn phù hợp với id được lưu trữ với bản sao lưu. Điều này báo cho Time Machine so sánh ổ cứng của bạn với bản sao lưu cuối cùng. Nếu một người sử dụng nhiều đĩa sao lưu, thì nếu fseventsdđược tạo một bản ghi mới, thì Time Machine cuối cùng sẽ chạy vào một "UUID lưu trữ sự kiện không khớp" cho mỗi đĩa sao lưu.
Arjan

Gắn ổ đĩa trong Windows bằng trình điều khiển hệ thống tệp đọc / ghi như MacDrive cũng sẽ kích hoạt quét toàn bộ hệ thống tệp vào lần tiếp theo Time Machine sao lưu. (Mặt khác, việc gắn ổ đĩa bằng trình điều khiển hệ thống tệp chỉ đọc trong Boot Camp, không)
Brant

10

Để khen ngợi câu trả lời của Chỉ huy Keen, tôi khuyên bạn nên đọc một cái nhìn sâu sắc về Time Machine của Earthling Soft. Ngoài ra, nhiều thông tin được ghi vào system.log bởi backupd (sẽ cho biết lý do tại sao trạng thái chuẩn bị quá dài và như vậy)


1
+1 - bài viết xuất sắc!
Chỉ huy Keen

Bài báo tuyệt vời. Ước gì tôi có thể đánh dấu hai câu trả lời là được chấp nhận!
Stephen Darlington

Ars Technica có một bài viết hay khác, nhưng tôi đoán liên kết Earthling Soft đã bao gồm tất cả: arstechnica.com/apple/reviews 2007/10 / mac-os-x-10-5.ars / 14 Và cho các nhà phát triển đọc nó: xem thực hành tại developer.apple.com/mac/articles/cocoa/filesystemevents.html
Arjan

10

Để dễ dàng xem backupdnhật ký, hãy xem tiện ích Time Machine Buddy . Cũng lưu ý rằng có một bản ghi khác trên đĩa sao lưu, trong tệp ẩn .Backup.logcó thể tìm thấy trong thư mục của mỗi bản sao lưu. Điều này cung cấp một số thông tin khác ngoài backupdnhật ký.

Lưu ý rằng thường các nhật ký hiển thị các số liệu dường như không khớp:

Không cần pha loãng dự phòng trước: 821,4 MB được yêu cầu (bao gồm cả phần đệm) [..]
Đã sao chép 1630 tệp (3,8 MB) từ âm lượng Macintosh HD.

Ở trên, ít tập tin thực sự được sao chép hơn dự đoán đầu tiên. Vì Time Machine phụ thuộc vào FSEvents chỉ báo cáo các thư mục đã thay đổi, tôi giả sử rằng trong ví dụ trên, các thư mục này chứa tổng cộng 821,4 MB trong các tệp. Trong khi thực sự sao chép các tệp, Time Machine sau đó so sánh các thư mục đã thay đổi trên đĩa cứng với bản sao lưu và thấy rằng chỉ có các tệp 3,8 MB đã thực sự thay đổi.

Để xem những gì đã được ghi vào bản sao lưu, hãy xem TimeTracker (GUI) hoặc timedog (dòng lệnh). Lưu ý rằng, ngay cả khi chạy với tư cách là người dùng quản trị, đôi khi các chương trình này cần được chạy dưới quyền root để xem tất cả các tệp. Khi không làm điều đó, các công cụ này có thể không lấy các bản sao lưu của nhật ký và dữ liệu MySQL, được sở hữu bởi _mysql trong nhóm bánh xe :

cd "/ Tập / Sao lưu XX / Sao lưu.backupdb / XX / Mới nhất"
sudo ls -l "Macintosh HD / usr / local / mysql-5.0.51a-osx10.5-x86"
[..]
drwxr-x --- @ 6 _mysql bánh xe 374 Ngày 2 tháng 7 20:05 dữ liệu

Trong những trường hợp đó, cả hai công cụ sẽ (âm thầm) báo cáo tổng kích thước sao lưu thấp hơn và ít tệp hơn backupdnhật ký trong Bảng điều khiển. Vì vậy, nếu các số không khớp với nhật ký, thì đối với TimeTracker:

sudo ~ / Tải xuống / TimeTracker.app / Nội dung / MacOS / TimeTracker

Tương tự như vậy, đối với timedog:

cd "/ Tập / Sao lưu XX / Sao lưu.backupdb / XX" 
sudo ~ / Tải xuống / timedog

Để dễ dàng tìm thấy các file lớn trên đĩa cứng của bạn nhìn thấy đĩa Inventory X . Chương trình này không liên quan gì đến Time Machine, nhưng có thể giúp điều tra các vấn đề, như khi bạn tự hỏi tại sao bản sao lưu của bạn lại nhỏ hơn nhiều so với không gian được sử dụng trên đĩa cứng của bạn. Lưu ý rằng chương trình này có thể sẽ luôn báo cáo tổng không gian đĩa trong tiêu đề cửa sổ của nó ít hơn trong màn hình của nó, nơi người ta có thể chọn đĩa nào để điều tra (ngay cả khi chạy bằng root và chọn menu Xem, Hiển thị Kích thước tệp vật lý). Nhưng nếu tổng kích thước được báo cáo thực sự nhỏ hơn rất nhiều so với tổng số thực được sử dụng trên máy Mac của bạn, thì nó có thể giúp chạy dưới quyền root:

sudo "$ HOME / Tải xuống / Hàng tồn kho trên đĩa X.app/Contents/MacOS/Disk Inventory X"

Để xóa các tệp khỏi bản sao lưu (như nếu bạn tình cờ phát hiện ra rằng Time Machine thực sự đang sao lưu một số tệp lớn, chẳng hạn như tệp nhật ký MySQL đang chạy), Apple viết :

Bạn muốn xóa tất cả các phiên bản của một tập tin hoặc thư mục được sao lưu trước đó? Vừa đủ dễ. Khởi chạy Time Machine, chọn mục cần xóa, sau đó chọn "Xóa khỏi tất cả các bản sao lưu" từ menu hành động trên thanh công cụ Finder.

Bây giờ, nếu những tệp mà bạn muốn xóa chỉ hiển thị với root, thì bạn cũng nên gọi "Enter Time Machine" là root. Và điều đó đòi hỏi Finder phải được bắt đầu như root trước:

sudo / System / L Library / CoreService / Downloader.app / Content / MacOS / Downloader

Cái này trông giống như một Finder thông thường, nhưng bạn sẽ nhận thấy root bên cạnh biểu tượng thư mục nhà trong thanh bên của Finder. Bây giờ, sử dụng Shift-Cmd-G (menu Go, Go to Folder) để truy cập, ví dụ, /usr/localvà tìm thư mục mà bạn muốn xóa các tệp khỏi đĩa sao lưu. Tiếp theo, nhập Time Machine (và một lần nữa xác thực rằng root được hiển thị bên cạnh biểu tượng thư mục chính) và làm theo hướng dẫn của Apple. Khi hoàn tất xóa các tệp khỏi bản sao lưu, nhấn Ctrl-C trong Terminal để dừng Trình tìm kiếm gốc. (Tôi cũng cần phải đăng xuất máy Mac của mình vì đĩa từ xa sẽ không ngắt kết nối đúng cách.)

Nếu bạn đang sử dụng một gói thưa thớt (như khi sử dụng bản sao lưu trên mạng) thì mọi không gian trống sẽ không được lấy lại tự động (hoặc: không cho đến khi cần dung lượng trống). Để thực hiện điều này, xem Làm thế nào để đòi lại tất cả / nhất không gian trống từ một sparsebundle trên OS X . Điều này không chỉ áp dụng cho các tệp bạn đã xóa theo cách thủ công mà còn áp dụng cho các tệp bị Time Machine xóa để sao lưu hàng giờ hoặc hàng ngày hết hạn, trong quá trình làm mỏng sau sao lưu .

Time Machine thực sự sẽ tự nén các gói thưa thớt, khi hết dung lượng đĩa. Nhưng có vẻ như trước tiên, nó có thể xóa một số bản sao lưu cũ trong quá trình sao lưu trước khi sao lưu , do đó, có thể nên thu gọn thủ công nếu bạn đã xóa một số tệp lớn hoặc nếu bản sao lưu hết hạn có thể bao gồm các tệp lớn:

Bắt đầu làm mỏng dự phòng trước: yêu cầu 53,57 GB (bao gồm cả phần đệm), 
    9,90 GB khả dụng 
Không có bản sao lưu hết hạn tồn tại - xóa các bản sao lưu cũ nhất để nhường chỗ 
Đã xóa sao lưu / Tập / Sao lưu XX / Sao lưu.backupdb / XX / 2007-12-20-172543:
    9,90 GB hiện có sẵn 
Đã xóa sao lưu / Tập / Sao lưu XX / Sao lưu.backupdb / XX / 2007-12-31-005523:
    9,90 GB hiện có sẵn 
Đã xóa 2 bản sao lưu: bản sao lưu cũ nhất hiện nay là ngày 8 tháng 1 năm 2008 
Dừng sao lưu. 
Sao lưu bị hủy. 
Ejection Time Machine hình ảnh đĩa. 
Nén hình ảnh đĩa sao lưu để phục hồi không gian trống 
Hoàn thành nén ảnh sao lưu đĩa 
Bắt đầu sao lưu chuẩn
[..]
Bắt đầu làm mỏng dự phòng trước: yêu cầu 53,57 GB (bao gồm cả phần đệm), 
    12,75 GB khả dụng

Rất cám ơn Adam Cohen-Rose đã thử nghiệm những điều trên; xem blog của anh ấy để biết thêm chi tiết!


Một số phần mềm có thể loại trừ chính nó khỏi bản sao lưu Time Machine, bằng cách đặt thuộc tính mở rộng com.apple.metadata:com_apple_backup_excludeItemtrên các tệp của nó. Giống như các phiên bản 1.1.2 trước của VMware Fusion: blog.vmware.com/teamfusion/2008/04/vmware-fusion-1.html Xem thêm 10.5: Hiển thị các tệp mà Time Machine không sao lưu tại macosxhints.com/article. php? Story = 20080328025026826 bao gồm một liên kết đến Loại trừ cỗ máy thời gian tại shiftedbits.org/2007/10/31/time-machine-exinating
Arjan

Xem superuser.com/questions / 352/5 để biết thêm chi tiết về việc chạy Time Machine với quyền root trong Snow Leopard.
Arjan

1

Khi bị kẹt trong "Chuẩn bị" (ThinningPreBackup)

root# tmutil status
Backup session status:
{
    BackupPhase = ThinningPreBackup;
    ClientID = "com.apple.backupd";
    DateOfStateChange = "2018-10-20 12:02:54 +0000";
    DestinationID = "XXXXXX0A-1XB7-4X3B-A791-6XXXXX4325D89B";
    DestinationMountPoint = "/Volumes/TimeMachineXXX";
    Percent = "-1";
    Running = 1;
    Stopping = 0;
}

Sử dụng lsof để xem các tệp mà bản sao lưu đang truy cập - tệp cuối cùng sẽ được thay đổi:

root# ps -ef | grep backupd
    0    91     1   0  9:39pm ??         0:00.15 /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper -launchd
    0   552     1   0  9:59pm ??         0:49.54 /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd
    0  1244  1156   0 10:30pm ttys003    0:00.01 grep backupd
root# lsof -p 552
COMMAND PID USER   FD   TYPE DEVICE   SIZE/OFF     NODE NAME
backupd 552 root  cwd    DIR    1,4       1292        2 /
backupd 552 root  txt    REG    1,4     769168 67640888 /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd
backupd 552 root  txt    REG    1,4   26771408 67698052 /usr/share/icu/icudt59l.dat
backupd 552 root  txt    REG    1,4     236208 67730774 /private/var/db/timezone/tz/2018e.1.0/icutz/icutz44l.dat
backupd 552 root  txt    REG    1,4     841456 67695858 /usr/lib/dyld
backupd 552 root  txt    REG    1,4 1174183936 69140457 /private/var/db/dyld/dyld_shared_cache_x86_64
backupd 552 root    0r   CHR    3,2        0t0      306 /dev/null
backupd 552 root    1u   CHR    3,2        0t0      306 /dev/null
backupd 552 root    2u   CHR    3,2        0t0      306 /dev/null
backupd 552 root    3w   REG    1,9        686  5515544 /Volumes/TimeMachine2/Backups.backupdb/XXXXXXXXXX/2018-10-20-220254.inProgress/.Backup.561729775.162983.log
backupd 552 root    4r   DIR    1,4        136 68977542 /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/tvOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/CoreLocation.framework/English.lproj

Điều này cho thấy nó đang làm gì đó - và hãy kiên nhẫn ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.