| DMSETUP(8) | MAINTENANCE COMMANDS | DMSETUP(8) |
نام (NAME)
dmsetup - ابزار سطح پایین پیکربندی و مدیریت نگاشتگر دستگاه (Device-Mapper)
خلاصه دستور (SYNOPSIS)
- dmsetup
- clear device_name
- dmsetup
- create device_name [-n|--notable|--table table|table_file] [--readahead [+]sectors|auto|none] [-u|--uuid uuid] [--addnodeoncreate|--addnodeonresume]
- dmsetup
- create --concise [concise_device_specification]
- dmsetup
- deps [-o options] [device_name ...]
- dmsetup
- help [-c|-C|--columns]
- dmsetup
- info [device_name ...]
- dmsetup
- info -c|-C|--columns [--count count] [--interval seconds] [--noheadings|--headings none|abbrev|full|0|1|2] [-o fields] [-O|--sort sort_fields] [--nameprefixes] [--separator separator] [device_name]
- dmsetup
- load device_name [--table table|table_file]
- dmsetup
- ls [--target target_type] [-o options] [--exec command] [--tree]
- dmsetup
- mangle [device_name ...]
- dmsetup
- measure [device_name ...]
- dmsetup
- message device_name sector message
- dmsetup
- mknodes [device_name ...]
- dmsetup
- reload device_name [--table table|table_file]
- dmsetup
- remove [-f|--force] [--retry] [--deferred] device_name ...
- dmsetup
- remove_all [-f|--force] [--deferred]
- dmsetup
- rename device_name new_name
- dmsetup
- rename device_name --setuuid uuid
- dmsetup
- resume device_name ... [--addnodeoncreate|--addnodeonresume] [--noflush] [--nolockfs] [--readahead [+]sectors|auto|none]
- dmsetup
- setgeometry device_name cyl head sect start
- dmsetup
- splitname device_name [subsystem]
- dmsetup
- stats command [options]
- dmsetup
- status [--target target_type] [--noflush] [device_name ...]
- dmsetup
- suspend device_name ... [--nolockfs] [--noflush]
- dmsetup
- table [--concise] [--target target_type] [--showkeys] [device_name ...]
- dmsetup
- targets
- dmsetup
- udevcomplete cookie
- dmsetup
- udevcomplete_all [age_in_minutes]
- dmsetup
- udevcookie
- dmsetup
- udevcreatecookie
- dmsetup
- udevflags cookie
- dmsetup
- udevreleasecookie [cookie]
- dmsetup
- version
- dmsetup
- wait device_name [--noflush] [event_nr]
- dmsetup
- wipe_table device_name ... [-f|--force] [--noflush] [--nolockfs]
devmap_name major minor
devmap_name major:minor
توضیحات (DESCRIPTION)
دستور dmsetup دستگاههای منطقی را که از درایور نگاشتگر دستگاه (device-mapper) استفاده میکنند، مدیریت میکند. دستگاهها با بارگذاری یک جدول نگاشت ایجاد میشوند که برای هر سکتور (۵۱۲ بایت) در دستگاه منطقی، یک هدف (target) مشخص میکند.
آرگومان اول dmsetup یک دستور است. آرگومان دوم نام دستگاه منطقی یا uuid آن است.
فراخوانی ابزار dmsetup بهصورت devmap_name (که بهطور معمول توزیع نمیشود و تنها به دلایل تاریخی پشتیبانی میشود) معادل است با: dmsetup info -c --noheadings -j major -m minor.
گزینهها (OPTIONS)
- --addnodeoncreate
- اطمینان از وجود گره /dev/mapper پس از اجرای dmsetup create.
- --addnodeonresume
- اطمینان از وجود گره /dev/mapper پس از اجرای dmsetup resume (پیشفرض با udev).
- --checks
- انجام بررسیهای تکمیلی روی عملیات درخواستی و گزارش مشکلات احتمالی. هنگام اشکالزدایی اسکریپتها مفید است. در برخی موارد ممکن است این بررسیها سرعت عملیات را بهطور چشمگیری کاهش دهند.
- -c|-C|--columns
- نمایش خروجی در قالب ستونها بهجای خطوط «Field: Value».
- --count count
- تعداد دفعات تکرار گزارش را مشخص میکند. این مقدار را روی صفر تنظیم کنید تا گزارش تا زمان توقف توسط کاربر ادامه یابد. فاصله زمانی پیشفرض یک ثانیه است.
- -f|--force
- تلاش بیشتر برای تکمیل عملیات (اجبار).
- -h|--help
- خلاصهای از دستورات موجود را به همراه فهرست فیلدهای گزارش (بهصورت اختیاری) نمایش میدهد (هممعنی با دستور help).
- --inactive
- هنگام دریافت هرگونه اطلاعات جدول نگاشت از هسته، بهجای جدول فعال (live)، اطلاعات مربوط به جدول غیرفعال گزارش داده میشود. نیازمند درایور هسته نسخه 4.16.0 یا بالاتر است.
- --interval seconds
- فاصله زمانی بین تکرارهای متوالی گزارشها را برحسب ثانیه مشخص میکند. اگر گزینه --interval مشخص شود اما --count تعیین نگردد، تکرار گزارشها تا زمان توقف ادامه مییابد. فاصله زمانی پیشفرض یک ثانیه است.
- --manglename auto|hex|none
- در زمان پردازش نامها و UUIDهای دستگاههای نگاشتگر دستگاه، هر کاراکتری را که در فهرست سفید (whitelist) نباشد با استفاده از mangling_mode تغییر شکل (mangle) میدهد. نامها و UUIDها در ورودی تغییر شکل داده میشوند و در خروجی بازگردانی میشوند (unmangled)، که حالت تغییر شکل یکی از موارد زیر است: auto (فقط در صورتی تغییر شکل میدهد که قبلاً انجام نشده باشد، اگر از قبل تغییر یافته باشد کاری انجام نمیدهد، در صورت حالت ترکیبی خطا میدهد)، hex (همیشه تغییر شکل را اعمال میکند) و none (بدون تغییر شکل). حالت پیشفرض auto است. فهرست سفید کاراکترها: 0–9, A–Z, a–z, #+-.:=@_. این فهرست سفید توسط udev نیز پشتیبانی میشود. هر کاراکتری که در فهرست سفید نباشد با مقدار هگزادسیمال آن (دو رقم) با پیشوند \x جایگزین میشود. حالت تغییر شکل را میتوان از طریق متغیر محیطی DM_DEFAULT_NAME_MANGLING_MODE نیز تنظیم کرد.
- -j| --major major
- شماره عمده (major) دستگاه را مشخص میکند.
- -m|--minor minor
- شماره فرعی (minor) دستگاه را مشخص میکند.
- -n|--notable
- هنگام ایجاد یک دستگاه، هیچ جدول نگاشتی بارگذاری نشود.
- --nameprefixes
- افزودن پیشوند "DM_" بهعلاوه نام فیلد به خروجی. در ترکیب با گزینه --noheadings برای تولید فهرستی از جفتهای field=value جهت تنظیم متغیرهای محیطی مفید است (برای نمونه، در قوانین udev(7) ).
- --noheadings
- حذف خط عناوین هنگام استفاده از خروجی ستونی.
- --headings none|abbrev|full|0|1|2
- نوع خط
عناوین
مورد
استفاده
برای خروجی
ستونی.
none یا 0 – بدون عناوین.
abbrev یا 1 – نامهای اختصاری ستونها.
full یا 2 – نامهای کامل ستونها. - --noflush
- هنگام تعلیق یک دستگاه، عملیات I/O معلق را تخلیه (flush) نمیکند، یا هنگام دریافت وضعیت thin-pool، متادیتای thin-pool را کامیت نمیکند.
- --nolockfs
- تلاشی برای همگامسازی سیستمفایل انجام نمیدهد، برای نمونه هنگام تعلیق یک دستگاه.
- --noopencount
- به هسته اطلاع میدهد که تعداد ارجاعات باز بودن (open reference count) دستگاه را ارائه ندهد.
- --noudevrules
- به udev اجازه مدیریت گرهها را برای دستگاههای موجود در پوشه نگاشتگر دستگاه نمیدهد.
- --noudevsync
- هنگام ایجاد، تغییر نام یا حذف دستگاهها، با udev همگامسازی انجام نمیدهد.
- -o|--options options
- مشخص میکند که کدام فیلدها در خروجی نمایش داده شوند.
- --readahead [+]sectors|auto|none
- اندازه پیشخوانی (read ahead) را برحسب سکتور مشخص میکند. مقدار پیشفرض auto است که به هسته اجازه میدهد یک مقدار مناسب را بهطور خودکار انتخاب کند. پیشوند + به شما امکان میدهد حداقل مقداری را مشخص کنید که اگر کمتر از مقدار انتخابی هسته باشد، استفاده نخواهد شد. مقدار none معادل تعیین صفر است.
- -r|--readonly
- جدول نگاشت در حال بارگذاری را فقطخواندنی میکند.
- -S|--select selection
- فقط مواردی را که با معیارهای selection تطابق دارند پردازش میکند. اگر دستور در حال تولید خروجی گزارش باشد، افزودن ستون "selected" (با -o selected) همه سطرها را نمایش میدهد و اگر سطر با selection مطابقت داشته باشد عدد 1 و در غیر این صورت 0 را نشان میدهد. معیارهای انتخاب با تعیین نام ستونها و مقادیر معتبر آنها با استفاده از عملگرهای مقایسهای پشتیبانیشده تعریف میشوند. برای راهنمای سریع و مشاهده فهرست کامل نام ستونهای قابل استفاده در گزینش و مجموعه عملگرهای انتخابی پشتیبانیشده، خروجی دستور زیر را بررسی کنید: dmsetup info -c -S help
- --table table
- یک جدول نگاشت یکخطی را مستقیماً در خط فرمان مشخص میکند. برای اطلاعات بیشتر در مورد قالب جدول نگاشت به بخشهای زیر مراجعه کنید.
- استفاده از
کوکی (cookie) برای
همگامسازی
با udev.
نکته: باید برای عملیات یکسان از کوکی یکسان استفاده شود، یعنی ایجاد چندین دستگاه مختلف. ترکیب عملیات مختلف بر روی یک دستگاه منفرد توصیه نمیشود. - -u|--uuid uuid
- مشخص کردن uuid.
- -y|--yes
- پاسخ بله به تمام اعلانها بهطور خودکار.
- -v|--verbose [-v|--verbose]
- تولید خروجی با جزئیات بیشتر. برای افزایش جزئیات تا ۴ بار تکرار کنید (-vvvv): گزینه -vv پیامهای اشکالزدایی را فعال میکند، گزینه -vvv زمان سپریشده پس از هر ioctl را اضافه میکند، گزینه -vvvv نام فایل مبدأ و شماره خطوط را درج میکند.
- --verifyudev
- در صورت فعال بودن همگامسازی udev، بررسی میشود که عملیات udev بهدرستی انجام شود و در غیر این صورت تلاش میشود بعداً گرههای دستگاه اصلاح گردند.
- --version
- نمایش نسخه کتابخانه و درایور هسته.
دستورات (COMMANDS)
clear device_name
جدول نگاشت
موجود در
اسلات جدول
غیرفعال را
برای device_name
نابود
میکند.
create device_name
[-n|--notable|--table table|table_file]
[--readahead [+]sectors|auto|none]
[-u|--uuid uuid]
[--addnodeoncreate|--addnodeonresume]
دستگاهی با
نام
دادهشده
ایجاد
میکند. اگر
table یا table_file
ارائه شود،
جدول نگاشت
بارگذاری
شده و فعال (live)
میشود. در
غیر این
صورت جدول
از ورودی
استاندارد
خوانده
میشود مگر
آنکه از --notable
استفاده
شود. شناسه
اختیاری uuid
میتواند
در دستورات
بعدی dmsetup
بهجای device_name
استفاده
شود. در صورت
موفقیت،
دستگاه در
جدول نگاشت
ظاهر
میشود و
برای
دستگاه
فعال گره
/dev/mapper/device_name ایجاد
میگردد.
برای
اطلاعات
بیشتر
درباره
قالب جدول
نگاشت به
بخشهای
زیر مراجعه
کنید.
create --concise
[concise_device_specification]
یک یا چند
دستگاه را
از روی
مشخصات
فشرده
دستگاه
ایجاد
میکند. هر
دستگاه با
یک فهرست
جداشده با
کاما مشخص
میشود: name, uuid,
minor number, flags, comma-separated table lines.
پرچمها
بهطور
پیشفرض
خواندن-نوشتن
(rw) هستند یا
میتوانند
فقطخواندنی
(ro) باشند.
شناسههای
Uuid، minor number و flags
اختیاری
هستند،
بنابراین
این فیلدها
میتوانند
خالی باشند.
یک
نقطه-ویرگول
مشخصات
دستگاههای
مختلف را از
هم جدا
میکند.
برای اسکیپ
کردن
کاراکتر
بعدی از
بکاسلش
استفاده
کنید، برای
نمونه یک
کاما یا
نقطه-ویرگول
در نام یا
جدول نگاشت.
همچنین بخش
قالب فشرده
(CONCISE FORMAT) در زیر
را ببینید.
deps [-o options]
[device_name ...]
فهرستی از
دستگاههای
ارجاع
دادهشده
توسط جدول
فعال را
برای
دستگاه
مشخصشده
نمایش
میدهد. نام
دستگاهها
در خروجی
میتواند
با
گزینههای
زیر
سفارشیسازی
شود: devno (جفت major
و minor،
استفادهشده
بهطور
پیشفرض)، blkdevname
(نام دستگاه
بلوکی)، devname
(نام نگاشت
برای
دستگاههای
نگاشتگر
دستگاه، در
غیر این
صورت معادل
blkdevname).
help [-c|-C|--columns]
خلاصهای
از دستورات
موجود را
نمایش
میدهد و
میتواند
بهطور
اختیاری
شامل فهرست
فیلدهای
گزارش
باشد.
info [device_name ...]
اطلاعات
مختصری
درباره
دستگاه به
این شکل
نمایش
میدهد:
Read Ahead: sectors
Tables present: LIVE and/or INACTIVE
Open reference count
Last event sequence number (used by wait)
Major and minor device number
Number of targets in the live table
UUID
info -c|-C|--columns
[--count count]
[--interval seconds]
[--noheadings|--headings none|abbrev|full|0|1|2]
[-o fields]
[-O|--sort sort_fields]
[--nameprefixes]
[--separator separator] [device_name]
خروجی که
میتوانید
آن را
سفارشیسازی
کنید.
فیلدها با
کاما از
یکدیگر جدا
میشوند و
از فهرست
زیر انتخاب
میگردند:
name, major, minor, attr, open,
segments, events, uuid.
ویژگیها
عبارتند از:
(L)ive, (I)nactive, (s)uspended, (r)ead-only,
read-(w)rite. علامت '+'
را قبل از
فهرست قرار
دهید تا
بهجای
جایگزینی،
به
ستونهای
پیشفرض
افزوده شود.
علامت '-' را
قبل از هر
فیلد
مرتبسازی
قرار دهید
تا
مرتبسازی
معکوس روی
آن ستون
اعمال شود.
ls [--target target_type]
[-o options]
[--exec command] [--tree]
فهرست نام
دستگاهها.
بهطور
اختیاری
تنها
دستگاههایی
را فهرست
میکند که
دستکم یک
هدف از نوع
مشخصشده
دارند.
بهطور
اختیاری
برای هر
دستگاه یک
دستور را
اجرا
میکند. نام
دستگاه به
انتهای
دستور
ارائهشده
الحاق
میشود. نام
دستگاهها
در خروجی
میتواند
با
گزینههای
زیر سفارشی
شود: devno (جفت major
و minor،
استفادهشده
بهطور
پیشفرض)، blkdevname
(نام دستگاه
بلوکی)، devname
(نام نگاشت
برای
دستگاههای
نگاشتگر
دستگاه، در
غیر این
صورت معادل
blkdevname). گزینه --tree
وابستگیهای
بین
دستگاهها
را بهصورت
یک درخت
نمایش
میدهد. این
گزینه
فهرستی از
گزینهها
با
جداکننده
کاما را
میپذیرد.
برخی از
آنها
اطلاعات
نمایشدادهشده
برای هر گره
را مشخص
میکنند:
device / nodevice; blkdevname;
active, open, rw, uuid.
برخی دیگر
نحوه نمایش
درخت را
مشخص
میکنند: ascii,
utf, vt100; compact, inverted,
notrunc.
reload device_name
[--table table|table_file]
بارگذاری table
یا table_file در
اسلات جدول
غیرفعال
برای device_name. اگر
هیچکدام
ارائه
نشود، جدول
را از ورودی
استاندارد
میخواند.
mangle [device_name ...]
اطمینان
حاصل
میکند که
device_name و UUID
دستگاه
نگاشتگر
دستگاه
موجود، در
قالب تغییر
شکلیافته
(mangled) صحیح و
حاوی فقط
کاراکترهای
فهرست سفید
(پشتیبانیشده
توسط udev) باشد
و در صورت
لزوم تغییر
نام انجام
میدهد. هر
کاراکتری
که در فهرست
سفید نباشد
بر اساس
تنظیم --manglename
تغییر شکل
مییابد.
تغییر نام
خودکار فقط
برای نام
دستگاهها
عمل میکند
و برای UUID
دستگاهها
کار
نمیکند،
زیرا هسته
اجازه
تغییر دادن
UUID
دستگاههای
فعال را
نمیدهد.
هرگونه UUID
نادرست
تنها گزارش
میشود و
باید با
غیرفعال
کردن اولیه
دستگاه و
سپس
فعالسازی
مجدد آن با
حالت تغییر
شکل مناسب،
بهصورت
دستی اصلاح
شود (گزینه
--manglename را نیز
ببینید).
measure [device_name ...]
دادههایی
را نمایش
میدهد که
در صورت
راهاندازی
اندازهگیری
در زمان
جاری، توسط
device_name به
زیرسیستم IMA
گزارش
میشد. این
دستور
صرفاً برای
اشکالزدایی
است و در عمل
اندازهگیری
را آغاز
نمیکند.
message device_name sector
message
ارسال پیام
به هدف (target). اگر
به سکتور
نیازی نیست
از 0 استفاده
کنید.
mknodes [device_name ...]
اطمینان
حاصل
میکند که
گره موجود
در /dev/mapper برای
device_name صحیح
است. اگر هیچ
device_name ارائه
نشود،
اطمینان
حاصل
میکند که
تمام
گرههای
موجود در /dev/mapper
مربوط به
دستگاههای
نگاشتشدهای
هستند که در
حال حاضر
توسط
درایور
کرنل
نگاشتگر
دستگاه
بارگذاری
شدهاند، و
در صورت
لزوم
گرهها را
اضافه،
تغییر یا
حذف
میکند.
remove [-f|--force]
[--retry] [--deferred]
device_name ...
یک دستگاه
را حذف
میکند.
دستگاه
دیگر برای dmsetup
قابل
مشاهده
نخواهد بود.
دستگاههای
باز (open) را
نمیتوان
حذف کرد،
اما افزودن
--force جدول
نگاشت را با
جدولی
جایگزین
میکند که
همه عملیات
I/O را با خطا
مواجه
میسازد.
گزینه --deferred
حذف با
تأخیر
دستگاههای
باز را فعال
میکند -
دستگاه
هنگامی که
آخرین
کاربر آن را
ببندد حذف
خواهد شد.
قابلیت حذف
با تأخیر از
نسخه 4.27.0
درایور
نگاشتگر
دستگاه در
نسخه هسته
بالادستی 3.13
پشتیبانی
میشود. (از
dmsetup version برای
بررسی این
مورد
استفاده
کنید.) اگر
تلاشی برای
حذف دستگاه
ناموفق
باشد،
احتمالاً
به این دلیل
که فرآیندی
ناشی از
اجرای یک
قانون سریع
udev موقتاً
دستگاه را
باز کرده
است، گزینه
--retry موجب
میشود که
عملیات پیش
از اعلام
شکست، برای
چند ثانیه
مجدداً
تکرار شود.
گزینههای
--force و --udevcookie را
با یکدیگر
ترکیب
نکنید،
زیرا ممکن
است udev
پردازش
قوانین udev را
در میانه
جایگزینی
هدف با خطا
آغاز کند و
منجر به
نتایج
پیشبینینشده
شود.
remove_all [-f|--force]
[--deferred]
تلاش برای
حذف تمام
تعاریف
دستگاهها،
یعنی
بازنشانی
درایور (reset).
این دستور
همچنین پس
از آن mknodes را
اجرا
میکند. با
احتیاط
استفاده
کنید!
دستگاههای
باز را
نمیتوان
حذف کرد،
اما افزودن
--force جدول
نگاشت را با
جدولی
جایگزین
میکند که
همه عملیات
I/O را با خطا
مواجه
میسازد.
گزینه --deferred
حذف با
تأخیر
دستگاههای
باز را فعال
میکند -
دستگاه با
بسته شدن
توسط آخرین
کاربر حذف
خواهد شد.
قابلیت حذف
با تأخیر از
نسخه 4.27.0
درایور
نگاشتگر
دستگاه
موجود در
نسخه
بالادستی 3.13
هسته
پشتیبانی
میشود.
rename device_name new_name
تغییر نام
یک دستگاه.
rename device_name
--setuuid uuid
تنظیم uuid برای
دستگاهی که
بدون uuid
ایجاد شده
است. پس از
تنظیم، uuid
قابل تغییر
نیست.
resume device_name ...
[--addnodeoncreate|--addnodeonresume]
[--noflush] [--nolockfs]
[--readahead [+]sectors|auto|none]
خروج
دستگاه از
حالت تعلیق.
اگر یک جدول
نگاشت
غیرفعال
بارگذاری
شده باشد،
فعال
میشود. سپس
I/O به تعویق
افتاده
مجدداً
برای
پردازش در
صف قرار
میگیرد.
setgeometry device_name cyl
head sect start
تنظیم
هندسه
دستگاه
برحسب C/H/S.
splitname device_name
[subsystem]
نام دستگاه
دادهشده (device
name) را به
مؤلفههای
تشکیلدهنده
subsystem تفکیک
میکند.
زیرسیستم
پیشفرض LVM
است. در حال
حاضر LVM نام
دستگاهها
را با الحاق
نامهای
گروه حجم (Volume
Group)، حجم
منطقی (Logical Volume) و
هر لایه
داخلی با خط
تیره
بهعنوان
جداکننده
تولید
میکند. هر
خط تیره
درون
نامها
برای اسکیپ
شدن دو
برابر
میشود.
کدگذاری
دقیق ممکن
است در
نسخههای
بعدی بدون
اطلاع قبلی
تغییر کند،
بنابراین
توصیه
میکنیم
همیشه با
استفاده از
نسخه فعلی
این دستور
رمزگشایی
را انجام
دهید.
stats command [options]
مدیریت
نواحی آمار IO
برای
دستگاهها.
برای
جزئیات
بیشتر dmstats(8) را
ببینید.
status
[--target target_type]
[--noflush] [device_name ...]
نمایش
اطلاعات
وضعیت برای
هریک از
اهداف
دستگاه. با
گزینه --target،
تنها
اطلاعات
مربوط به
نوع هدف
مشخصشده
نمایش داده
میشود. با
گزینه --noflush،
هدف thin (از
نسخه 1.3.0)
هیچیک از
تغییرات
معلق را پیش
از گزارش
آمار خود بر
روی دیسک
کامیت
نمیکند.
suspend device_name ...
[--nolockfs] [--noflush]
تعلیق یک
دستگاه. هر
عملیات I/O که
قبلاً توسط
دستگاه
نگاشت شده
اما هنوز
کامل نشده
است تخلیه (flush)
خواهد شد.
هرگونه I/O
بعدی به آن
دستگاه تا
زمانی که
دستگاه در
حالت تعلیق
است به
تعویق
خواهد
افتاد. اگر
سیستمفایلی
روی دستگاه
باشد که از
این عملیات
پشتیبانی
کند، ابتدا
تلاشی برای
همگامسازی
(sync) آن انجام
میشود مگر
اینکه --nolockfs
مشخص شده
باشد. برخی
از اهداف
مانند
نسخههای
اخیر multipath
(اکتبر ۲۰۰۶)
ممکن است از
گزینه --noflush
پشتیبانی
کنند. این
گزینه به
I/Oهای معلقی
که هنوز به
دستگاه
نرسیدهاند
اجازه
میدهد
تخلیهنشده
باقی
بمانند.
table [--concise]
[--target target_type]
[--showkeys] [device_name ...]
جدول نگاشت
فعلی
دستگاه را
در قالبی
نمایش
میدهد که
میتوان با
دستورات create
یا load مجدداً
از آن
استفاده
کرد. با
گزینه --target،
تنها
اطلاعات
مربوط به
نوع هدف
مشخصشده
نمایش داده
میشود.
کلیدهای
رمزنگاری
واقعی در
خروجی جدول
برای اهداف
crypt و integrity پنهان
میشوند
مگر اینکه
پارامتر --showkeys
ارائه شود.
ارجاعات
کلید هسته
با پیشوند :
تحت تأثیر
این
پارامتر
قرار
نمیگیرند
و همیشه
نمایش داده
میشوند
(فقط برای
هدف crypt). با
گزینه --concise،
خروجی
بهصورت
فشرده در یک
خط ارائه
میشود. سپس
کاماها
نام، uuid،
شماره فرعی
دستگاه،
پرچمها ('ro'
یا 'rw') و جدول
نگاشت (در
صورت وجود)
را از هم جدا
میکنند.
نقطه-ویرگولها
دستگاهها
را جدا
میسازند.
بکاسلشها
کاماها،
نقطه-ویرگولها
یا
بکاسلشها
را اسکیپ
میکنند.
بخش قالب
فشرده (CONCISE FORMAT)
در زیر را
ببینید.
targets
نامها و
نسخههای
اهداف در
حال حاضر
بارگذاریشده
را نمایش
میدهد.
udevcomplete cookie
بیدار کردن
فرآیندهایی
که در
انتظار
اتمام
پردازش
کوکی
مشخصشده
توسط udev
هستند.
udevcomplete_all [age_in_minutes]
حذف تمام
کوکیهای
قدیمیتر
از تعداد
دقایق
مشخصشده.
هر فرآیندی
که روی یک
کوکی در
انتظار
باشد
بلافاصله
از سر گرفته
میشود.
udevcookie
فهرست تمام
کوکیهای
موجود.
کوکیها
سمافورهای
سراسری
سیستم
هستند که
کلیدهای
آنها با دو
بایت از پیش
تعیینشده
(0x0D4D)
پیشوندگذاری
شدهاند.
udevcreatecookie
یک کوکی
جدید برای
همگامسازی
اقدامات با
پردازش udev
ایجاد
میکند.
خروجی،
مقدار کوکی
است.
معمولاً
نیازی به
ایجاد کوکی
نداریم
زیرا dmsetup
بهطور
خودکار
آنها را
برای هر
اقدام
ایجاد کرده
و از بین
میبرد. با
این حال،
میتوانیم
بهطور
صریح یک
کوکی
بسازیم تا
چندین
اقدام را با
هم
گروهبندی
کرده و در
عوض تنها از
یک کوکی
استفاده
کنیم.
میتوانیم
با استفاده
از گزینه
--udevcookie کوکی
مورد
استفاده را
برای هر
دستور
مربوطه
تعریف کنیم.
همچنین
میتوانیم
این مقدار
را در متغیر
محیطی
فرآیند dmsetup با
نام DM_UDEV_COOKIE
صادر (export) کنیم
تا بهطور
خودکار در
تمام
دستورات
بعدی تا
زمان حذف
متغیر
استفاده
شود.
فراخوانی
این دستور
یک سمافور
سراسری در
سیستم
ایجاد
میکند که
باید با
فراخوانی
صریح دستور
udevreleasecookie پاکسازی
گردد.
udevflags cookie
مقدار cookie
دادهشده
را تجزیه
میکند و
هرگونه
پرچمهای
کنترلی udev
کدگذاریشده
را استخراج
مینماید.
خروجی در
قالب کلید
متغیر
محیطی است
که برای
استفاده در
قوانین udev
مناسب است.
اگر پرچم
نام نمادین
داشته
باشد،
خروجی به
شکل زیر است:
DM_UDEV_FLAG_<flag_name> = '1'،
DM_UDEV_FLAG<flag_position> = '1' در
غیر این
صورت.
پرچمهای udev
زیرسیستم
فاقد
نامهای
نمادین
هستند و این
پرچمها
همیشه
بهصورت:
DM_SUBSYSTEM_UDEV_FLAG<flag_position> = '1'.
گزارش
میشوند. در
مجموع ۱۶
پرچم udev وجود
دارد.
udevreleasecookie [cookie]
منتظر
تمامی
پردازشهای
معلق udev
مرتبط با
مقدار کوکی
دادهشده
میماند و
کوکی را
همراه با
سمافور
زیرین آن
پاکسازی
میکند. اگر
کوکی
مستقیماً
مشخص نشده
باشد،
دستور تلاش
میکند از
مقدار
تعریفشده
توسط متغیر
محیطی DM_UDEV_COOKIE
استفاده
کند.
version
نمایش
اطلاعات
نسخه.
wait device_name
[--noflush] [event_nr]
تا زمانی که
شمارنده
رویداد
برای device_name از event_nr
بیشتر شود،
متوقف
میشود (sleep).
برای
مشاهده
شماره
رویداد
برگرداندهشده
از -v
استفاده
کنید. برای
صبر کردن تا
زمان
فعالسازی
رویداد
بعدی، از info
برای یافتن
آخرین
شماره
رویداد
استفاده
کنید. با
گزینه --noflush،
هدف thin (از
نسخه 1.3.0)
هیچیک از
تغییرات
معلق را قبل
از گزارش
آماری خود
روی دیسک
کامیت
نمیکند.
wipe_table device_name ...
[-f|--force] [--noflush]
[--nolockfs]
منتظر
میماند تا
تمامی
عملیات I/O در
حال اجرا از
طریق
دستگاه
کامل شوند،
سپس جدول
نگاشت را با
جدولی جدید
جایگزین
میکند که
هرگونه I/O
ارسالی
جدید به
دستگاه را
با خطا
مواجه
میسازد. در
صورت
موفقیت،
این عمل
باید هر
دستگاهی را
که توسط
جدول(های)
دستگاه باز
نگه داشته
شده است،
آزاد کند.
قالب جدول (TABLE FORMAT)
هر خط از جدول نگاشت، یک هدف (target) منفرد را مشخص میکند و به شکل زیر است:
logical_start_sector num_sectors target_type target_args
انواع ساده هدف و آرگومانهای هدف عبارتند از:
linear destination_device start_sector
نگاشت خطی
مرسوم.
striped num_stripes chunk_size [destination
start_sector] ...
ایجاد یک
ناحیه
راهراه (striped).
برای نمونه
striped 2 32 /dev/hda1 0 /dev/hdb1 0
اولین چانک
(16 KiB) را به این
صورت نگاشت
میکند:
LV chunk 2 → hdb1, chunk 1
LV chunk 3 → hda1, chunk 2
LV chunk 4 → hdb1, chunk 2
و غیره.
- error
- هرگونه I/O به این ناحیه را با خطا مواجه میکند. برای آزمایش یا ایجاد دستگاههایی با حفره (hole) درون آنها کاربرد دارد.
- zero
- هنگام خواندن، بلوکهایی از صفر را برمیگرداند. هر دادهای که نوشته شود بی سر و صدا دور انداخته میشود. این یک معادل دستگاه بلوکی از سینک داده دستگاه کاراکتری /dev/zero شرح دادهشده در null(4) است.
اهداف پیچیدهتر عبارتند از:
- cache
- کارایی یک دستگاه بلوکی (مانند یک هارد دیسک چرخشی) را با مهاجرت پویای بخشی از دادههای آن به یک دستگاه کوچکتر و سریعتر (مانند یک SSD) بهبود میبخشد.
- crypt
- رمزنگاری شفاف دستگاههای بلوکی با استفاده از API رمزنگاری هسته (crypto API).
- delay
- خواندن و/یا نوشتن روی دستگاههای مختلف را به تأخیر میاندازد. برای آزمایش مفید است.
- flakey
- نگاشتی شبیه به هدف linear ایجاد میکند اما بهصورت دورهای رفتارهای نامطمئن و خطا از خود نشان میدهد. برای شبیهسازی خرابی دستگاهها هنگام آزمایش کاربرد دارد.
- mirror
- دادهها را روی دو یا چند دستگاه آینهسازی (mirror) میکند.
- multipath
- دسترسی را از طریق چندین مسیر به یک دستگاه واحد میانجیگری میکند.
- raid
- یک رابط به درایور RAID نرمافزاری هسته، یعنی md ارائه میدهد.
- snapshot
- پشتیبانی از اسنپشاتهای (تصاویر لحظهای) دستگاهها را فراهم میکند.
- thin, thin-pool
- از تخصیص پویای فضا (thin provisioning) در دستگاهها پشتیبانی میکند و همچنین پشتیبانی بهتری از اسنپشات ارائه میدهد.
برای کسب اطلاعات بیشتر درباره اهداف گوناگون، قالبهای جدول نگاشت آنها و خطوط وضعیت، لطفاً فایلهای موجود در دایرکتوری Documentation/device-mapper در درخت کد منبع هسته را مطالعه کنید. (ممکن است توزیع شما نسخهای از این اطلاعات را در پوشه مستندات بسته device-mapper گنجانده باشد.)
مثالها (EXAMPLES)
# A table to join two disks together 0 1028160 linear /dev/hda 0 1028160 3903762 linear /dev/hdb 0 # A table to stripe across the two disks, # and add the spare space from # hdb to the back of the volume 0 2056320 striped 2 32 /dev/hda 0 /dev/hdb 0 2056320 2875602 linear /dev/hdb 1028160
قالب فشرده (CONCISE FORMAT)
نمایش فشرده از یک یا چند دستگاه:
- یک کاما فیلدهای هر دستگاه را از هم جدا میکند.
- یک نقطه-ویرگول دستگاهها را جدا میکند.
نمایش یک دستگاه به شکل زیر است:
فیلدها عبارتند از:
- name
- نام دستگاه.
- uuid
- شناسه UUID دستگاه (یا خالی).
- minor
- شماره فرعی (minor) دستگاه. اگر خالی باشد، هسته یک شماره فرعی مناسب اختصاص میدهد.
- flags
- پرچمهای پشتیبانیشده عبارتند از:
- table
- یک خط از جدول نگاشت. بخش «قالب جدول» در بالا را ببینید.
مثالها (EXAMPLES)
# A simple linear read-only device test-linear-small,,,ro,\ 0 2097152 linear /dev/loop0 0,\ 2097152 2097152 linear /dev/loop1 0 # Two linear devices test-linear-small,,,,\ 0 2097152 linear /dev/loop0 0;\ test-linear-large,,,,\ 0 2097152 linear /dev/loop1 0,\ 2097152 2097152 linear /dev/loop2 0
متغیرهای محیطی (ENVIRONMENT VARIABLES)
- DM_DEV_DIR
- نام دایرکتوری دستگاهها. پیشفرض "/dev" است و باید یک مسیر مطلق باشد.
- DM_UDEV_COOKIE
- کوکی مورد استفاده برای تمام دستورات مربوطه جهت همگامسازی با پردازش udev. این یک جایگزین برای استفاده از گزینه --udevcookie است.
- DM_DEFAULT_NAME_MANGLING_MODE
- حالت پیشفرض تغییر شکل (mangling). پیشفرض "auto" است و یک جایگزین برای استفاده از گزینه --manglename است.
- DM_DEBUG_WITH_LINE_NUMBERS
- تنظیم روی 1 برای افزودن فایل مبدأ و شماره خط به پیامهای اشکالزدایی. بهطور خودکار توسط -vvvv فعال میشود.
نویسندگان (AUTHORS)
نسخه اصلی: Joe Thornber
همچنین ببینید (SEE ALSO)
| Mar 26 2025 | Linux |