BLKID(8) دستورات مدیریت سیستم BLKID(8)

blkid - مکانیابی و چاپ ویژگیهای ابزارهای بلوکی (UUID و TYPE)

blkid --label label | --uuid uuid

blkid [--no-encoding --garbage-collect --list-one --cache-file file] [--output format] [--match-tag tag] [--match-token NAME=value] [device...]

blkid --probe [--offset offset] [--output format] [--size size] [--match-tag tag] [--match-types list] [--usages list] [--no-part-details] device...

blkid --info [--output format] [--match-tag tag] device...

دستور blkid برای شناسایی نوع فایلسیستم، شناسههای یکتای سراسری (UUID) و برچسبهای دستگاههای بلوکی ذخیرهسازی به کار میرود.

برنامه blkid یک رابط خط فرمان برای کار با کتابخانه libblkid(3) است. این ابزار می‌تواند نوع محتوایی که یک دستگاه بلوکی در خود نگه می‌دارد (مانند فایل‌سیستم یا swap) و همچنین ویژگی‌ها (توکن‌ها، جفت‌های NAME=value) را از متادیتای محتوا (مانند فیلدهای LABEL یا UUID) استخراج و تعیین کند.

توصیه می‌شود برای دریافت اطلاعات درباره دستگاه‌های بلوکی از دستور lsblk(8)، برای مشاهده نمای کلی فایل‌سیستم‌ها از lsblk --fs، یا برای جستجو در میان فایل‌سیستم‌های از پیش سوارشده از findmnt(8) استفاده کنید.

دستور lsblk(8) اطلاعات بیشتری ارائه می‌دهد، کنترل بهتری بر قالب‌بندی خروجی دارد، استفاده از آن در اسکریپت‌ها آسان‌تر است و برای دریافت اطلاعات جاری به دسترسی ریشه (root) نیاز ندارد. در مقابل، blkid اطلاعات را مستقیماً از دستگاه‌ها می‌خواند و برای کاربران غیرریشه اطلاعات کش‌شده و تأییدنشده بازمی‌گرداند. دستور blkid بیشتر برای سرویس‌های سیستمی و آزمایش قابلیت‌های کتابخانه libblkid(3) طراحی شده است.

هنگامی که device مشخص شود، توکن‌های مربوط به تنها همان دستگاه نمایش داده می‌شوند. امکان مشخص کردن چندین آرگومان device در خط فرمان وجود دارد. اگر هیچ دستگاهی مشخص نشود، تمامی پارتیشن‌ها یا دستگاه‌های پارتیشن‌بندی‌نشده که در /proc/partitions ظاهر می‌شوند (در صورت شناسایی) نمایش داده خواهند شد.

دستور blkid دو حالت اصلی عملکرد دارد: یا جستجوی یک دستگاه با یک جفت خاص از NAME=value، یا نمایش جفت‌های NAME=value برای یک یا چند دستگاه مشخص‌شده.

به دلایل امنیتی، blkid تمامی دستگاه‌هایی را که نتیجه کاوش آن‌ها مبهم است (چندین فایل‌سیستم متداخل و متضاد شناسایی شود) بدون اعلان نادیده می‌گیرد. در این حالت، کاوش سطح پایین (-p) اطلاعات بیشتر و کد خروجی متمایزی ارائه می‌دهد. توصیه می‌شود از wipefs(8) برای بررسی جزئیات و پاک کردن متادیتای منسوخ و قدیمی از روی دستگاه استفاده کنید.

پس از شناسه‌های size و offset می‌توان پسوندهای ضریبی دودویی مانند 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 را به کار برد.

-c, --cache-file cachefile

خواندن از cachefile به جای فایل کش پیش‌فرض (برای جزئیات بیشتر بخش فایل پیکربندی را ببینید). اگر می‌خواهید با یک کش تمیز شروع کنید (یعنی دستگاه‌هایی که قبلاً پویش شده‌اند اما در حال حاضر لزوماً در دسترس نیستند گزارش نشوند)، مسیر /dev/null را مشخص کنید.

-d, --no-encoding

نویسه‌های غیرقابل چاپ را کدگذاری نکن. این نویسه‌ها به طور پیش‌فرض با نمادگذاری ^ و -M کدگذاری می‌شوند. توجه داشته باشید که قالب خروجی --output udev از کدگذاری متفاوتی استفاده می‌کند که امکان غیرفعال‌سازی آن وجود ندارد.

