منبع اصلی نوشتار زیر در این لینک قرار دارد

loop device چیست و ایجاد آن در لینوکس

یک loop device این امکان می دهد تا یک فایل معمولی را به عنوان یک block device (یک هارد دیسک) شبیه سازی کنید. داده ها می توانند همانند یک دیسک بر روی file شبیه سازی شده به عنوان block device نوشته شوند یا از روی آن خوانده شوند. البته قطعا دیسک های فیزیکی و واقعی بر خلاف دیسک های منطقی شبیه سازی شده در غالب یک فایل حجم و اندازه بیشتری دارند. loop device ها با 8 دیوایس dev/loop0/ تا dev/loop7/ نامگذاری شده اند و هر کدام می توانند به عنوان یک block device مجزا و واحد استفاده شوند. برای تنظیم کردن loop device و کار کردن با آنها نیاز به دسترسی (مجوز) root دارید. loop device ها هر یک می توانند به عنوان یک block device کار کنند به طوری که می توانید بر روی آنها سیستم فایل ایجاد کنید و این سیستم فایل را به صورت یک دیسک معمولی mount کنید یا اینکه پارتیشن بندی را بر روی آن انجام دهید.

برای ایجاد آنها (فایل مورد نظر) باید از دستور dd استفاده شود. مطابق با این مطلب dd دستوری است که فایل را با اندازه تعیین شده ایجاد می کند. بطور مثال فایلی با اندازه 10 مگابایت. ایجاد آن شامل دو مرحله است: نخست ایجاد فایل برای اختصاص دادن به loop device و سپس mount کردن آن بر روی یک نقطه اتصال مانند یک دیارکتوری زیر دایرکتوری mnt/). دستور losetup برای اختصاص فایل ایجاد شده به یک loop device استفاده می شود. دستور losetup در سیستم عامل لینوکس و دستور lofiadm در سیستم عامل سولاریس برای اختصاص فایل به یک loop device موجود هستند. دومین گام از دستور mount با سوئیچ o- برای اتصال دیوایس به نقطه اتصال موجود بر روی دیسک استفاده می شود. به طور مثال برای ایجاد یک فایل به اندازه 10 مگابایت و اختصاص آن به یک loop device و اتصال آن به نقطه اتصال به صورت زیر عمل کنید.

  • دستور dd برای ایجاد فایلی به اندازه 10 مگابایت

dd if=/dev/zero of=/tmp/disk count=20480

  • ایجاد سیستم فایل بر روی آن

mkfs.ext4 /tmp/disk1

اگر مانند شکل زیر اعلان Proceed anyway داده شد آنرا y انتخاب کنید.

  • ایجاد نقطه اتصال

mkdir /disk1

  • اتصال فایل ایجاد شده به نقطه اتصال
mount -o loop /tmp/disk1 /disk1
با انجام دستور های بالا فایلی به نام disk1 به اندازه 10 مگابایت در زیر دایرکتوری tmp/ با دستور dd ایجاد کردیم و سپس با دستور mkfs.ext4 سیستم فایل را بر روی آن نصب کردیو در نهایت با دستور mount -o loop فایل ایجاد شده که از این پس شبیه یک block device (هارد دیسک) عمل می کند را به دایرکتوری disk1/ متصل کردیم.
یکی از کاربرد های loop device ها برای پیاده سازی و ایجاد Disk های ASM در اوراکل است. برای امتحان کردن آن با دستور cd به دایرکتوری disk1/ بروید و سپس دستور pwd را بزنید. یا یک فایل با دستور touch یا یک دایرکتوری با دستور cp بسازید.
cd /disk1
pwd
touch file1
mkdir dir1
ls -l
دستور mount را اجرا کنید و خواهید دید که فایل به عنوان یک دیسک بر روی دایرکتوری disk1/ متصل شده است.



برچسب ها : , , , , ,