Làm cách nào tôi có thể xóa thủ công các bản sao lưu cũ vào không gian trống cho Time Machine?


224

Tôi sử dụng Time Capsule để sao lưu và bây giờ tôi muốn ổ đĩa sao lưu dữ liệu từ máy Mac phụ. Nhưng ổ đĩa chứa đầy các bản sao lưu cũ từ Mac 1. Đơn giản là không có đủ dung lượng để sao lưu cho Mac 2.

Tôi nhận được thông báo lỗi này khi chạy sao lưu Time Machine:

Time Machine không thể hoàn thành việc sao lưu. Sao lưu này là quá lớn cho đĩa sao lưu. Việc sao lưu cần 28,68 GB nhưng chỉ có sẵn 626,2 MB.

Time Machine cần không gian làm việc trên đĩa sao lưu, ngoài không gian cần thiết để lưu trữ các bản sao lưu. Mở tùy chọn Máy thời gian để chọn đĩa sao lưu lớn hơn hoặc sao lưu nhỏ hơn bằng cách loại trừ tệp.

Tôi biết chính Time Machine có thể loại bỏ các bản sao lưu cũ khi cần thêm dung lượng. Nhưng trong trường hợp này, nó không xóa bất kỳ bản sao lưu Mac 1 nào để tạo khoảng trống cho Mac 2.

Câu hỏi là, làm thế nào để tôi làm nó bằng tay?


3
Cho rằng các ổ đĩa ngoài giá rẻ như thế nào, tôi sẽ muốn mua một cái và sử dụng nó cho máy phụ của bạn. Tôi thích các yếu tố: amazon.com/Western-Digital-Elements-External-WDBAAU0010HBK-NESN/
Kẻ

2
@ james.garriss điểm tốt :) Tuy nhiên, tôi vẫn phải trao đổi ổ đĩa trong viên nang thời gian của mình :)
Jesper Rønn-Jensen

1
Bất cứ ai cũng biết nếu có một cách (không viết kịch bản) để yêu cầu TM chỉ giữ 1 bản sao lưu một tháng để sao lưu cũ hơn 1 tuổi?
gamov

2
Bạn không thể tạo 2 phân vùng khác nhau trên đĩa TM và chọn một phân vùng khác nhau cho mỗi mac?
Pierre Watelet

Câu trả lời:


235

Hãy cẩn thận với sudo và đảm bảo bạn chọn đúng tệp của Mac vì không có hoàn tác hoặc xác nhận lệnh sau:

sudo tmutil delete /Volumes/drive_name/Backups.backupdb/old_mac_name

Lệnh sudo cần mật khẩu của bạn (và nó sẽ không xuất hiện trên màn hình, vì vậy chỉ cần nhập nó và tạm dừng để chắc chắn rằng bạn đang hẹn hò với các tệp chính xác trước khi nhấn enter). Nếu bạn muốn an toàn hơn, bạn có thể chọn một ảnh chụp nhanh để xóa trước để đảm bảo lệnh hoạt động như dự định. Điều này thật tuyệt vì có thể mất hàng giờ để dọn sạch một số bộ sao lưu lớn hơn và bạn muốn để Mac tự tin rằng nó sẽ xóa kho lưu trữ thông tin chính xác.

Bạn có thể sử dụng tmutilcông cụ để xóa từng bản sao lưu.

sudo tmutil delete /Volumes/drive_name/Backups.backupdb/mac_name/YYYY-MM-DD-hhmmss

Kể từ khi tmutilđược giới thiệu với Lion, điều này sẽ không hoạt động trên các phiên bản HĐH trước đó.

Nếu bạn muốn lấy thư mục sao lưu hiện tại (có thể có nhiều đích được xác định và chỉ có một đích sẽ là "hiện tại")

sudo tmutil machinedirectory

4
Làm việc như người ở. Tôi đã có các bản sao lưu cũ rất lớn và bị ngắt kết nối với bộ máy thời gian ban đầu do thay đổi ổ cứng. Tôi không thể xóa chúng bằng sudo rm (lập dị), nhưng điều này đã tạo ra mánh khóe. Cảm ơn!
David Pisoni