-D, --no-part-details

در حالت کاوش سطح پایین، اطلاعات جدول پارتیشن (تگ‌های PART_ENTRY_*) را چاپ نکن.

-g, --garbage-collect

اجرای فرآیند پاکسازی روی کش blkid برای حذف دستگاه‌هایی که دیگر وجود ندارند.

-H, --hint setting

تنظیم راهنمای کاوش (probing hint). راهنماها روشی اختیاری برای واداشتن توابع کاوش به بررسی یک مکان دیگر هستند. در حال حاضر مقدار "session_offset=number" برای تعیین آفست نشست در دیسک‌های چندنشستی UDF پشتیبانی می‌شود.

-i, --info

نمایش اطلاعات درباره محدودیت‌های ورودی/خروجی (I/O Limits یا همان توپولوژی I/O). قالب خروجی 'export' به طور خودکار فعال می‌شود. این گزینه می‌تواند همراه با گزینه --probe استفاده شود.

-k, --list-filesystems

فهرست کردن تمام فایل‌سیستم‌ها و RAIDهای شناخته‌شده و خروج.

-l, --list-one

تنها یک دستگاه که با پارامتر جستجوی مشخص‌شده توسط گزینه --match-token مطابقت دارد را پیدا کن. اگر چندین دستگاه با پارامتر جستجو همخوانی داشته باشند، دستگاهی با بالاترین اولویت و/یا اولین دستگاه با اولویت مورد نظر بازگردانده می‌شود (نکته زیر در مورد udev را ببینید). اولویت انواع دستگاه‌ها به ترتیب نزولی عبارتند از: Device Mapper، EVMS، LVM، MD و در نهایت دستگاه‌های بلوکی معمولی. اگر این گزینه مشخص نشود، blkid تمام دستگاه‌های منطبق را نمایش می‌دهد.

این گزینه blkid را مجبور می‌کند که برای توکن‌های LABEL یا UUID در --match-token از udev استفاده کند. هدف این است که در سیستم‌هایی که از یک برچسب یکسان برای چند دستگاه استفاده شده، خروجی سازگار با سایر ابزارها (مانند mount(8) و غیره) تولید شود.

-L, --label label

پیدا کردن دستگاهی که از این label فایل‌سیستم استفاده می‌کند؛ این معادل --list-one --output device --match-token LABEL=label است. این روش جستجو قادر است به شکل قابل اعتماد از پیوندهای نمادین udev در /dev/disk/by-label استفاده کند (بسته به تنظیمات موجود در /etc/blkid.conf). از استفاده مستقیم پیوندهای نمادین خودداری کنید؛ استفاده از پیوندها بدون اعتبارسنجی قابل اعتماد نیست. گزینه --label روی سیستم‌های با یا بدون udev به درستی کار می‌کند.

متأسفانه نسخه اولیه blkid(8) از بسته e2fsprogs گزینه -L را به عنوان مترادفی برای -o list به کار می‌برد. برای سازگاری بهتر، به جای استفاده از گزینه -L، در اسکریپت‌های خود از -l -o device -t LABEL=label و -o list استفاده کنید.

-n, --match-types list

محدود کردن توابع کاوش به فهرست مشخص‌شده (جداشده با کاما) از نوع سوپربلاک‌ها (نام‌ها). می‌توان پیشوند "no" را به آیتم‌های فهرست اضافه کرد تا انواع نادیده‌گرفته‌شدنی مشخص شوند. برای نمونه:

blkid --probe --match-types vfat,ext3,ext4 /dev/sda1

برای فایل‌سیستم‌های vfat، ext3 و ext4 کاوش می‌کند، و

blkid --probe --match-types nominix /dev/sda1

تمامی فرمت‌های پشتیبانی‌شده به جز فایل‌سیستم minix را کاوش می‌کند. این گزینه فقط در ترکیب با --probe کاربرد دارد.

-o, --output format

استفاده از قالب خروجی مشخص‌شده. توجه داشته باشید که ترتیب متغیرها و دستگاه‌ها ثابت نیست. گزینه -s را نیز ببینید. پارامتر format می‌تواند یکی از موارد زیر باشد:

