السلام عليكم
هناك العديد من المستخدمين مركبين اكثر من هاردديسك في الجهاز .. وكما نعلم ان لينوكس يتعامل معها بسهولة
واعتقد ان هناك العديد من الموضوعات هنا في المنتدى شرحت طريقة تسمية ال Devices وخصوصا الهارد ديسك والبرتيشينات .. ارجو البحث والرجوع اليها
اذن مالذي يشرحه هذا الموضوع؟
خذ المثال التالي
انت شغال على لينوكس ومركب ثلاثة harddisks من نوع IDE
طبعا لينوكس سيسمي اول هارد hda والثاني hdb والثالث hdc
وكل هارد عليه اكثر من برتيشن ومعلومات ال mount للبرتيشينات موجوده في ملف fstab اللي تم شرحه ايضا في موضوعات سابقة
وسنفرض انك عامل mount ل /dev/hdc1 على /data
الان لنجرب التالي اغلق الجهاز وقم بأزالة الهارد ديسك الثاني وهو hdb ثم اعد تشغيل الجهاز
ستجد ان البيانات في /data غير موجوده مع انها على hdc واللي لسه موجود في الجهاز
ويرجع السبب ان لينيكس قام تلقائيا بتسمية hdc الى hdb وذلك بعد ازالة الهارد الثاني والذي كان بأسم hdb .. اذن اصبح لا وجود ل /dev/hdc1
اعتقد الصورة وضحت
الحل:
كل هارد ديسك له معرف او identifier فريد خاص به يطلق عليه UUID
واداة devlabel تسخدم هذا المعرف لتعريف البرتيشينات وعمل symbolic link لها بين المعرف والهارد
انا عارف ان محدش فاهم حاجه .. بس ان شاء الله بعد المثال كله هيكون تمام
نزل الاداة من http://linux.dell.com/devlabel/devlabel.html
موجودة ايضا في صيغة rpm تعمل على انظمة ريدهات والانظمة المتوافقه معها
بعد التثبيت
على فرض انك مركب اربع هاردات الهارد الرابع به هذا البرتيشن /dev/hdb1
طبعا زي ما عرفنا ان اي هارد من الثلاثه تمت ازلته فالتسمية لن تكون صحيحة والحل انك تنفذ التالي:
[HTML]devlabel add -d /dev/hdb1 -s /dev/work[/HTML]
بعد نجاح الامر سيظهر التالي:
[HTML] Created symlink /dev/work -> /dev/hdb1
Added /dev/work to /etc/sysconfig/devlabel
[/HTML]
وهنا انا استخدمت devlabel في ربط /dev/hdb1 الى /dev/work
الان انسى /dev/hdb1 وتعامل مع النظام ان البرتيشن بأسم /dev/work بما في ذلك اعدادت fstab او اية اعدادت اخرى
الان اذا تغيرت اسماء البرتيشنات الحقيقية فأن اداة devlabel سوف تستطيع ان تحدد البرتيشن حتى بعد تغير اسمه وذلك بأستخدام المعرف UUID .. والذي ذكرنا انه يختلف من برتيشن لاخر
لمعرفة ال uuid لبرتيشن معين:
[HTML]# devlabel printid -d /dev/hda1
I:202020202020202020202020334b573544595336ST94019A sector63[/HTML]
لالغاء ربط احد البرتيشنات, على سبيل المثال:
[HTML]# devlabel remove -s /dev/work[/HTML]
لمعرفة حالة devlable:
[HTML]devlabel status
brw-r----- root disk /dev/tata -> /dev/hda1[/HTML]
والامر التالي:
devlabel restart
يتم تنفيذه تلقائيا عن طريق السكربت /etc/rc.sysinit في كل مرة اعادة تشغيل النظام والذي يجعل الاداة تعيد قراءة الملف /etc/sysconfig/devlabel ولتتأكد ان البرتيشن /dev/hdb1 كما في مثالنا ما زال موجود
اما في حالة اذا ال symbolic link غلط .. فالاداة ستقوم بالبحث عن الموقع او الاسم الجديد للبرتيشن بناءا على المعرف الخاص به UUID وعندما تجده ستقوم بتصحيح وعمل update لل symbolic link ليشر الى المكان الجديد للبرتيشن ..
كل ذلك يحدث دون تدخل منك وبالتالي سيبقى /dev/work صالحا للاستخدام دائما ولن تواجه مشاكل مع التسمية
اذا هناك نقاط غير واضحه اعلموني بذلك وسأعيد شرحها
هناك العديد من المستخدمين مركبين اكثر من هاردديسك في الجهاز .. وكما نعلم ان لينوكس يتعامل معها بسهولة
واعتقد ان هناك العديد من الموضوعات هنا في المنتدى شرحت طريقة تسمية ال Devices وخصوصا الهارد ديسك والبرتيشينات .. ارجو البحث والرجوع اليها
اذن مالذي يشرحه هذا الموضوع؟
خذ المثال التالي
انت شغال على لينوكس ومركب ثلاثة harddisks من نوع IDE
طبعا لينوكس سيسمي اول هارد hda والثاني hdb والثالث hdc
وكل هارد عليه اكثر من برتيشن ومعلومات ال mount للبرتيشينات موجوده في ملف fstab اللي تم شرحه ايضا في موضوعات سابقة
وسنفرض انك عامل mount ل /dev/hdc1 على /data
الان لنجرب التالي اغلق الجهاز وقم بأزالة الهارد ديسك الثاني وهو hdb ثم اعد تشغيل الجهاز
ستجد ان البيانات في /data غير موجوده مع انها على hdc واللي لسه موجود في الجهاز
ويرجع السبب ان لينيكس قام تلقائيا بتسمية hdc الى hdb وذلك بعد ازالة الهارد الثاني والذي كان بأسم hdb .. اذن اصبح لا وجود ل /dev/hdc1
اعتقد الصورة وضحت
الحل:
كل هارد ديسك له معرف او identifier فريد خاص به يطلق عليه UUID
واداة devlabel تسخدم هذا المعرف لتعريف البرتيشينات وعمل symbolic link لها بين المعرف والهارد
انا عارف ان محدش فاهم حاجه .. بس ان شاء الله بعد المثال كله هيكون تمام
نزل الاداة من http://linux.dell.com/devlabel/devlabel.html
موجودة ايضا في صيغة rpm تعمل على انظمة ريدهات والانظمة المتوافقه معها
بعد التثبيت
على فرض انك مركب اربع هاردات الهارد الرابع به هذا البرتيشن /dev/hdb1
طبعا زي ما عرفنا ان اي هارد من الثلاثه تمت ازلته فالتسمية لن تكون صحيحة والحل انك تنفذ التالي:
[HTML]devlabel add -d /dev/hdb1 -s /dev/work[/HTML]
بعد نجاح الامر سيظهر التالي:
[HTML] Created symlink /dev/work -> /dev/hdb1
Added /dev/work to /etc/sysconfig/devlabel
[/HTML]
وهنا انا استخدمت devlabel في ربط /dev/hdb1 الى /dev/work
الان انسى /dev/hdb1 وتعامل مع النظام ان البرتيشن بأسم /dev/work بما في ذلك اعدادت fstab او اية اعدادت اخرى
الان اذا تغيرت اسماء البرتيشنات الحقيقية فأن اداة devlabel سوف تستطيع ان تحدد البرتيشن حتى بعد تغير اسمه وذلك بأستخدام المعرف UUID .. والذي ذكرنا انه يختلف من برتيشن لاخر
لمعرفة ال uuid لبرتيشن معين:
[HTML]# devlabel printid -d /dev/hda1
I:202020202020202020202020334b573544595336ST94019A sector63[/HTML]
لالغاء ربط احد البرتيشنات, على سبيل المثال:
[HTML]# devlabel remove -s /dev/work[/HTML]
لمعرفة حالة devlable:
[HTML]devlabel status
brw-r----- root disk /dev/tata -> /dev/hda1[/HTML]
والامر التالي:
devlabel restart
يتم تنفيذه تلقائيا عن طريق السكربت /etc/rc.sysinit في كل مرة اعادة تشغيل النظام والذي يجعل الاداة تعيد قراءة الملف /etc/sysconfig/devlabel ولتتأكد ان البرتيشن /dev/hdb1 كما في مثالنا ما زال موجود
اما في حالة اذا ال symbolic link غلط .. فالاداة ستقوم بالبحث عن الموقع او الاسم الجديد للبرتيشن بناءا على المعرف الخاص به UUID وعندما تجده ستقوم بتصحيح وعمل update لل symbolic link ليشر الى المكان الجديد للبرتيشن ..
كل ذلك يحدث دون تدخل منك وبالتالي سيبقى /dev/work صالحا للاستخدام دائما ولن تواجه مشاكل مع التسمية
اذا هناك نقاط غير واضحه اعلموني بذلك وسأعيد شرحها
تعليق