| SG_MAP26(8) | SG3_UTILS | SG_MAP26(8) |
نام (NAME)
sg_map26 - نگاشت دستگاه عمومی SCSI (sg) به نام دستگاههای متناظر
خلاصه دستور (SYNOPSIS)
sg_map26 [--dev_dir=DIR] [--given_is=0|1] [--help] [--result=0|1|2|3] [--symlink] [--verbose] [--version] DEVICE
توضیحات (DESCRIPTION)
یک فایل ویژه (بلوکی یا کاراکتری) مرتبط با یک دستگاه SCSI را به دستگاه عمومی متناظر SCSI (sg) یا برعکس نگاشت میکند. همچنین میتوان یک فایل sysfs مانند '/sys/block/sda' یا '/sys/block/sda/dev' را به عنوان ورودی به آن داد.
بهجای نگاشت به یک دستگاه sg یا از آن، میتوان نام فایل sysfs منطبق با یک فایل ویژه دستگاه (یا برعکس) را درخواست کرد. این کار با استفاده از گزینههای 'result=2--' و 'result=3--' انجام میشود. این قابلیت علاوه بر دستگاههای SCSI، روی دستگاههای ATA (مانند 'dev/hdc') نیز کار میکند.
در این ابزار، واژه "نگاشتشده" (mapped) به یافتن رابطه میان یک گره عمومی SCSI (sg) و نام سطح بالاتر دستگاه SCSI یا برعکس اشاره دارد؛ برای نمونه '/dev/sg0' ممکن است به '/dev/sda' "نگاشت" شود. در صورتی که ماژول مربوطه بارگذاری نشده باشد، ممکن است نگاشتی وجود نداشته باشد. همچنین برخی دستگاههای SCSI وجود دارند که تنها از طریق گره sg قابل دسترسی هستند (مانند SAF-TE و برخی دستگاههای SES).
در این ابزار، واژه "منطبق" (matching) به نمایشهای مختلف یک دستگاه یکسان اشاره دارد که از طریق درایور مشابهی به آنها دسترسی پیدا میشود. به عنوان مثال، '/dev/hdc' و '/sys/block/hdc' معمولاً به یک دستگاه مشترک اشاره دارند و از این رو منطبق در نظر گرفته میشوند. یک مثال مرتبط دیگر این است که اگر '/dev/cdrom' پیوند نمادینی به '/dev/hdc' باشد، '/dev/cdrom' و '/dev/hdc' نیز منطبق به شمار میآیند.
توجه داشته باشید که این ابزار برای دسترسی به گرههای دستگاه ذخیرهسازی در دایرکتوری dev/ به مجوزهای کاربر ریشه نیاز دارد. در بسیاری از موارد میتوان از ابزار lsscsi به عنوان جایگزین استفاده کرد؛ ابزار lsscsi نیازی به مجوز ریشه ندارد زیرا اطلاعات مورد نیازش را از شبهسیستمفایل sysfs استخراج میکند.
برای نکات مربوط به گرههای دستگاه bsg و nvme، بخش دستگاههای BSG و NVME در زیر را مشاهده کنید.
گزینهها (OPTIONS)
آرگومانهای گزینههای بلند برای گزینههای کوتاه نیز اجباری هستند.
- -d, --dev_dir=DIR
- که در آن DIR دایرکتوری مورد نظر برای جستجوی فایلهای ویژه دستگاه حاصل (یا پیوندهای نمادین به آنها) است. تنها زمانی فعال است که 'result=0--' (پیشفرض) یا 'result=2--' استفاده شود. اگر این گزینه داده نشود و DEVICE یک فایل ویژه دستگاه باشد، بخش دایرکتوری DEVICE فرض میشود. اگر این گزینه داده نشود و DEVICE یک نام sysfs باشد، در صورت نیاز دایرکتوری 'dev/' فرض خواهد شد.
- -g, --given_is=0 | 1
- مشخص میکند که DEVICE یک فایل ویژه دستگاه است (زمانی که آرگومان 0 باشد) یا یک فایل 'dev' در sysfs است (زمانی که آرگومان 1 باشد). دایرکتوری والد یک فایل 'dev' در sysfs نیز پذیرفته میشود (مثلاً هر یک از '/sys/block/sda/dev' یا '/sys/block/sda' پذیرفته میشوند). معمولاً نیازی به دادن این گزینه نیست زیرا این ابزار ابتدا فایلهای ویژه (یا پیوندهای نمادین به آنها) را بررسی کرده و در غیر این صورت فرض میکند که یک فایل 'dev' در sysfs (یا والد آن) داده شده است. در صورت مشخص شدن و عدم تطابق با نوع DEVICE، یک خطا ایجاد میشود.
- -h, --help
- چاپ پیام راهنمای نحوه استفاده و سپس خروج.
- -r, --result=0 | 1 | 2 | 3
- مشخص میکند که این ابزار به دنبال یافتن چه نوع فایل (یا فایلهایی) است. پیشفرض یک فایل ویژه دستگاه "نگاشتشده" است (زمانی که آرگومان 0 باشد). هنگامی که آرگومان 1 باشد، ابزار سعی میکند نام گره sysfs "نگاشتشده" را بیابد. هنگامی که آرگومان 2 باشد، ابزار سعی میکند فایل ویژه دستگاه "منطبق" را بیابد. هنگامی که آرگومان 3 باشد، ابزار سعی میکند نام گره sysfs "منطبق" را بیابد.
- -s, --symlink
- هنگامی که به دنبال فایل ویژه دستگاه هستید (یعنی زمانی که 'result=0--' یا 'result=2--' فعال است)، پیوندهای نمادین به آن فایل ویژه دستگاه را نیز در همان دایرکتوری جستجو میکند.
- -v, --verbose
- افزایش سطح جزئیات خروجی (پیامهای اشکالزدایی).
- -V, --version
- چاپ رشته نسخه برنامه و سپس خروج.
دستگاههای BSG و NVME (BSG AND NVME DEVICES)
درایور bsg (دستگاههای عمومی بلوکی SCSI) دستگاههای کاراکتری یونیکس جایگزین را به قالب /dev/bsg/<h:c:t:l> ارائه میدهد. مقدار <h:c:t:l> یک چندتایی ۴ عنصری است که در آن 'h' شماره میزبان، 'c' شماره کنترلکننده، 't' شناسه هدف و 'l' شماره واحد منطقی (LUN) است. به جز نام دستگاههای bsg، هر دستگاه پس از باز شدن با ()open به روشی مشابه دستگاه sg کار میکند: رابطی عمومی در سطح دستورات SCSI.
اگر یک دستگاه bsg به این ابزار داده شود، ابتدا تلاش میکند آن را به یک دستگاه بلوکی SCSI نگاشت کند. این نام یا به صورت /dev/sd<letters> برای یک دیسک یا /dev/sr<number> برای درایو BD/DVD/CD خواهد بود. اگر تطابقی یافت نشود، وجود یک درایو نوار مغناطیسی SCSI با نامی به قالب /dev/st<number> بررسی میشود. اگر آن هم ناموفق باشد، نگاشت به دستگاه sg متناظر انجام میشود. اگر گزینه --result=2 داده شود، بررسیهای دستگاه بلوکی و دستگاه نوار کنار گذاشته شده و نگاشت مستقیم به دستگاه sg متناظر صورت میپذیرد.
توجه داشته باشید که این ابزار نگاشتی به یک دستگاه bsg ایجاد نمیکند. این کار به سادگی با استفاده از ابزار lsscsi قابل انجام است زیرا مقدار ۴ عنصری <h:c:t:l> در ابتدای هر خط (به صورت پیشفرض) نشان داده میشود و هر دستگاه SCSI را به طور یکتا مشخص میکند. هر خط همچنین نام دستگاه اصلی و در صورت تعیین گزینه generic--، گره دستگاه sg را نمایش خواهد داد.
در حال حاضر گرههای دستگاه NVMe در انواع مختلفی ارائه میشوند: دستگاههای بلوکی به قالب /dev/nvme<c>n<n>[p<pn>] که در آن <c> شماره کنترلکننده (شروع از 0)، <n> شناسه فضای نام (شروع از 1) و <pn> شماره پارتیشن (شروع از 1) است. دو شکل گره دستگاه کاراکتری NVMe نیز وجود دارد: یکی به صورت dev/nvme<c>/ و دیگری به صورت dev/ng<c>n<n>/ که "ng" جدیدتر بوده و در خروجی proc/devices/ با عنوان 'nvme-generic' نامیده میشود. این ابزار دستگاههای NVMe را شناسایی میکند اما آنها را نگاشت نمیکند. نامگذاری آنها یکدستتر است بنابراین به ابزاری مانند این کمتر نیاز دارند. ممکن است از udev برای بازنگاشت طرح نامگذاری هسته برای NVMe استفاده شود که باعث از بین رفتن یکدستی ذاتی نامگذاری آن میگردد.
نکات (NOTES)
این ابزار برای سری هستههای لینوکس 2.6 (و جدیدتر) طراحی شده است. از شمارههای ماژور و مینور فایل ویژه (و این که آیا فایل ویژه از نوع بلوکی است یا کاراکتری) به همراه sysfs برای انجام نگاشت یا تطبیق استفاده میکند. در صورت عدم وجود هرگونه اطلاعات دیگر، فرض بر این است که فایلهای ویژه دستگاه در دایرکتوری 'dev/' قرار دارند در حالی که فرض میشود sysfs در 'sys/' سوار شده است. نامهای دستگاه در sysfs با داشتن شمارههای ماژور و مینور متناظر قابل پیشبینی هستند. با این حال، به دلیل قوانین udev، نام فایلهای ویژه دستگاه میتواند هر آنچه کاربر تمایل دارد باشد (مثلاً 'dev/sda/' میتواند 'dev/my_boot_disk/' نامگذاری شود). این ابزار هنگام تلاش برای یافتن فایل ویژه دستگاه حاصل، از شمارههای ماژور و مینور (و نوع دستگاه بلوکی یا کاراکتری درخواستی) برای جستجوی دایرکتوری دستگاه استفاده میکند.
این ابزار در هر زمان تنها یک رابطه را نمایش میدهد. برای مشاهده یک نمای کلی از تمام دستگاههای SCSI، به همراه نام فایلهای ویژه و در صورت تمایل نام دستگاه sg "نگاشتشده"، ابزار lsscsi را مشاهده کنید.
اگرچه lsscsi یک جایگزین کاربردی برای این ابزار است، اما گزارش شده است که این ابزار در سیستمهایی که دیسکهای زیادی به آنها متصل است سریعتر اجرا میشود. از نظر تئوری یک سیستم لینوکس میتواند تا ۱۶۳۸۳ دیسک SCSI متصل به خود داشته باشد.
مثالها (EXAMPLES)
فرض کنید sg2 به sdb نگاشت میشود در حالی که dvd، cdrom و hdc همگی با یکدیگر منطبق هستند:
# sg_map26 /dev/sg2 /dev/sdb
# sg_map26 /dev/sdb /dev/sg2
# sg_map26 --result=0 /dev/sdb /dev/sg2
# sg_map26 --result=3 /dev/sdb /sys/block/sda
# sg_map26 --result=1 /dev/sdb /sys/class/scsi_generic/sg0
اکنون نگاهی به 'dev/hdc/' و موارد مرتبط بیندازید:
# sg_map26 /dev/hdc <error: a hd device does not map to a sg device>
# sg_map26 --result=3 /dev/hdc /sys/block/hdc
# sg_map26 --result=2 /dev/hdc /dev/hdc
# sg_map26 --result=2 --symlink /dev/hdc /dev/cdrom /dev/dvd /dev/hdc
# sg_map26 --result=2 --symlink /sys/block/hdc /dev/cdrom /dev/dvd /dev/hdc
وضعیت خروج (EXIT STATUS)
وضعیت خروج sg_map26 در صورت موفقیت 0 است. در غیر این صورت صفحه راهنمای sg3_utils(8) را مشاهده کنید.
نویسندگان (AUTHORS)
نوشتهشده توسط Douglas Gilbert.
گزارش باگها (REPORTING BUGS)
گزارش اشکالات به <dgilbert at interlog dot com>.
حق نشر (COPYRIGHT)
حق نشر © 2005-2023
Douglas Gilbert
این
نرمافزار
تحت مجوز BSD-2-Clause
توزیع شده
است. هیچ
تضمینی
وجود
ندارد؛ حتی
برای
قابلیت
فروش یا
تناسب با یک
هدف خاص.
همچنین ببینید (SEE ALSO)
udev(7), lsscsi(lsscsi)
| April 2023 | sg3_utils-1.48 |