full

چاپ تمامی تگ‌ها (پیش‌فرض)

value

چاپ مقدار تگ‌ها

list

چاپ دستگاه‌ها در قالبی کاربرپسند؛ این قالب خروجی برای کاوش‌های سطح پایین (--probe یا --info) پشتیبانی نمی‌شود.

این قالب خروجی منسوخ شده و توصیه می‌شود از دستور lsblk(8) استفاده شود.

device

فقط چاپ نام دستگاه؛ این قالب خروجی همیشه برای گزینه‌های --label و --uuid فعال است.

udev

چاپ جفت‌های key="value" برای درون‌ریزی آسان در محیط udev؛ کلیدها دارای پیشوندهای ID_FS_ یا ID_PART_ هستند. ممکن است مقدار برای ایمن بودن در محیط udev تغییر یابد؛ استفاده از اسکی معمولی، کدهای هگزادسیمال و UTF-8 معتبر مجاز است و سایر موارد (از جمله فاصله‌ها) با '_' جایگزین می‌شوند. کلیدهایی با پسوند _ENC برای نویسه‌های ناامن از کدهای هگزادسیمال استفاده می‌کنند.

خروجی udev در صورتی که چندین سوپربلاک شناسایی شوند تگ ID_FS_AMBIVALENT را بازمی‌گرداند، و تگ‌های ID_PART_ENTRY_* همیشه برای تمام پارتیشن‌ها از جمله پارتیشن‌های خالی بازگردانده می‌شوند.

این قالب خروجی منسوخ شده است.

export

چاپ جفت‌های key=value برای درون‌ریزی آسان به متغیرهای محیطی؛ این قالب خروجی هنگام درخواست محدودیت‌های ورودی/خروجی (گزینه --info) به طور خودکار فعال می‌شود.

نویسه‌های غیرقابل چاپ با نمادگذاری ^ و -M کدگذاری می‌شوند و تمام نویسه‌های بالقوه ناامن اسکیپ می‌گردند.

json

چاپ مدخل‌های تگ‌ها در قالب اشیاء JSON.

-O, --offset offset

کاوش در آفست مشخص‌شده (تنها همراه با --probe مفید است). این گزینه را می‌توان به همراه گزینه --info به کار برد.

-p, --probe

تغییر حالت به کاوش سطح پایین سوپربلاک (با دور زدن کش).

توجه داشته باشید که کاوش سطح پایین همچنین اطلاعاتی درباره نوع جدول پارتیشن (تگ PTTYPE) و پارتیشن‌ها (تگ‌های PART_ENTRY_*) ارائه می‌دهد. نام‌های تگ تولیدشده توسط کاوش سطح پایین مبتنی بر نام‌های داخلی به کار رفته توسط libblkid هستند و ممکن است با حالت اجرا بدون --probe متفاوت باشند (برای نمونه PART_ENTRY_UUID= در مقابل PARTUUID=). همچنین گزینه --no-part-details را ببینید.

-s, --match-tag tag

برای هر دستگاه (مشخص‌شده)، تنها تگ‌هایی را نمایش بده که با tag مطابقت دارند. مشخص کردن چندباره گزینه --match-tag امکان‌پذیر است. اگر هیچ تگی مشخص نشود، تمام توکن‌ها برای همه دستگاه‌های مشخص‌شده نمایش داده می‌شوند. برای تازه‌سازی کش بدون نمایش هیچ توکنی، از --match-tag none بدون هیچ گزینه دیگری استفاده کنید.

-S, --size size

بازنویسی اندازه دستگاه/فایل (تنها همراه با --probe کاربرد دارد).

-t, --match-token NAME=value

جستجوی دستگاه‌های بلوکی با توکن‌هایی به نام NAME که مقدار آن‌ها value است، و نمایش دستگاه‌های پیدا شده. مقادیر معمول برای NAME شامل TYPE، LABEL و UUID است. اگر هیچ دستگاهی در خط فرمان مشخص نشده باشد، تمام دستگاه‌های بلوکی جستجو می‌شوند؛ در غیر این صورت فقط دستگاه‌های مشخص‌شده جستجو خواهند شد.

-u, --usages list

