| SG_MAP(8) | SG3_UTILS | SG_MAP(8) |
نام (NAME)
sg_map - نمایش نگاشت میان دستگاههای sg در لینوکس و سایر دستگاههای SCSI
خلاصه دستور (SYNOPSIS)
sg_map [-a] [-h] [-i] [-n] [-scd] [-sd] [-sr] [-st] [-V] [-x]
توضیحات (DESCRIPTION)
گاهی اوقات تشخیص اینکه نام یک دستگاه sg (مانند /dev/sg0) به کدام دستگاه SCSI اشاره دارد دشوار است. این دستور در میان دستگاههای sg پیمایش کرده و نام دستگاه متناظر دیسک، cdrom یا نوار (tape) مبتنی بر SCSI را (در صورت وجود) پیدا میکند. اسکنرها نمونهای از دستگاههای SCSI هستند که به جز نام دستگاه sg خود، هیچ نام دستگاه SCSI جایگزینی ندارند.
این ابزار منسوخ شده است و سالهاست که بهروزرسانی نشده است؛ تنها اشکالات بسیار مشهود آن برطرف خواهند شد. مگر در شرایطی که از نسخه بسیار قدیمی لینوکس (مانند سری ۲.۴ یا قبل از آن) استفاده شود، لطفاً از ابزاری مانند lsscsi(8) یا امکانات ارائهشده توسط udev(8) استفاده کنید.
گزینهها (OPTIONS)
- -a
- فرض میکند دستگاههای sg دارای نامهای الفبایی هستند و میان /dev/sga، /dev/sgb و غیره پیمایش میکند. حالت پیشفرض، پویش عددی است. توجه داشته باشید که گرههای دستگاه sg با شاخص الفبایی از زمان سری ۲.۲ هسته لینوکس منسوخ شدهاند.
- -h
- پیام راهنمای نحوه استفاده را چاپ کرده و خارج میشود.
- -i
- علاوه بر این، یک پرسوجوی استاندارد INQUIRY انجام میدهد و رشتههای سازنده (vendor)، محصول (product) و نسخه بازبینی (revision) را برای دستگاههای یافتشده در خروجی نمایش میدهد.
- -n
- فرض میکند دستگاههای sg دارای نامهای عددی هستند و میان /dev/sg0، /dev/sg1 و غیره پیمایش میکند. حالت پیشفرض، پویش عددی است.
- -scd
- نگاشتها را به نام دستگاههای cdrom مبتنی بر SCSI به شکل /dev/scd0، /dev/scd1 و غیره نمایش میدهد.
- -sd
- نگاشتها را به نام دستگاههای دیسک SCSI نمایش میدهد.
- -sr
- نگاشتها را به نام دستگاههای cdrom مبتنی بر SCSI به شکل /dev/sr0، /dev/sr1 و غیره نمایش میدهد.
- -st
- نگاشتها را به نام دستگاههای نوار مغناطیسی (tape) مبتنی بر SCSI را نمایش میدهد.
- -V
- رشته نسخه برنامه را چاپ کرده و سپس بیدرنگ خارج میشود.
- -x
- پس از نمایش نام هر دستگاه فعال sg، پنج عدد نمایش داده میشود: <host_number> <bus> <scsi_id> <lun> <scsi_type>
نکات (NOTES)
اگر هیچ گزینهای که با -s آغاز شود داده نشود، نگاشت به تمام نامهای دستگاههای دیسک، cdrom و نوار SCSI نمایش داده میشود.
در صورتی که سیستمفایل دستگاه (devfs) موجود باشد، خطی برای اطلاعرسانی این موضوع در خروجی نمایش مییابد. سلسلهمراتب بومی SCSI در devfs برقراری ارتباط میان نام یک دستگاه sg و هر نام دستگاه متناظر دیسک، cdrom یا نوار را آسان میسازد. این امر نیاز به این دستور را برطرف میکند. با این حال بسیاری از برنامهها همچنان در مکانهای سنتی خود به دنبال نام دستگاههای SCSI لینوکس میگردند. [سامانه devfs یک دیمن سازگاری به نام devfsd ارائه میدهد که پیکربندی پیشفرض آن، نامهای دستگاههای لینوکس را در مکانهای سنتیشان بازمیگرداند.]
در اغلب اوقات اطلاعات نگاشت را میتوان با مشاهده خروجی دستور «sg_map» به دست آورد. با این وجود، اگر دستگاههایی پس از راهاندازی سیستم اضافه شده باشند، این خروجی ممکن است گمراهکننده باشد.
در سری ۲.۶ هسته لینوکس، چیزی نزدیک به نگاشت نمایشدادهشده توسط این ابزار را میتوان با تحلیل sysfs پیدا کرد. تفاوت اصلی در این است که تحلیل sysfs، نگاشت میان گرههای sg و سایر گرههای دستگاههای SCSI را بر حسب شمارههای ماژور (اصلی) و مینور (فرعی) نشان میدهد. در حالی که ماژور ۸، مینور ۱۶ معمولاً /dev/sdb خواهد بود، اما این موضوع لزوماً همواره برقرار نیست. امکانات مرتبط با udev ممکن است نام گره دستگاه دیگری را به ماژور ۸، مینور ۱۶ اختصاص دهند. این نسخه از sg_map گسترش یافته است تا با نامهای گرههای دستگاه دیسک پراکنده به شکل /dev/sd<str> سازگار باشد که در آن <str> میتواند یکی از [a-z,aa-zz,aaa-zzz] باشد. برای روشی دقیقتر (یعنی با پویش کمتر دایرکتوریها) جهت نگاشت میان نام دستگاههای sg و نامهای سطح بالاتر، از جمله یافتن نامهای تعریفشده توسط کاربر، به ابزار sg_map26 مراجعه کنید.
این ابزار در زمانی نوشته شده است که اتصال گرم (hotplugging) دستگاههای SCSI در لینوکس پشتیبانی نمیشد. این برنامه از یک الگوریتم ساده برای پویش گرههای دستگاه sg به ترتیب صعودی عددی یا الفبایی استفاده میکرد که پس از وقوع ۵ خطای متوالی متوقف میشد.
در سری ۲.۶ هسته لینوکس، این ابزار از sysfs استفاده میکند تا مشخص کند کدام گرههای دستگاه sg فعال هستند و تنها همانها را بررسی میکند. بنابراین ممکن است «شکافهای» بزرگی در شمارهگذاری گرههای دستگاه sg وجود داشته باشد (برای نمونه پس از حذف یک آداپتور) و با این حال همه گرههای فعال دستگاه sg فهرست شوند. این ابزار فرض میکند گرههای دستگاه sg با استفاده از قراردادهای معمول نامگذاری شدهاند و بازه /dev/sg0 تا /dev/sg4095 (شامل هر دو) را جستجو میکند.
مثالها (EXAMPLES)
سیستم فرضی دارای یک دیسک SCSI، یک نویسنده سیدی (cd writer) و یک پخشکننده دیویدی است:
$ sg_map # Note: the devfs pseudo file system is present /dev/sg0 /dev/sda /dev/sg1 /dev/sr0 /dev/sg2 /dev/sr1
برای یافتن اینکه کدام نام دستگاه sg با دیسک مطابقت دارد:
$ sg_map -sd # Note: the devfs pseudo file system is present /dev/sg0 /dev/sda /dev/sg1 /dev/sg2
گزینه -x خروجی زیر را ارائه میدهد:
sg_map -x # Note: the devfs pseudo file system is present /dev/sg0 1 0 1 0 0 /dev/sda /dev/sg1 2 0 4 0 5 /dev/sr0 /dev/sg2 2 0 6 0 5 /dev/sr1
هنگامی که یک اسکنر SCSI اضافه میشود خروجی به صورت زیر خواهد بود:
$ sg_map # Note: the devfs pseudo file system is present /dev/sg0 /dev/sda /dev/sg1 /dev/sr0 /dev/sg2 /dev/sr1 /dev/sg3
با روش حذف، /dev/sg3 باید همان اسکنر باشد.
وضعیت خروج (EXIT STATUS)
وضعیت خروج sg_map در صورت موفقیت 0 است. در غیر این صورت به صفحه راهنمای sg3_utils(8) مراجعه کنید.
نویسنده (AUTHOR)
نوشتهشده توسط Douglas Gilbert.
گزارش باگها (REPORTING BUGS)
گزارش اشکالات به <dgilbert at interlog dot com>.
حق نشر (COPYRIGHT)
حق نشر © 2000-2026
Douglas Gilbert
این
نرمافزار
تحت مجوز GPL
نسخه ۲
توزیع
میشود. هیچ
ضمانتی
وجود
ندارد؛ حتی
برای
قابلیت
فروش یا
تناسب با یک
هدف خاص.
همچنین ببینید (SEE ALSO)
sg_map26(8), scsi_info(8), scsidev(8), devfsd(8), lsscsi(8), udev(7)
| 2026-06-25 | sg3_utils-1.49 |