מאבקנו הצודק: סבוב נוסף.

|
יו"ר ועד העובדים שלנו היה בחור חסון, קרח, ומאד מרוצה מעצמו בדרך כלל. חדשות לבקרים המציא דרישות חדשות מהמעביד ומיד גייס אותנו למאבק בעדן, לו קרא בשם הפשוט והקולע: “מאבקנו הצודק".
גם לנו, משתמשי קרנל 2.6, מאבק צודק משלנו. המאבק הוא בבקרי רייד מובנים בלוח האם, לא מעטים מהם מתוצרת promise - והם נפוצים למדי. זמן רב – לפחות עד גרסה 2.6.15 - לא היתה בהם תמיכה בקרנל של לינוקס מגרסה 2.6. הדרך היחידה להשתמש בהם בלינוקס היתה לבטל את פונקציית ה Raid בביוס ולבחור באופציה שנקראת בדרך כלל IDE. במחשבים עם איתחול כפול מנעה בעיה זו גם את השמוש ברייד בחלונות.
בשניים ממחשבי ה 64 ביט שלי מובנים בקרים כאלה, ובשניהם נבחרה בזמנו אופצית ה IDE בביוס. על כל אחד משני בקרים אלה הותקנו שני דיסקים קשיחים, שפעלו כל אחד בנפרד, ולא כמערך Raid כלשהו.
והנה, בקרנל 2.6.22 כבר הבשילה התמיכה בבקרי Raid מסוג זה. נוספו המודולים dm_mod, dm_snapshot, dm_mirror ועוד, וכשטוענים אותם מזוהים הבקר והמחיצות שעליו, ונוצרים ה dev הדרושים להפעלתם. המחיצות הנוצרות על מערכי ה Raid נקראות בשם הזוועתי mapper/pdc_dhhaffaaffpX/. (כאשר X הוא מספר המחיצה על מערך הדיסקים, או הדיסק הלוגי, אם תרצו.)
ומסתבר שהתמיכה הזו לוקה לעיתים בהתלהבות יתר, כזו שהיתה מנת חלקם של הצופים ההם שרצו להיטיב עם הזקנה ולכן גררו אותה מצד לצד של הכביש, חזור וגרור. גם בפדורה 7 וגם באופן-סוזה 10.3 מזוהים הבקרים הנ"ל תמיד כאילו היו בקרי Raid, גם כשהם במצב IDE. הדבר גורר מצד אחד "זיהוי" מערכים שלא קיימים, ומצד שני אי-זיהוי דיסקים שלמים שכן קיימים, וכבר עמדתי על זה וכגון זה ברשימות קודמות http://linmagazine.co.il/fedora/sml/7 ו http://linmagazine.co.il/node/view/27250.
ה mapper שנזכר למעלה הוא אבי כל חטאת, והוא ממפה דיסקים קיימים ללא קיימים...
במקרה "הטוב" גורם הדבר לאי-נגישות מידע, במקרה הרע לאי יכולת להתקין או לשדרג את ההפצה. הפורומים של אופן-סוזה משופעים בהודעות של משתמשים שנתקלו בבעיה.
התהליך המתרחש הוא התהליך הבא:
תכנת ההתקנה נטענת לזכרון, ומתחילה בזיהוי החומרה. היא יוצרת initrd המכיל את כל המודולים הדרושים להפעלת הרכיבים החיוניים להתקנה כגון בקרי ה CD ובקרי הכוננים הקשיחים. עם זיהוי בקר promise נכללים בו המודולים שצויינו למעלה – בין אם הבקר במצב Raid או במצב IDE.לא ניתן להסיר את המודולים הללו בעזרת rmmod או בכל דרך אחרת – הם מובנים. נוצר ה mapper. בשלב שיוך המחיצות מודיעה התכנה על זיהוי דיסקים שלא קיימים ומנסה להתקין את המערכת עליהם. ההתקנה, כמובן, נכשלת.
מה ניתן לעשות, לפחות עד שהדבר יתוקן על ידי ההפצות הנ"ל?
דרך אחת היא להתקין על חומרה שאינה מכילה את הבקרים הללו, ואז המודולים המזיקים לא יכללו ב initrd. אחר-כך להוסיף אותם לרשימה השחורה ב etc/modprobe.d/black-list/. בשלב הבא ליצור image של המחיצה עליה התקנו ואז "לשפוך" אותו למחיצה עליה אנו רוצים להתקין. אחר לערוך את fstab ואת menu.lst – ולקוות לטוב...
דרך זו לא מאפשרת שדרוג, וגם לא זמינה לכל אחד. מה אפשר עוד לעשות?
מסתבר שבינתיים גרסת factory של אופן-סוזה מתקדמת והיא עכשיו ב 10.3.1 alpha0. בגרסה זו כבר קיים קרנל 2.6.23 בו נפתרה הבעיה והצרה המתוארת למעלה לא מתרחשת. משתמשים איפה להתקנה ב boot.iso של גרסה זו (או ב loader שלה) להתחלת ההתקנה.
אני נקטתי, על אחד המחשבים בדרך אחרת. במחשב זה התאפשרה ההתקנה, אך אחד הדיסקים (בן 320 ג'יגה) שעל בקר פרומיס – נשאר "אפל". נסיון לשדרג את הקרנל ל 2.6.23 (שנמצא כבר ב factory) נכשל. הסיבה לכך היא הסקריפטים המיוחדים של אופן-סוזה לשדרוג\קמפול קרנל.
השלב האחרון בקימפול קרנל הוא make install. בשלב זה מבצעת אופן-סוזה שלוש מטלות: א: מעבירה את ה image של הקרנל לספריית boot/ ויוצרת אליו קישור לוגי בשם vmlinuz, ומוחקת את הקרנל הקודם. אם ההתקנה לא היתה קימפול אלא התקנה מ rpm נמחקת גם ספריית המקור של הגרסה הקודמת של הקרנל והקישור הלוגי אליה (linux) משתנה ומצביע מעכשיו אל ספריית המקור של הקרנל החדש. ב: משנה שתי כניסות ב menu.lst, לשם הקרנל החדש, אחת רגילה והשניה safe – בנוסף לכניסה הרגילה. ג: יוצרת initrd חדש. ופה היתה הבעיה: initrd זה חייב לכלול את כל המודולים של הישן.
מילכוד: כל זמן שהמערכת רצה על הקרנל הישן, לא אצליח להתקין קרנל חדש, שונה. מה עושים?
הורדתי את הספריה loader מכאן:
ftp://mirrors.kernel.org/opensuse/distribution/SL-OSS-factory/inst-source/boot/x86_64
ושמרתי אותה בשורש של מחיצת הבית (המשתמש: lulis).
הוספתי את הכניסות הבאות ל boot/grub/menu.lst/:
title factory-rescue
root (hd1,0)
kernel /lulis/loader/linux
initrd /lulis/loader/initrd

איתחלתי ובחרתי ב factory-rescue. עלתה תכנת ההתקנה של factory, עם קרנל 2.6.23 הרצוי, וללא הזיהוי המשובש של הבקר. בחרתי ב boot installed systems והעלתי את אופן-סוזה 10.3, עכשיו עם הקרנל החדש. ה mapper לא נוצר!
ההמשך היה פשוט: מתוך המערכת הרצה חזרתי על התקנת הקרנל החדש. עכשיו נסתיימה ההתקנה בהצלחה.
אופן-סוזה 10.3 עולה עכשיו עם קרנל 2.6.23, כל הדיסקים מזוהים נכון על כל תכולתם, ואפשר לנשום לרווחה.

אפשרויות לתצוגת תגובות

בחרו באפשרות התצוגה הרצויה, ולחצו על "שמור הגדרות".

לולי שמח שחזרת :)...

לולי שמח שחזרת :) אני תמיד נהנה לקרא את הבלוג המשובח שלך!
זיו