الاسم
losetup - إعداد
والتحكم في
أجهزة
الحلقة
موجز
إعداد
جهاز حلقة:
losetup [خيارات]
-f|جهاز_حلقة
ملف
الحصول
على
المعلومات:
losetup [-l]
[-a|جهاز_حلقة]
losetup -j ملف
[-o إزاحة]
إعادة
معايرة حجم
جهاز حلقة:
losetup -c loopdev
فصل أجهزة
الحلقة:
losetup -d loopdev ...
losetup -D
منع أجهزة
الحلقة من
أن تُدرج في
القائمة:
losetup --remove
جهاز_حلقة
...
الوصف
يُستخدم
losetup لربط
أجهزة
الحلقة
بملفات
عادية أو
أجهزة
كتلية،
ولفصل
أجهزة
الحلقة،
وللاستعلام
عن حالة
جهاز
الحلقة. إذا
أُعطي
المعامل loopdev
فقط، تُعرض
حالة جهاز
الحلقة
المقابل.
وإذا لم
يُعطَ أي
خيار،
تُعرض جميع
أجهزة
الحلقة.
لاحظ أن
تنسيق
المخرج
القديم (أي
losetup -a) ذو
السلاسل
النصية
المفصولة
بفاصلة
مهجور
لصالح
تنسيق
المخرج --list.
من الممكن
إنشاء عدة
أجهزة حلقة
مستقلة
لنفس ملف
النسخ
الاحتياطي.
هذا
الإعداد قد
يكون
خطيراً،
ويمكن أن
يسبب
فقداناً
للبيانات
وفساداً
وتجاوزاً
للكتابة.
استخدم --nooverlap
مع --find أثناء
الإعداد
لتجنب هذه
المشكلة.
إعداد
جهاز
الحلقة ليس
عملية ذرية
عند
استخدامه
مع --find، ولا
يحمي losetup هذه
العملية
بأي قفل. عدد
المحاولات
مقيد
داخلياً
بحد أقصى 16.
يُوصى
باستخدام
flock(1) مثلاً
لتجنب
التصادم في
حالات
الاستخدام
المتوازي
بكثافة.
الخيارات
يمكن أن
يتبع
معاملات
الحجم (حجم)
والإزاحة
(إزاحة)
لواحق
مضاعفة KiB (=1024)،
و MiB (=1024*1024)، وهكذا
لـ GiB و TiB و PiB و EiB و ZiB
و YiB (اللاحقة
"iB"
اختيارية،
مثلاً "K"
لها نفس
معنى "KiB") أو
اللواحق KB (=1000)،
و MB (=1000*1000)، وهكذا
لـ GB و TB و PB و EB و ZB و
YB.
-a، --all
تُعرض
حالة جميع
أجهزة
الحلقة.
لاحظ أنه لا
يمكن
للمستخدمين
غير الجذر (non-root)
الوصول إلى
جميع
المعلومات.
انظر أيضاً
--list. تنسيق
المخرج
القديم (كما
يُطبع دون
--list) مهجور.
-d، --detach loopdev...
فصل
الملف أو
الجهاز
المرتبط
بجهاز
(أجهزة)
الحلقة
المحددة.
لاحظ أنه
منذ
الإصدار v3.7 من
نواة لينكس
تُستخدم
تقنية
"تدمير
الجهاز
الكسول".
عملية
الفصل لم
تعد تُرجع
خطأ EBUSY إذا
كان الجهاز
مستخدماً
بنشاط من
قبل
النظام،
ولكن تُوضع
عليه علامة
التصفية
الآلية
ويُدمر
لاحقاً.
وحتى لو لم
يكن الجهاز
مستخدماً،
يمكن تدمير
جهاز
الحلقة
لاحقاً. إذا
كنت بحاجة
إلى انتظار
الإزالة
الكاملة
لجهاز
الحلقة،
استدعِ udevadm settle
بعد losetup.
-D، --detach-all
تُفصل
جميع أجهزة
الحلقة
المرتبطة.
-f، --find
[ملف]
يُبحث عن
أول جهاز
حلقة غير
مستخدم. إذا
وُجد معامل
ملف،
يُستخدم
الجهاز
الذي عُثر
عليه كجهاز
حلقة. بخلاف
ذلك، يُطبع
اسمه فقط.
--show
يُعرض
اسم جهاز
الحلقة
المعين إذا
وُجد
الخيار -f
ومعامل
ملف.
-L، --nooverlap
التحقق
من وجود
تعارضات
بين أجهزة
الحلقة
لتجنب
الموقف
الذي يتم
فيه مشاركة
ملف النسخ
الاحتياطي
نفسه بين
أكثر من
جهاز حلقة.
إذا كان
الملف
مستخدماً
بالفعل
بواسطة
جهاز آخر،
فأعد
استخدام
الجهاز
بدلاً من
إنشاء جهاز
جديد. هذا
الخيار
منطقي فقط
مع --find.
-j، --associated
ملف [-o
إزاحة]
تُعرض
حالة جميع
أجهزة
الحلقة
المرتبطة
بالملف
(ملف)
المعطى.
-o، --offset
الإزاحة
تُحرك
بداية
البيانات
بمقدار
إزاحة
بايت داخل
الملف أو
الجهاز
المحدد.
يمكن أن
يتبع
إزاحة
لواحق
مضاعفة؛
انظر
أعلاه.
--loop-ref
سلسلة_محارف
اضبط
سلسلة
المرجع.
المبدئي
المتوافق
مع
الإصدارات
السابقة هو
استخدام
اسم ملف
النسخ
الاحتياطي
كمرجع في ioctl
لإعداد
الحلقة
(المعروف
باسم lo_file_name).
يتجاوز هذا
الخيار هذا
السلوك
المبدئي
ويضبط
المرجع على
الـ سلسلة.
يمكن
استخدام
المرجع
بواسطة udevd في
/dev/loop/by-ref. لا
تستخدم
نواة لينكس
المرجع على
الإطلاق،
ولكن يمكن
استخدامه
بواسطة بعض
الأدوات
القديمة
التي لا
تستطيع
قراءة ملف
النسخ
الاحتياطي
من sysfs. المرجع
قابل
للقراءة
فقط
للمستخدم
الجذر (انظر
--output +REF) وهو
محدود بـ 64
بايت.
--sizelimit حجم
تُضبط
نهاية
البيانات
بما لا
يتجاوز
حجم بايت
بعد بداية
البيانات.
يمكن أن
يتبع حجم
لواحق
مضاعفة؛
انظر
أعلاه.
-b، --sector-size
حجم
ضبط حجم
القطاع
المنطقي
لجهاز
الحلقة
بالبايت
(منذ لينكس 4.14).
يمكن
استخدام
الخيار عند
إنشاء جهاز
حلقة جديد
وكذلك كأمر
مستقل
لتعديل حجم
قطاع جهاز
حلقة موجود
بالفعل.
-c، --set-capacity loopdev
يُجبر
برنامج
تشغيل
الحلقة على
إعادة
قراءة حجم
الملف
المرتبط
بجهاز
الحلقة
المحدد.
-P، --partscan
إجبار
النواة على
مسح جدول
الأقسام
على جهاز
حلقة تم
إنشاؤه
حديثاً.
لاحظ أن
تحليل جدول
الأقسام
يعتمد على
أحجام
القطاعات.
الحجم
المبدئي
للقطاع هو 512
بايت، وإلا
فستحتاج
إلى
استخدام
الخيار --sector-size
جنباً إلى
جنب مع --partscan.
-r، --read-only
يُعد
جهاز حلقة
للقراءة
فقط.
--direct-io[=on|off]
تمكين أو
تعطيل
الإدخال/الإخراج
المباشر
لملف النسخ
الاحتياطي.
المبدئي هو
off. سيؤدي
تحديد --direct-io أو
--direct-io=on إلى
تمكينه.
ولكن، يمكن
توفير --direct-io=off
لإيقاف
تشغيله
صراحةً.
-l، --list
إذا حُدد
جهاز حلقة
أو الخيار
-a، فستُطبع
الأعمدة
المبدئية
إما لجهاز
الحلقة
المحدد أو
لجميع
أجهزة
الحلقة؛
المبدئي هو
طباعة
معلومات
حول جميع
الأجهزة.
انظر أيضاً
--output، و --noheadings، و
--raw، و --json.
-O، --output
عمود[,عمود]...
تحديد
الأعمدة
التي
ستُطبع
لمخرجات --list.
استخدم --help
للحصول على
قائمة
بجميع
الأعمدة
المتاحة.
--output-all
أخرج
كافة
الأعمدة
المتاحة.
-n، --noheadings
عدم
طباعة
العناوين
لتنسيق
مخرجات --list.
--raw
يُستخدم
تنسيق
المخرج
الخام لـ --list.
-J، --json
يُستخدم
تنسيق JSON
لمخرج --list.
--remove
جهاز_حلقة...
أزل جهاز
(أو أجهزة)
الحلقة
المحددة.
يجب أن يكون
جهاز
الحلقة غير
مستخدم (غير
مرتبط بأي
ملف نسخ
احتياطي).
يزيل هذا
الخيار
عقدة
الجهاز من
النظام. في
معظم
الحالات،
يكون --detach
كافياً
للاستخدام
العادي.
انظر قسم
دورة حياة
جهاز
الحلقة
أدناه.
-h، --help
اعرض نص
المساعدة
ثم اخرج.
-V، --version
اعرض
الإصدار
واخرج.
دورة حياة
جهاز
الحلقة
تمر أجهزة
الحلقة
بعدة حالات
خلال دورة
حياتها:
إنشاء
عندما
يربط losetup
جهاز حلقة
بملف نسخ
احتياطي،
فإنه ينشئ
عقدة
الجهاز
آلياً
(مثلاً، /dev/loop0)
إذا لم تكن
موجودة
بالفعل.
يحدث هذا
عند الطلب
عند
استخدام
خيارات مثل
-f أو تحديد
جهاز حلقة
صراحةً.
وُشئ
الجهاز
باستخدام ioctl
المسمى LOOP_CTL_ADD.
فصل
يفصل
الخيار -d (--detach)
ملف النسخ
الاحتياطي
عن جهاز
الحلقة
باستخدام ioctl
المسمى LOOP_CLR_FD.
بعد الفصل،
تبقى عقدة
جهاز
الحلقة في /dev
ويمكن
إعادة
استخدامها
لملف نسخ
احتياطي
آخر. استخدم
lsblk -a لرؤية
جميع عقد
أجهزة
الحلقة،
بما في ذلك
غير
المستخدمة.
إزالة
يزيل
الخيار --remove
عقدة جهاز
الحلقة
تماماً من
النظام
باستخدام ioctl
المسمى LOOP_CTL_REMOVE.
يجب فصل
الجهاز
أولاً (ألا
يكون
مرتبطاً
بأي ملف نسخ
احتياطي).
بعد
الإزالة،
تختفي عقدة
الجهاز من
/dev.
التعمية
لم يعد Cryptoloop
متاحاً
لصالح dm-crypt.
لمزيد من
التفاصيل
انظر cryptsetup(8).
حالة
الخروج
يُرجع losetup
القيمة 0 عند
النجاح،
وقيمة غير
صفرية عند
الفشل.
عندما يعرض
losetup حالة
جهاز حلقة،
فإنه يُرجع 1
إذا كان
الجهاز غير
مضبوط، و2
إذا حدث خطأ
منع من
تحديد حالة
الجهاز.
ملاحظات
منذ
الإصدار 2.37
يستخدم losetup
تقنية LOOP_CONFIGURE ioctl
لإعداد
جهاز حلقة
جديد
بواسطة
نداء ioctl واحد.
تستخدم
الإصدارات
القديمة LOOP_SET_FD
و LOOP_SET_STATUS64 ioctls
للقيام
بنفس
الشيء.
البيئة
LOOPDEV_DEBUG=all
يفعّل
مخرجات
التنقيح.
LIBSMARTCOLS_DEBUG=all
يُفعّل
مخرجات
تصحيح
أخطاء libsmartcols.
LIBSMARTCOLS_DEBUG_PADDING=on
يستخدم
محارف حشو
مرئية.
الملفات
/dev/loop[0..N]
أجهزة
كتلية
حلقية
/dev/loop-control
جهاز
التحكم
بالحلقة
مثال
يمكن
استخدام
الأوامر
التالية
كمثال على
استخدام
جهاز
الحلقة.
# dd if=/dev/zero of=~/file.img bs=1024k count=10
# losetup --find --show ~/file.img
/dev/loop0
# mkfs -t ext2 /dev/loop0
# mount /dev/loop0 /mnt
...
# umount /dev/loop0
# losetup --detach /dev/loop0
المؤلفين
Karel Zak <kzak@redhat.com>،
بناءً على
الإصدارة
الأصلية من
Theodore Ts’o <tytso@athena.mit.edu>.