محدود کردن توابع کاوش به فهرست مشخص‌شده (جداشده با کاما) از انواع "usage". انواع کاربرد پشتیبانی‌شده عبارتند از: filesystem، raid، crypto و other. می‌توان به آیتم‌های فهرست پیشوند "no" اضافه کرد تا انواع نادیده‌گرفته‌شدنی مشخص شوند. برای نمونه:

blkid --probe --usages filesystem,other /dev/sda1

تمامی قالب‌های فایل‌سیستم و موارد دیگر (مانند swap) را بررسی می‌کند، و

blkid --probe --usages noraid /dev/sda1

تمام قالب‌های پشتیبانی‌شده به جز آرایه‌های RAID را بررسی می‌کند. این گزینه تنها در ترکیب با --probe سودمند است.

-U, --uuid uuid

پیدا کردن دستگاهی که از این uuid فایل‌سیستم استفاده می‌کند. برای جزئیات بیشتر گزینه --label را ببینید.

-h, --help

نمایش متن راهنما و خروج.

-V, --version

نمایش نسخه و خروج.

اگر دستگاه مشخص‌شده یا دستگاه مشخص‌شده با توکن (گزینه --match-token) پیدا شود و بتوان اطلاعاتی درباره آن به دست آورد، کد وضعیت 0 بازگردانده می‌شود. توجه داشته باشید که گزینه --match-tag تگ‌های خروجی را فیلتر می‌کند اما تأثیری بر وضعیت خروج ندارد.

اگر توکن مشخص‌شده پیدا نشود، یا هیچ‌یک از دستگاه‌های (مشخص‌شده) شناسایی نشوند، یا جمع‌آوری هرگونه اطلاعات درباره شناسه‌ها یا محتوای دستگاه ناممکن باشد، کد وضعیت 2 بازگردانده می‌شود.

برای خطاهای استفاده یا سایر خطاها، وضعیت خروج 4 بازگردانده می‌شود.

اگر حالت کاوش سطح پایین (-p) نتیجه کاوش مبهم و متداخلی را تشخیص دهد، وضعیت خروج 8 بازگردانده خواهد شد.

مسیر استاندارد فایل پیکربندی /etc/blkid.conf را می‌توان با متغیر محیطی BLKID_CONF تغییر داد. گزینه‌های زیر رفتار کتابخانه libblkid را کنترل می‌کنند:

SEND_UEVENT=<yes|not>

هنگامی که پیوند نمادین /dev/disk/by-{label,uuid,partuuid,partlabel}/ با LABEL، UUID، PARTUUID یا PARTLABEL روی دستگاه مطابقت نداشته باشد، یک uevent ارسال می‌کند. مقدار پیش‌فرض "yes" است.

CACHE_FILE=<path>

مسیر استاندارد فایل کش را بازنویسی می‌کند. این تنظیم را می‌توان توسط متغیر محیطی BLKID_FILE تغییر داد. پیش‌فرض /run/blkid/blkid.tab است، یا در سیستم‌های فاقد دایرکتوری /run برابر با /etc/blkid.tab می‌باشد.

EVALUATE=<methods>

روش(های) ارزیابی LABEL و UUID را تعیین می‌کند. در حال حاضر کتابخانه libblkid از روش‌های "udev" و "scan" پشتیبانی می‌کند. بیش از یک روش را می‌توان در یک فهرست جداشده با کاما مشخص کرد. پیش‌فرض "udev,scan" است. روش "udev" از پیوندهای نمادین /dev/disk/by-* در udev استفاده می‌کند و روش "scan" تمام دستگاه‌های بلوکی را از فایل /proc/partitions پویش می‌نماید.

تنظیم LIBBLKID_DEBUG=all خروجی اشکال‌زدایی را فعال می‌کند.

ابزار blkid توسط Andreas Dilger برای libblkid نوشته شده و توسط Theodore Ts’o و Karel Zak بهبود یافته است.

libblkid(3), findfs(8), lsblk(8), wipefs(8)

برای گزارش باگ‌ها از سامانه پیگیری باگ‌ها https://github.com/util-linux/util-linux/issues.

دستور blkid بخشی از بسته util-linux است که می‌توان آن را از آرشیو هسته لینوکس https://www.kernel.org/pub/linux/utils/util-linux.

مه ۲۰۲۵ util-linux