2
@drfrogsplat có, nhưng khi làm việc với các bản sao lưu cũ, thông thường mac gốc sẽ bị chết. Trong trường hợp của tôi, tôi đang cố gắng giải phóng không gian trên ổ đĩa sao lưu của mình để tôi có thể sử dụng nó để sao lưu máy mac mới.
Abhi Beckert

5
@sapes_eyes Đó không phải là cách xóa các tệp được liên kết cứng hoạt động. Giả sử có 100 khoảng với cùng một tệp. Tệp tồn tại trên đĩa một lần, nhưng số lượng liên kết là 100. Khi bạn xóa một mục, mục nhập thư mục đó sẽ biến mất khi bạn xóa và số liên kết hiện là 99. Chỉ khi số lượng liên kết về 0 thì tệp mới bị xóa. Tất cả các xóa khác chỉ cần loại bỏ một mục thư mục.
bmike

5
Không cần phải xóa từng bản sao lưu. Bạn có thể nhập sudo tmutil delete và sau đó kéo tất cả các bản sao lưu bạn muốn xóa vào cửa sổ Terminal. @drfrogsplat trang man đề cập lệnh này có thể xóa các bản sao lưu được tạo bởi một máy khác.
điểm

2
@pointum là chính xác. Ngoài ra, nếu bạn muốn ở trong thiết bị đầu cuối, bạn có thể sử dụng các thẻ đại diện như vậy: 'sudo tmutil xóa 2015- *' Đây có thể là một quá trình chậm, đặc biệt là với các đĩa quay, vì vậy việc xóa nhiều tệp rất quan trọng cho sự tỉnh táo và hiệu quả.
Matt Dressel

81

Cách dễ nhất là:

  1. Nhập cỗ máy thời gian (trên máy Mac có bản sao lưu bạn muốn xóa)
  2. Đi đến thời điểm bạn muốn xóa
  3. Chọn biểu tượng trông giống như một răng cưa trong công cụ tìm và chọn 'Xóa Sao lưu' (trong Mavericks: Nhấp chuột phải vào cửa sổ công cụ tìm và chọn 'Xóa Sao lưu')

Điều này đảm bảo danh mục sao lưu vẫn chính xác và tính toàn vẹn của dữ liệu của bạn vẫn còn nguyên.


3
@drfrogsplat rất chính xác rằng sử dụng GUI mà Apple cung cấp là cách tốt nhất (hoạt động trên tất cả các phiên bản) để xóa bản sao lưu và ít bị lỗi hơn do có nhiều phản hồi trực quan (nếu bạn xem xét kỹ) và kiểm tra trước khi bạn nhập mật khẩu của bạn để chắc chắn rằng bạn biết việc xóa là vĩnh viễn.
bmike

1
Tôi không thấy một mục sao lưu xóa trên mavericks trong menu cog
brainray

@brainray Tôi đã đăng câu trả lời cho mavericks
Inder Kumar Rathore

1
Ngoại trừ khi nó xóa một phần (vì bất kỳ lý do gì), nó quên sao lưu một phần vì vậy bạn không thể xóa nó bằngtmutil delete
Jeroen Wiert Pluimers

1
Điều này không hoạt động nếu bạn gặp vấn đề "Chờ đợi ...". apple.stackexchange.com/questions/207787/ Chờ đợi không phải lúc nào cũng hoạt động.
Almo

39

Dành cho Mavericks / Yosemite

  1. Nhập cỗ máy thời gian
  2. Chọn bản sao lưu
  3. Nhấp chuột phải vào bản sao lưu (trên cửa sổ công cụ tìm)
  4. Chọn 'Xóa sao lưu'

Nó sẽ hỏi mật khẩu và bạn đã hoàn thành

nhập mô tả hình ảnh ở đây


Nhấp chuột phải vào bản sao lưu: ở đâu?
brainray

Bạn sẽ được hiển thị một cửa sổ tìm kiếm nhấp chuột phải ở giữa cửa sổ và bạn sẽ được hiển thị một danh sách các tùy chọn
Inder Kumar Rathore

