إضافة Loop Devices جديدة

السلام عليكم ورحمة الله وبركاته

أستعمل ملفات iso بكثرة، ودائماً اعمل mount لها للوصول الى محتوياتها، بالضبط نفس طريقة برامج الـ Virtual Drive … ولكن قبل فترة واجهتني مشكلة وهي إني حاولت عمل mount لملف iso آخر غير الملفات التي قمت بعمل mount لها سابقاً وإذا تظهر لي هذه المشكلة:

mount: could not find any free loop device

بعدها عملت التالي:

ls -d /dev/loop*

وكان الناتج هو:

/dev/loop0  /dev/loop1  /dev/loop2  /dev/loop3  
/dev/loop4  /dev/loop5  /dev/loop6  /dev/loop7


يعني لدي 8 (ثمانية) من الـ loop devices فقط … وبما إني مستعملهم كلهم !!! فلم يعد هناك مكان لعمل mount لملف الـ iso الجديد !!!

ما هو العمل؟ أو الحل؟
الجواب: نقوم بإضافة loop devices جديدة وانتهى الموضوع …

تحذير: الحل هذا أنا عملته على توزيعة أوبنتو 8.04 فأرجوا ان تتأكد من توزيعتك قبل التطبيق !!!

أول حاجة لنقوم بإنشاء هذه الأجهزة (loop) من خلال الـ for loop التالي:

for i in $(seq 0 255); do
	mknod -m0660 /dev/loop$i b 7 $i
	chown root.disk /dev/loop$i
done

أو حمل السكربت من هنا —> أضغط

هذا سيقوم بعمل 256 جهاز loop لك وبالتالي لن تعاني من نقصان الـ loop devices بعد اليوم … للتأكد من وجودهم:

ls -d /dev/loop*

سترى الآن عدد كبير جداً منهم (256) واحد … طبعاً ربما يسأل سائل لماذا هم فقط 8 أو المسموح هو فقط 8؟
الجواب هو بإنه النواة هي التي قامت بتحديد ذلك، ولهذا عليك زيادتها … في بعض التوزيعات لن تستطيع زيادتها بالطريقة التي ذكرتها بالأعلى، ولهذا عليك زيادتها من خلال التالي:

/etc/modprobe.conf

وضع الخيار:

options loop max_loop=64

بعدها قم بحذف الموديول الخاص بـ loop وإعادته مرة أخرى من خلال الأمر:

rmmod loop && modprobe loop

أو قم بعمل إعادة تشغيل للنظام وسيعمل الأمر تلقائي. أذا أردت إضافته في توزيعة أوبنتو، فإنك تستطيع ذلك من خلال الملف:

vim /etc/modprobe.d/options

ملاحظة مهمة جداً: هذه الطريقة لن تضبط إذا كانت لديك ملفات iso موجودة mounted . عليك إخراجها ومن ثم التطبيق.

والآن أعمل mount لملفات الـ iso التي لديك براحتك ولن يقول لك احد ما عندي جهاز فارغ لحضرتك ::18

mount -o loop file.iso /mount-point/

ودمتم …