גיבוי התצורה של מערכת דביאן, לא הבתים שלה
רוב עצות הגיבוי אומרות לכם להעתיק את הקבצים שלכם. זה נכון לנתונים שלכם, אבל זה המודל הלא נכון למערכת עצמה. התקנת דביאן או אובונטו ניתנת לשחזור כמעט לחלוטין מהארכיון: החבילות שם בחוץ, מוכנות להתקנה מחדש. מה שאינו ניתן לשחזור הוא מערך ההחלטות הקטן שקיבלתם, ואלה מה שגיבוי מערכת צריך ללכוד. שלושה דברים מספיקים כדי לבנות מחדש את האישיות של מכונה.
שלוש הפקודות
# 1. התצורה שערכתם: כל מה שתחת /etc.
sudo tar --create --bzip2 --absolute-names \
--file "/tmp/etc.$HOSTNAME.tar.bz2" /etc
cp "/tmp/etc.$HOSTNAME.tar.bz2" "$FOLDER"
sudo rm "/tmp/etc.$HOSTNAME.tar.bz2"
# 2. אילו חבילות מותקנות. כל משתמש יכול להריץ זאת.
dpkg --get-selections > "$FOLDER/dpkg_selections.$HOSTNAME.txt"
# 3. לאיזו חלופה כל בחירה מצביעה (עורך, java וכן הלאה).
update-alternatives --get-selections > "$FOLDER/alternatives.$HOSTNAME.txt"
הגדירו את FOLDER למקום שבו הגיבויים שלכם חיים לפני ההרצה.
למה כל שורה נועדה
ה-tar של /etc לוכד את התצורה שבאמת נגעתם בה: הגדרות רשת, fstab, מפתחות והגדרות ssh, משימות
cron, תצורת חבילות שערכתם. זה החלק שאין לו תחליף, מפני שזה החלק שאי אפשר להוריד. --bzip2 דוחס
אותו, ו---absolute-names שומר את הקו המוביל כך שתדעו שאלה נתיבים מוחלטים; חלצו בכוונה ולא לתוך /
חי. הבנייה ב-/tmp וההעתקה החוצה אחר כך הן כדי שהארכיון יורכב על דיסק מקומי מהיר לפני שהוא נוחת על
מה ש-FOLDER מצביע אליו, שאולי הוא שיתוף רשת איטי. ה-sudo הוא מפני שרוב /etc קריא רק לשורש.
dpkg --get-selections כותב את הרשימה המלאה של החבילות המותקנות. זה המפרט של כל מה שהוספתם מעל
ההתקנה הבסיסית, והוא זעיר, מפני שהוא שמות ולא תכנים.
update-alternatives --get-selections רושם לאיזו תוכנית כל חלופה נפתרת, כך שאחרי שחזור editor
עדיין העורך שבחרתם ו-java עדיין ה-JDK שהתכוונתם אליו.
שחזור
בהתקנה טרייה של אותה גרסה, שחזרו באותו סדר:
# התקינו מחדש את אותו מערך חבילות.
sudo dpkg --set-selections < dpkg_selections.$HOSTNAME.txt
sudo apt-get dselect-upgrade
# שחזרו את החלופות.
sudo update-alternatives --set-selections < alternatives.$HOSTNAME.txt
# החזירו את התצורה, בזהירות, לתוך יעד מעוגן
# ולא מעל ה-/etc הפועל שלכם.
sudo tar --extract --bzip2 --file etc.$HOSTNAME.tar.bz2 -C /mnt/newroot
הזהירות היחידה היא בצעד האחרון. אל תחלצו את /etc ישר מעל מערכת פועלת בלי להסתכל; חלצו לתוך יעד
מעוגן, או לתוך תיקיית טיוטה, והעתיקו את הקבצים שאתם באמת רוצים. גרסאות חבילות מתקדמות, ותצורה מגרסה
ישנה יותר יכולה לבלבל דמון חדש יותר.
למה זה עדיף על תמונת דיסק
תמונת דיסק גדולה יותר, קשורה לחומרה ולפריסת המחיצות המדויקת, ולוכדת הרבה שאין לכם עניין בו. שלושת הקבצים האלה הם כמה מגה-בייטים, קריאים לאדם, שורדים החלפת חומרה, ומאפשרים לכם לבנות מחדש על גרסה חדשה יותר בקריאת ההבדלים במקום להיאבק בהם. הבתים של המערכת הם הבעיה של דביאן. ההחלטות הן שלכם, וההחלטות הן כל מה שאתם צריכים לשמור.