13
Điều đáng chú ý là Time Machine sẽ không thực hiện xóa và không yêu cầu mật khẩu của bạn cho đến khi bạn thoát Time Machine. Và quy trình thoát Time Machine sau khi chọn tệp và thư mục để xóa cũng không rõ ràng: bạn phải nhấp cancelvào góc dưới bên trái. (Rõ ràng, điều bạn đang "hủy bỏ" là khôi phục các tệp; việc xóa dường như không được coi là bị hủy khi bạn thực hiện việc này.)
mhucka

3
Điều này cũng làm việc cho tôi từ một máy khác. MBP cũ của tôi đã bị hỏng, cái mới của tôi có các tên và phân vùng ổ cứng khác nhau, v.v ... Cuối cùng, nó đã lấp đầy đĩa TM của tôi và tôi không muốn xóa tất cả các bản sao lưu của máy cũ. Vì vậy, bạn giữ Tùy chọn, nhấp vào máy thời gian trong thanh menu và "Duyệt các đĩa sao lưu khác". Tôi đã có thể có được bản sao lưu cũ đầu tiên bằng cách cắm vào một ổ đĩa có cùng tên. Từ đó tôi có thể chuyển sang cấu trúc ổ đĩa cũ và sử dụng mẹo này để xóa một số bản sao lưu thực sự cũ.
Đánh dấu

Hoặc chỉ cần nhấp vào thư mục thiết bị gốc trong thanh bên (để phân vùng cũ và cấu trúc ổ đĩa xuất hiện). Trong trường hợp của tôi "Thiết bị -> Macbook Pro"
Đánh dấu

18

Tập lệnh này sẽ tự động tìm bản sao lưu TM cũ nhất cho máy tính của bạn, cho bạn biết bản sao lưu cũ nhất và mới nhất và cung cấp cho bạn lời nhắc để xóa bản sao lưu cũ nhất. Bạn phải nhập Yvà nhập mật khẩu quản trị viên của bạn để xóa nó.

kịch bản bash:

COMPUTER_NAME=$(scutil --get ComputerName)
NBACKUPS=$(tmutil listbackups | grep "$COMPUTER_NAME" | wc -l)
OLDEST_BACKUP=$(tmutil listbackups | grep "$COMPUTER_NAME" | head -n1)
LATEST_BACKUP=$(tmutil latestbackup)
echo Latest backup: $LATEST_BACKUP

if [[ -n "$LATEST_BACKUP" && "$LATEST_BACKUP" != "$OLDEST_BACKUP" ]]; then
     echo -n "$NBACKUPS backups. Delete oldest: ${OLDEST_BACKUP##*/} [y/N]? "
     read answer
     case $answer in
         y*)
             echo Running: sudo tmutil delete "$OLDEST_BACKUP"
             sudo time tmutil delete "$OLDEST_BACKUP"
             ;;
         *)
             echo No change
             ;;
     esac
 else
     echo "No backup available for deletion"
 fi

Tóm lại, tập lệnh này sẽ tự động tìm bản sao lưu TM cũ nhất cho máy tính của bạn, cho bạn biết bản sao lưu cũ nhất và mới nhất và cung cấp cho bạn lời nhắc để xóa bản sao lưu cũ nhất. Bạn phải nhập Yvà nhập mật khẩu quản trị viên của bạn để xóa nó.
Hengjie

3
Lưu ý rằng điều này sẽ không tự động giảm kích thước của các tập tin sao lưu thưa thớt của bạn. Bạn sẽ phải đi vào và chạysudo hdiutil compact /path/to/disk-image
Hengjie

14

Tôi đã tự hỏi mình câu hỏi này và câu trả lời ở đây chắc chắn có ích. Tuy nhiên, có một khía cạnh thiếu có thể là "chi tiết" triển khai mới không tồn tại khi câu hỏi này được trả lời.

