مقدمة:
توزيعات جنو/لينكس هي أنظمة تشغيل قابلة للتخصيص بشكل كبير كون نظام ملفات الجذر قابلة للقراءة والكتابة فيه (mutable) وهذا قد يسبب مشكلات في حالة التعديل عليها دون دراية، إضافة لذلك فإن التحديثات ربما تسبب مشكلة تؤدي لانهيار النظام مع أنها نادرة خاصة مع التوزيعات الكبيرة.
لحسن الحظ، هناك أدوات لاستعادة النظام عن طريق إنشاء لقطات (صورة) لملفات النظام وإعداداته، التي يمكنك العودة إليها في أي وقت، ولعل أشهرها timeshift.
ماهو timeshift:
برنامج timeshift هو تطبيق لاستعادة النظام عن طريق التقاط صور على فترات منتظمة. يمكن استعادة هذه اللقطات في وقت لاحق للتراجع عن جميع التغييرات.
ميزاته:
- سهل التثبيت والإعداد (أرش وديبيان وما بني عليهما) كما أنه يدعم معظم التوزيعات.
- يأتي بواجهة رسومية بسيطة، كما أنه يدعم الطرفية.
- يدعم أخذ لقطات للنظام عن طريق Rsync و Btrfs
- يدعم أخذ لقطات مؤتمتة (كل ساعة، يوميًا، أسبوعيًا، شهريًا وعند التمهيد).
حدود timeshift:
- في حالة كان نظام الملفات btrfs فإن البرنامج يدعم تخطيط Ubuntu-type subvolume للجذر @ والمنزل home@ فقط.
- لا يسمح لك بتعديل اسم الصورة.
في حالة توزيعة فيدورا:
- مدير الحزم dnf يتميز بسجل للمعاملات transaction history تسمح لك بالتراجع عن عمليات dnf في حالة مواجهة مشكلات مع النظام.
- افتراضيا في فيدورا يحتفظ النظام بآخر ثلاث أنوية قابلة للإقلاع وهذا يؤدي لتفادي معظم مشكلات الإقلاع.
تثبيت timeshift:
1- تغيير subvolume layout إلى تخطيط أوبنتو:
ملاحظة: تمت الخطوات على توزيعة فيدورا 37.
في البداية نحتاج إلى الإقلاع باستخدام نسخة حية من أجل تغيير اسم مجلد الجذر والمنزل.
ندخل للطرفية ثم نعرض أقسام النظام باستخدام lsblk -f
.
في حالة btrfs فإن subvolume هي مجلدات فقط لذا نحتاج إلى ضم mount
القسم الذي يحتويها (الجذر والمنزل) بالإضافة إلى قسم boot في حال كان منفصلا.

في المثال الذي في الأعلى فإن النظام مثبت في قسم sda7 وقسم boot موجود في sda6
الآن سنقوم بإعادة تسمية مجلد الجذر والمنزل كما هو مضح في الصورة التالية:

بعدها نعدل على مِلَفّ fstab
بتغيير كل من:
nano /mnt/@/etc/fstab
subvol=root > subvol=@
subvol=home > subvol=@home

وفي الأخير نعدل على ملفات /boot/loader/entries
وذلك أن فيدورا تستعمل BLS، إما باستخدام أداة grubby
للتعديل على كل الملفات مباشرة أو تعديلها يدويا حيث سنقوم بحذف subvol=root
واستبدالها ب @=subvol
.
cd /mnt/@/boot/loader/entries
grubby --remove-arg="rootflags=subvol=root" --arg="rootflags=subvol=@" --update-kernel=ALL
لمن يريد التعديل اليدوي وذلك بتعديل الملفات التي تنتهي ب conf:
cd /mnt/@/boot/loader/entries && ls

