Post

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

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

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

1
mount: could not find any free loop device

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

1
ls -d /dev/loop*

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

1
2
/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 التالي:

1
2
3
4
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 بعد اليوم … للتأكد من وجودهم:

1
ls -d /dev/loop*

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

الجواب هو بإنه النواة هي التي قامت بتحديد ذلك، ولهذا عليك زيادتها … في بعض التوزيعات لن تستطيع زيادتها بالطريقة التي ذكرتها بالأعلى، ولهذا عليك زيادتها من خلال التالي:

1
/etc/modprobe.conf

وضع الخيار:

1
options loop max_loop=64

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

1
rmmod loop && modprobe loop

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

1
vim /etc/modprobe.d/options

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

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

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

ودمتم …

This post is licensed under CC BY 4.0 by the author.