tmutil deletethực sự xóa các bản sao lưu, nhưng không thực sự lấy lại không gian mà họ đã lấy, ít nhất là không theo bất kỳ cách nào được đảm bảo. Tôi đã dành khoảng 2 ngày để xóa các bản sao lưu từ> 2 năm trước, theo thông báo hoàn thành cuối cùng lên tới xấp xỉ. 400Gb dữ liệu. Tôi đã thấy chỉ báo không gian sao lưu miễn phí tăng lên tương ứng một lần , nhưng sau lần sao lưu tiếp theo, tôi lại giảm xuống chỉ còn 7% dung lượng trống (858Gb được sử dụng thay vì khoảng 450Gb). Điều đó thực sự đã khiến tôi bị cản trở.

Câu trả lời cho bí ẩn được đưa ra ở đây: http://blog.hawkimedia.com/2012/08/reclaiming-a-timemachine-volumes-disk-space/ Nói tóm lại, bạn phải nhỏ gọn bó thưa thớt mà thực sự giữ sao lưu nếu nó được lưu trữ trên một đĩa được nối mạng hoặc trên một đĩa không được định dạng trong HFS +. Tôi không có các bản sao lưu TM không được lưu trữ trong một gói thưa thớt nên không thể kiểm tra xem việc sử dụng tmutil deletecó đòi lại miễn phí trên các bản sao đó không. Nó cũng có thể làm được và thực tế nó không có trên Time Capsule có thể chỉ đơn giản là một đặc thù của giao thức bó thưa thớt. Lệnh thực hiện sau sudo tmutil deletesudo hdiutil compact /Volumes/YourTimeMachineDisk/YourBackupName.sparsebundle. Trong trường hợp của tôi mà báo cáo

Starting to compact…
Reclaiming free space…
...................................................................................................................................
Finishing compaction…
Reclaimed 403.2 GB out of 583.5 GB possible.

Tin tốt là lệnh này chỉ mất một phần thời gian mà tmutil đã sử dụng, tốn ít thời gian hơn để tìm kiếm trên đĩa và sử dụng ít RAM hơn (thực tế nó đã hoàn thành trong thời gian tôi phải viết câu trả lời này).


Bây giờ tôi đang xóa các bản sao lưu mà không có một thưa thớt, và không gian dường như được giải phóng mà không cần thực hiện thêm một bước nào.
Almo

12

Nếu Time Machine thực sự chỉ sao lưu sự khác biệt, việc xóa theo thứ tự ngược lại không phải là điều bạn muốn. Thêm vào đó, mỗi lần xóa có thể mất một chút thời gian, có một đoạn script sẽ xóa đoạn tiếp theo khi đoạn hiện tại hoàn thành sẽ tốt.

Theo tập lệnh mẫu của user36971 ở trên, tôi đã viết một tập lệnh sẽ xóa tất cả các bản sao lưu khỏi tập lệnh được chỉ định và trước đó:

#!/bin/bash

if [ -z "$1" ]
then
    echo "must specify backup id: YYYY-MM-DD-HHMMSS"
    exit 1
fi

FOUND_BACKUP=0;
BACKUPS=""
while read line; do
    if [[ "${line}" == *$1* ]]
    then
        FOUND_BACKUP=1;
    fi

    if [ "${FOUND_BACKUP}" == "1" ]
    then
        BACKUPS+="${line}"$'\n'
    fi
done < <(/usr/bin/tmutil listbackups | tail -r)

if [ "${FOUND_BACKUP}" == "0" ]
then
    exit 1
fi

printf '%s' "$BACKUPS"

echo -n "Delete above backups? [y/N]? "
read answer
case $answer in
    y*)
        while read line; do
            if [ -n "${line}" ]
            then
                echo Running: /usr/bin/sudo /usr/bin/tmutil delete "${line}"
                /usr/bin/sudo time /usr/bin/tmutil delete "${line}"
            fi
        done < <(echo "${BACKUPS}")
        ;;
    *)
        echo No change
        ;;
esac

Đừng lưu ý tôi đã không bao gồm việc kiểm tra tên máy tính trong kịch bản của tôi, vì vậy nếu bạn đang chia sẻ một ổ đĩa sao lưu với nhiều máy tính, bạn có thể cần thêm một kiểm tra bổ sung.