بعد الانتاء من التعديل نقلع مرة أخرى للتوزيعة المثبتىة ونكمل الباقي.
نعدل على ملف /etc/kernel/cmdline
وذلك بحذف subvol=root
واستبدالها ب @=subvol
.
sudo nano /etc/kernel/cmdline
2- تثبيت timeshift:
dnf install timeshift
3- تثبيت grub-btrfs:
مِيزة هذه الحُزْمَة هي إظهار صور النظام الملتقطة عن طريق timeshift في قائمة إقلاع grub.
https://github.com/Antynea/grub-btrfs
sudo make install
الأن سنعدل ملف الإعدادات الخاص ب grub-btrfs:
sudo nano /etc/default/grub-btrfs/config
نقوم بحذف علامة # لهذه الأسطر الثلاثة ستجدها في آخر الملف لتفعيلها:
GRUB_BTRFS_GRUB_DIRNAME="/boot/grub2"
GRUB_BTRFS_MKCONFIG=/usr/bin/grub2-mkconfig
GRUB_BTRFS_SCRIPT_CHECK=grub2-script-check
ثم نفعل خدمة سيستم دي ليتعرف grub على مسار اللقطات.
systemctl enable grub-btrfs.path

كما تلاحظ في الصورة التي في الأعلى فإن رسالة الخطأ بسبب عدم وجود subvolume الخاص بحفظ اللقطات في مجلد /.snapshots
لذلك نحتاج لتعديل مساره (لن تواجه هذه المشكلة في حالة وجود subvolume= @.snapshots ).
systemctl edit --full grub-btrfs.path
سنستبدل كامل محتوى الملف بهذا الذي في الأسفل:
[Unit]
Description=Monitors for new snapshots
DefaultDependencies=no
Requires=run-timeshift-backup.mount
After=run-timeshift-backup.mount
BindsTo=run-timeshift-backup.mount
[Path]
PathModified=/run/timeshift/backup/timeshift-btrfs/snapshots
[Install]
WantedBy=run-timeshift-backup.mount
سنفعل خدمة سيستم دي مرة أخرى
sudo systemctl reenable grub-btrfs.path
sudo systemctl start grub-btrfs.path
نقوم بالدخول للبرنامج واختيار نظام الملفات btrfs ثم تحديد القسم الذي سيتم فيه حفظ اللقطات ويفضل لو كان قسما منفصلا أو حتى usb مع جعل نظام ملفاته btrfs، ثم تحديد عدد اللقطات الممكن أخذها تلقائيا، كما يمكنك تحديد قسم المنزل إذا أردت أخذ لقطات له.
نقوم بأخذ صورة يدوية للنظام لتجربة عمل البرنامج

وآخر خطوة هي إعادة توليد ملف grub لإظهار اللقطات في قائمة عند التمهيد
grub2-mkconfig -o /boot/grub2/grub.cfg

ملاحظة: ليس هناك حاجة لإعادة توليد ملف grub كل مرة.
وبهذا نكون قد أنهينا تثبيت وإعداد timeshift.
لمزيد من الاستفادة يرجى متابعة هذا الفيديو على قناة نوفرة تك: الطريقة الصحيحة لاستخدام TimeShift مع Btrfs
خاتمة:
أداة استعادة النظام هي برنامج لا غنى عنه في النظام، خاصة لمن يحب تخصيص النظام والغوص في إعداداته.
آمل أن يساعدك هذا الدليل على البَدْء مع Timeshift، ورغم أني لم أشرح طريقة استخدامه إلا أنه يقدم واجهة بسيطة للتعامل معه.
هذا الموضوع فائز بجائزة أسس للكتابة.
هذا الموضوع احد المواضيع الفائزة بجائزة أسس للكتابة, الجائزة الاولى في العالم العربي للتحفيز الكتابة عن البرمجيات الحرة.
تفاصيل اكثر عن الجائزة



oth_mahammedi
كاتب فائز بجائزة أسس للكتابة.
حساب ماستودون:
oth_mahammedi@mastodon.social