Bagaimana cara memaksa traversal dalam Time Machine?

12

Setelah beberapa kernel panik dan hot-unplugging yang tidak sengaja dari drive Firewire Time Machine saya, saya ingin memastikan bahwa Time Machine saya benar-benar cocok dengan Macintosh HD saya, seperti rsync -a. Apakah ada cara untuk memaksa Time Machine melakukan traversal yang mendalam untuk memeriksa apakah cadangannya cocok?

Mengetahui cara melakukan ini di Macan Tutul, Macan Tutul Salju dan Singa akan bermanfaat.

Blair Zajac
sumber
Opsi ekstra-aman (tapi memakan waktu dan sedikit pricy) adalah memulai disk cadangan baru.
Thilo

Jawaban:

7

Mengatur tujuan Time Machine menjadi tidak ada dan kemudian mengaturnya kembali ke lokasi yang sama seperti sebelumnya memaksa traversal yang dalam bagi saya. Anda bisa mencoba me-reboot antara mengubah tujuan dan menambahkannya lagi untuk meningkatkan peluang terjadinya traversal yang dalam.

Kasus terburuk, kita bisa membuat kesalahan dalam mode pengguna tunggal untuk menghancurkan direktori fseventsd pada waktu yang aman ketika sistem tidak menganggapnya benar, sehingga Anda telah memaksa database baru yang tidak akan cocok. Anda mungkin bisa menghapus ini dari sisi TM, tetapi saya akan menghapus salinan boot sebagai sedikit lebih aman dan kurang rentan untuk menghancurkan data yang Anda butuhkan atau mengacaukan cadangan Anda.

Jika Anda cenderung menggunakan baris perintah / terminal, saya akan mulai dengan tmutil comparebahkan sebelum Anda tentang memaksa traversal yang mendalam. Secara eksplisit membandingkan hal-hal seperti yang ada sekarang untuk foto terakhir dan Anda dapat memaksa hal-hal dengan menentukan foto eksternal tertentu jika Anda khawatir tentang foto lokal yang dibandingkan.

bmike
sumber
Bagaimana Anda mengatur tujuan Time Machine menjadi nol? tmutil setdestinationmembutuhkan jalan sebagai argumen, bukan? (Atau saya kira cukup pilih disk cadangan kemudian tekan "Hapus disk" untuk membatalkan pilihan?) Saya terjebak dalam posisi yang buruk. Time Machine membuat cadangan baru setiap kali saya mencoba membuat cadangan (saya membatalkannya sebelum menghapus cadangan lama saya), jadi saya ingin memaksanya untuk melakukan traversal yang mendalam sehingga ia melihat bahwa sebagian besar file sebenarnya tidak berubah sejak yang terakhir cadangan.
Gary
Oke jadi saya hanya menggunakan antarmuka Time Machine dan menekan "Remove Disk", lalu menambahkannya kembali. Saya masih belum mendapatkan traversal yang dalam. Saya tahu ini karena fase "Mempersiapkan cadangan" memerlukan waktu 12 menit, ketika kemarin saya benar-benar melakukan traversal yang dalam ketika membutuhkan 120 menit untuk menyelesaikannya, yang persis seperti yang saya inginkan sekarang tetapi saya tidak dapat menemukan cara untuk melakukannya.
Gary
1

Booting dalam mode satu pengguna dapat menyebabkan traversal yang dalam. Itu berlaku untuk saya sekali, tetapi tidak kali berikutnya. Menghapus /.fseventsd pasti akan. Seharusnya aman untuk melakukan ini dalam mode pengguna tunggal. Menghapus /.fseventd pada volume cadangan tidak memicu traversal yang dalam bagi saya. (Sistem saya berlanjut seperti biasa dan bahkan tidak pernah membuatnya kembali.)

tmutil comparehanya agak akurat. Tampaknya mengidentifikasi secara akurat file yang tidak didukung pada awalnya. Saya memicu traversal mendalam untuk memperbaikinya, tetapi Time Machine masih belum mencadangkan banyak file. Namun tmutil comparesekarang mengklaim bahwa tidak ada masalah. Saya akan percaya:

rsync --dry-run --itemize-changes --checksum --protect-args -aNHAXx --protect-decmpfs --fileflags --force-change --delete path/to/source_dir/ path/to/destination_dir/

Gunakan /Volumes/<your time machine volume>/Backups.backupdb/<your machine name>/Latest/sebagai jalur sumber atau tujuan. --itemize-changesmari kita lihat apa yang berbeda; '--checksum' memberi tahu rsyncuntuk benar-benar membandingkan konten file, bukan hanya waktu modifikasi dan ukuran file; dan --dry-runmemberitahu rsync untuk tidak benar-benar melakukan backup (jadi itu hanya memberitahu kita apa yang akan dilakukan). Sisa argumen adalah flag yang memberitahu rsync untuk membuat tujuan identik dengan sumber dalam segala hal, termasuk metadata dan status kompresi HFS. Saya percaya bahwa Time Machine menambahkan metadata pembukuan yang dihapus ketika memulihkan, jadi rsyncmungkin menemukan perubahan metadata palsu.

yig
sumber
1

Jawaban singkat untuk setidaknya macOS 10.13.6:

  1. Hapus cadangan .inPro kemajuan dari volume cadangan. Ini mungkin memerlukan penggunaan root, /bin/rm -rfjadi lanjutkan dengan hati - hati .

  2. Gunakan tmutil associatediskperintah untuk mengubah volume cadangan ke volume utama. Sebagai contoh:

sudo tmutil relatedisk -a / "/ Volume / Backup Time Machine / Backups.backupdb / Macintosh HD / Terbaru / Macintosh HD"

Kemudian mulai cadangan dari item menu Time Machine. Dalam kasus saya, alih-alih menyelesaikan pemindaian dalam 10 menit (jelas bukan pemindaian penuh) dan menunjukkan terabyte ke cadangan, pemindaian mengambil lebih dari 30 dan ukuran cadangan cocok dengan apa yang tmutil comparetelah dikatakan.

Latar Belakang:

Saya harus memaksa pemindaian traversal / penuh penuh setelah installer jahat (Reallusion) mengubah izin pada segala sesuatu di "/ Pengguna / Dibagi" (sekitar 1 terabyte dari file yang tidak dimodifikasi). Saya mengubah semuanya kembali, dan tmutilmengkonfirmasi bahwa mesin waktu tidak perlu mencadangkan file-file itu lagi, tetapi salah satu dari dua disk cadangan bersikeras menggunakan beberapa pemindaian cache yang mengatakan itu.

Hal-hal yang tidak berhasil:

  • Menghapus dan menambahkan kembali volume cadangan dari preferensi sistem

  • Menghapus /.fseventsd

  • Menginstal pembaruan sistem

  • Menghapus cadangan .inProgress tanpa berjalan tmutil associated disk

  • Berjalan tmutil associated disktanpa menghapus kemajuan .in

  • Booting ke mode pengguna tunggal, mount / sebagai baca-tulis, dan menyentuh file

Dalam kebanyakan kasus, log backupd akan mengklaim melakukan traversal yang mendalam, tetapi hanya akan memakan waktu beberapa menit dan kemudian mencoba untuk membuat cadangan semuanya. Inilah perintah untuk memantau backupdlangsung pada 10.13 nanti:

log stream --style syslog --predicate 'senderImagePath berisi [cd] "TimeMachine"' --info

Itu hanya akan menampilkan acara baru . Untuk mencatat dari tiga hari terakhir:

log show --style syslog --predicate 'senderImagePath berisi [cd] "TimeMachine"' --info --Last 3d

Seth Noble
sumber