الجواب المختصر: «جارٍ تحضير النسخة الاحتياطية» هو Time Machine يحدد ما تغيّر منذ المرة الأخيرة. عادةً يستطيع قراءة ذلك من سجل تغييرات يحتفظ به النظام. وحين يكون ذلك السجل غير صالح يمر على كل ملف في القرص بدلًا منه، وهذا هو الفرق بين أربعين ثانية وأربع ساعات.
الأمر في القسم التالي يخبرك أي الحالتين تحدث، فتتوقف عن التخمين.
قبل أن ينسخ بايتًا واحدًا، على Time Machine أن يقرر ما ينسخه. يحتفظ macOS بسجل مستمر لتغييرات نظام الملفات يسمى FSEvents، وفي الحالة الجيدة يسأل Time Machine ذلك السجل عن كل ما تغيّر منذ آخر نسخة احتياطية، وهذا يستغرق ثوانيَ حتى على قرص ممتلئ.
في الحالة السيئة لا يستطيع ذلك السجل الإجابة. حينها يلجأ Time Machine إلى فحص عميق، أي مقارنة كل ملف في المصدر بآخر نسخة احتياطية، واحدًا تلو الآخر. على Mac فيه مليون ملف، معظمها صغير، هذه ساعات من العمل قبل نسخ أي شيء. شريط التقدم لا يخبرك بشيء من هذا. يقول «جارٍ تحضير النسخة الاحتياطية» في الحالتين.
أمران. لا يغيّر أيٌّ منهما شيئًا.
tmutil status
ابحث عن Percent وBytesCopied. أثناء مرحلة تحضير حقيقية يبقى كلاهما عند الصفر، وهذا متوقع. ما تريده هو السجل، الذي يقول صراحة أي طريق سلك:
log show --predicate 'subsystem == "com.apple.TimeMachine"' --last 1h --info | grep -i -E "deep|event|scan|prepar"
السطر الذي يذكر Deep event scan أو event database is not usable هو الجواب. إنه يفحص كل شيء. أما السطر عن قراءة الأحداث وعدد صغير من المسارات فيعني أن سجل التغييرات عمل وأن شيئًا آخر بطيء.
لمشاهدته مباشرة بدلًا من ذلك، والإيقاف بـ Control-C:
log stream --predicate 'subsystem == "com.apple.TimeMachine"' --info
دون نسخة احتياطية سابقة للمقارنة، يُقرأ القرص كله. بضع ساعات أمر طبيعي لقرص ممتلئ عبر USB، وأطول بكثير عبر Wi-Fi. تحديث macOS يُبطل أيضًا سجل التغييرات، فأول نسخة احتياطية بعده فحص عميق بالضرورة. صِل القرص، واتركه طوال الليل، وتحقق في الصباح قبل فعل أي شيء آخر.
هذه هي الحالة الشائعة على Mac يعمل منذ مدة. إيقاف تشغيل غير سليم، أو قرص ممتلئ، أو وحدة تخزين تم إصلاحها، كلها قد تترك FSEvents غير صالح، وبعدها تصبح كل نسخة احتياطية فحصًا عميقًا حتى يعيد شيء بناءه. النسخة الاحتياطية لا تزال تعمل. لكنها تكلّف ساعات في كل مرة.
إعادة التشغيل تعيد بناء السجل لوحدة الإقلاع في كثير من الحالات، وهي أرخص شيء تجربه.
النسخة الاحتياطية المتقطعة تترك مجلدًا ينتهي بـ .inProgress على الوجهة. يحاول Time Machine تسويته قبل أن يبدأ أي شيء جديد، وعلى وجهة شبكية قد تستغرق تلك التسوية وقتًا أطول مما كانت ستستغرقه النسخة الاحتياطية. ابحث في قرص النسخ الاحتياطي، في Backups.backupdb على قرص HFS+ أو في المجلد الخاص بوحدة التخزين على قرص APFS.
حذف مجلد .inProgress يتخلص من نسخة احتياطية غير مكتملة ولا شيء غيرها. كل نسخة احتياطية مكتملة مجلد منفصل ولا يُمس. انقله إلى سلة المهملات من Finder، وأفرغ سلة المهملات، وابدأ نسخة احتياطية يدويًا.
الفحص العميق مرتبط بعدد الملفات، لا بحجمها. ملف فيديو واحد بحجم 40 GB مقارنة واحدة. ومجلد node_modules بحجم 40 GB قد يكون مليوني مقارنة. DerivedData في Xcode، وذاكرات npm وyarn المؤقتة، وصور Docker، وcellar في Homebrew، ومكتبة Steam هي المشتبه بها المعتادة، وكلٌّ منها يمكن إعادة توليده.
استبعدها في إعدادات النظام، عام، Time Machine، الخيارات. فعل ذلك يقصّر الفحص والنسخ معًا، ولا يكلفك شيئًا قد تريد استعادته يومًا.
يكتب Time Machine صورة قرص على NAS أو على Mac مشترك، وكل مقارنة للملفات تمر عبر الشبكة. عبر Wi-Fi، في الطرف الآخر من المنزل، قد يستغرق الفحص العميق يومًا كاملًا. ضع جهاز Mac بجوار الموجّه، أو استخدم Ethernet، وانظر هل تنتهي النسخة نفسها خلال ساعة.
إذا لم ينتهِ أبدًا، فالمشكلة على الأرجح في المشاركة نفسها، والتحقق هو طريقة معرفة ما إذا كان الموجود هناك مقروءًا.
.inProgress في المقام الأول. يمكن إيقاف Time Machine بأمان من عنصر شريط القوائم أو باستخدام tmutil stopbackup.«جارٍ تحضير النسخة الاحتياطية» حالة، وهي الحالة نفسها سواء كانت المهمة ستنتهي خلال دقيقة أو لن تنتهي أبدًا. الرقم الذي تريده فعلًا هو متى انتهت آخر نسخة احتياطية نجحت، ويضع Time Machine ذلك خلف قائمة عليك فتحها.
يُظهر Copy Shelter عمر آخر نسخة احتياطية اكتملت على شاشته الرئيسية، ويقول شيئًا بعد سبعة أيام دون واحدة. ويسمّي أيضًا المرحلة التي هو فيها والملف الذي يعمل عليه أثناء العمل، فتبدو المهمة الطويلة طويلة وتبدو المهمة العالقة عالقة.
وحين تكتمل نسخة احتياطية فعلًا، فاكتمالها ادعاء عن نسخة لم يتحقق منها أحد. يقرؤها Copy Shelter من جديد مقابل التجزئات التي خزّنها، وفق جدول، فتصبح النسخة الاحتياطية التي توقفت بصمت عن أن تكون مقروءة شيئًا تكتشفه في يوم عادي.
من ثوانٍ إلى دقيقتين حين يعمل سجل التغييرات، أيًّا كان حجم القرص. وساعات حين يلجأ إلى الفحص العميق. أمر السجل أعلاه يخبرك أيهما، وهذه الطريقة الوحيدة الموثوقة للمعرفة.
نعم. لم يُكتب شيء بعد خلال تلك المرحلة. أوقفه من عنصر Time Machine في شريط القوائم، أو شغّل tmutil stopbackup. الإنهاء القسري أو فصل القرص أثناء مرحلة النسخ هو الخطِر، وهو ما يترك مجلد .inProgress خلفه.
فقط إذا استبعدت شيئًا لا يُعوَّض. ذاكرات التخزين المؤقت، ومجلدات البناء، ومجلدات مديري الحزم، ومكتبات الألعاب المنزّلة يمكن إعادة بنائها كلها من الإنترنت. يمر دليل ما الذي تنسخه احتياطيًا على Mac على القائمة.
إذن هو يفحص المصدر، ولا يكتب بعد. يبدأ نشاط القرص في مرحلة النسخ. إذا لم تُظهر ساعة من مخرجات السجل أي شيء من النظام الفرعي TimeMachine، فقد تكون العملية نفسها عالقة، وإعادة التشغيل هي الخطوة التالية.
لديه المهمة نفسها وطريقتان لأدائها، فالتشغيل الأول يقرأ كل شيء. الفرق أنه يقول في أي مرحلة هو وعلى ماذا يعمل، والدرجة على شاشته الرئيسية تحتسب آخر نسخة احتياطية اكتملت، لا التي بدأت أبدًا.
ذو صلة: يقول Time Machine إنه لا توجد مساحة كافية، وحين تتوقف النسخة الاحتياطية عن العمل دون أن تقول شيئًا، ومقارنة بين Copy Shelter وTime Machine.