1
TM chỉ sao lưu delta với mỗi lần chạy, nhưng giữ một bản sao đầy đủ cho mỗi lần chạy trên đĩa sao lưu. Đối với các tệp không bị thay đổi giữa các lần chạy (điều này có nghĩa là hầu hết trong số chúng), chỉ cần thêm một mục nhập thư mục mới. Điều này có thể có nghĩa là nếu bạn chỉ có các đồng bằng nhỏ giữa các lần chạy, bạn có thể phải xóa rất nhiều bản sao lưu trước khi bạn nhận thấy sự gia tăng đáng kể trong không gian trống.
nohillside

2
Thứ tự bạn xóa các bản sao lưu không tạo ra sự khác biệt nào. Thật vậy, nếu bạn sử dụng ký tự đại diện tmutil deleteđể xóa tất cả các bản sao lưu trong một năm nhất định, nó sẽ xóa chúng từ cũ nhất đến mới nhất. Và btw, sử dụng ký tự đại diện dễ dàng hơn nhiều so với sử dụng tập lệnh cho hầu hết các trường hợp :)
mluisbrown

Tôi sẽ khuyên bạn nên thêm printf '% s' "$ BACKUPS" trước dòng xóa bản sao lưu để cung cấp phản hồi tốt hơn
petr

2
Tôi có thể xóa nhiều bản sao lưu mà không cần sử dụng trong khi, chẳng hạn như: sudo tmutil delete 2016-06-12-184217 2016-06-19-080529 2016-06-26-092218
yuxuan

-3

chỉ cần mở một thiết bị đầu cuối,

#sudo tmutil không phù hợp

điều này sẽ giải phóng không gian mà không xóa các bản sao lưu TM


3
Điều này sẽ vô hiệu hóa các ảnh chụp nhanh Time Machine cục bộ từ một ổ đĩa bên trong - không phải những gì OP đang hỏi.
Scot

2
Có - điều này chỉ giải phóng không gian trên ổ đĩa khởi động Mac - không phải trên đích. Hữu ích, nhưng cần phải ở một câu hỏi khác IMO.
bmike

-3

Đây là từng bước tôi đã làm gì để xóa bản sao lưu cũ của mình

  1. Mở đĩa máy thời gian
  2. Xác định vị trí và mở thư mục Backups.backupdb
  3. Đi để xem theo ngày và chọn cũ nhất trên đầu trang
  4. Chọn bản sao lưu bạn muốn xóa
  5. Mở Teminal và gõ sudo rm -rvf
  6. Kéo và thả các thư mục cũ bạn muốn xóa trong Cửa sổ đầu cuối
  7. Nhập mật khẩu người dùng của bạn tại dấu nhắc

Đi uống cà phê hoặc xem phim, khi quá trình hoàn tất, bạn có thể phải lặp lại nó cho một số thư mục không muốn xóa.

Khi tất cả các thư mục cũ của bạn không còn nữa, Time Machine cần cập nhật cơ sở dữ liệu của nó. Đây là một cách để buộc Time Machine cập nhật.

  1. Nhập cỗ máy thời gian và đi đến Sao lưu cũ nhất vẫn được liệt kê
  2. Chọn nó và nhấp vào thiết bị nhỏ và sau đó chọn Xóa Sao lưu
  3. Nhập mật khẩu của bạn và chờ một vài phút
  4. Thoát khỏi giao diện Time Machine và quay lại lần nữa. Bây giờ bạn nên có Time Machine liệt kê bản sao lưu chính xác.

14
Đừng làm điều này. Time Machine sử dụng một hệ thống liên kết phức tạp. Bạn có thể phá vỡ các bản sao lưu của bạn. Xem pondini.org/TM/Home.html
Harv

2
Sau khi đọc http://pondini.org/TM/Works.html Tôi không thấy lý do tại sao xóa các bản sao lưu cũ bằng cách sử dụng sudo rm -rvfsẽ phá vỡ Time Machine. Các rmlệnh dòng lệnh thay thế cho các gợi ý để xóa từ Finder ở dưới cùng http://pondini.org/TM/12.html
Pro Sao lưu
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.