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

lsblk - فهرست کردن اطلاعات دستگاههای بلوکی

lsblk [گزینه‌ها] [دستگاه...]

دستور lsblk اطلاعات مربوط به تمام یا دستگاههای بلوکی مشخصشده را در ساختار درختی خوانا نمایش میدهد.

دستور lsblk فایل‌سیستم sysfs و پایگاه داده udev را برای جمع‌آوری اطلاعات می‌خواند. اگر پایگاه داده udev در دسترس نباشد یا lsblk بدون پشتیبانی از udev کامپایل شده باشد، سعی می‌کند نام برچسب‌ها (LABEL)، شناسه‌های یکتا (UUID) و نوع سیستم‌فایل‌ها را مستقیماً از دستگاه بلوکی بخواند. در این حالت دسترسی ریشه (root) الزامی است.

به‌طور پیش‌فرض، این دستور تمام دستگاه‌های بلوکی (به جز دیسک‌های رم / RAM disks) را در یک ساختار درختی نمایش می‌دهد. اگر دستگاهی با دستگاه‌های دیگر مرتبط باشد ممکن است چندین بار در درخت تکرار شود. گزینه --merge برای پیکربندی‌های پیچیده‌تر جهت گروه‌بندی دستگاه‌ها و توصیف روابط پیچیده N:M پیشنهاد می‌شود.

خروجی درختی‌شکل (یا آرایه children[] در خروجی JSON) تنها زمانی فعال است که ستون NAME در خروجی وجود داشته باشد یا از گزینه خط فرمان --tree استفاده شود. همچنین گزینه‌های --nodeps و --list را برای کنترل قالب‌بندی درختی ببینید.

خروجی پیش‌فرض، و همچنین خروجی پیش‌فرض گزینه‌هایی مانند --fs و --topology ممکن است در نسخه‌های بعدی تغییر کند. بنابراین تا جای ممکن از تکیه بر خروجی‌های پیش‌فرض در اسکریپت‌های خود خودداری کنید. همیشه ستون‌های مورد نیاز را با استفاده از --output فهرست-ستون‌ها و گزینه --list در محیط‌هایی که خروجی پایدار و باثبات نیاز دارند به صراحت مشخص نمایید.

برای دریافت فهرستی از تمام ستون‌های پشتیبانی‌شده از دستور lsblk --list-columns استفاده کنید.

توجه داشته باشید که ممکن است lsblk در زمانی اجرا شود که udev هنوز تمام اطلاعات دستگاه‌های تازه اضافه‌شده یا تغییریافته را پردازش نکرده باشد. در این شرایط پیشنهاد می‌شود پیش از اجرای lsblk، دستور udevadm settle را جهت همگام‌سازی با udev اجرا کنید.

ارتباط میان دستگاه‌های بلوکی و فایل‌سیستم‌ها همیشه یک‌به‌یک نیست. یک فایل‌سیستم ممکن است از چندین دستگاه بلوکی استفاده کند یا همان فایل‌سیستم از طریق مسیرهای متعددی قابل دسترسی باشد. به همین دلیل lsblk دو ستون MOUNTPOINT و MOUNTPOINTS را ارائه می‌دهد. ستون MOUNTPOINT فقط یک نقطه اتصال (معمولاً آخرین نمونه متصل‌شده از فایل‌سیستم) را نمایش می‌دهد، در حالی که ستون MOUNTPOINTS در یک سلول چندخطی تمام نقاط اتصال متصل به آن دستگاه را نمایش می‌دهد.

-A, --noempty

دستگاه‌های خالی را نمایش نده.

-a, --all

تمام فیلترهای داخلی را غیرفعال کرده و همه دستگاه‌های خالی و دیسک‌های رم (RAM disk) را نیز فهرست کن.

-b, --bytes

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

به‌طور پیش‌فرض واحد اندازه‌ها بایت است و پیشوندهای واحدها بر توان ۲^۱۰ (۱۰۲۴) هستند. برای خوانایی بهتر، اختصارات نمادها کوتاه شده و تنها حرف اول آن‌ها نمایش داده می‌شود؛ برای مثال «1 KiB» و «1 MiB» به‌ترتیب به‌صورت «1 K» و «1 M» نشان داده می‌شوند و بخش «iB» از این اختصارات عمداً حذف می‌گردد.

-H, --list-columns

ستون‌های موجود را فهرست کن؛ همراه با --json یا --raw برای دریافت خروجی ماشین‌خوان استفاده شود.

-D, --discard

اطلاعات مربوط به قابلیت‌های دیسکارد و آزادسازی فضا (TRIM، UNMAP) را برای هر دستگاه چاپ کن.

-d, --nodeps

دستگاه‌های نگه‌دارنده (holder) یا وابسته (slave) را چاپ نکن. برای مثال lsblk --nodeps /dev/sda فقط اطلاعات مربوط به دستگاه sda را چاپ می‌کند.

-E, --dedup ستون

از ستون به‌عنوان کلید حذف موارد تکراری برای درخت خروجی استفاده کن. اگر کلید برای دستگاه در دسترس نباشد، یا دستگاه یک پارتیشن باشد و دستگاه والد کل دیسک همان کلید را فراهم کند، دستگاه همیشه چاپ می‌شود.

کاربرد متداول آن حذف موارد تکراری خروجی در دستگاه‌های چندمسیره (multi-path) سیستم است، مثلاً با -E WWN.

-e, --exclude فهرست

دستگاه‌های مشخص‌شده در فهرست جداشده با کاما از شماره‌های اصلی دستگاه (major device numbers) را مستثنی کن. توجه داشته باشید که دیسک‌های رم (major=1) در صورت عدم تعیین --all به‌طور پیش‌فرض مستثنی هستند. این فیلتر تنها برای دستگاه‌های سطح بالا اعمال می‌شود. این ممکن است در قالب خروجی --list که سلسله‌مراتب دستگاه‌ها آشکار نیست گمراه‌کننده باشد.

-f, --fs

اطلاعات سیستم‌فایل‌ها را چاپ کن. این گزینه معادل -o NAME,FSTYPE,FSVER,LABEL,UUID,FSAVAIL,FSUSE%,MOUNTPOINTS است. اطلاعات معتبر درباره فایل‌سیستم‌ها و raidها توسط دستور blkid(8) ارائه می‌شود.

--hyperlink[=حالت]

مسیرهای نقاط اتصال را به‌صورت ابرپیوندهای ترمینال چاپ کن. مقدار حالت می‌تواند «always» (همیشه)، «never» (هرگز) یا «auto» (خودکار) باشد. آرگومان اختیاری پیش‌فرض در صورت عدم تعیین «auto» است. حالت «auto» به این معناست که ابرپیوندها تنها در صورت ارسال خروجی به ترمینال استفاده می‌شوند.

-I, --include فهرست

تنها دستگاه‌های مشخص‌شده در فهرست جداشده با کاما از شماره‌های اصلی دستگاه (major numbers) را شامل کن. فیلتر فقط روی دستگاه‌های سطح بالا اعمال می‌شود. این ممکن است برای قالب خروجی --list که سلسله‌مراتب در آن مشخص نیست گیج‌کننده باشد.

-i, --ascii

از کاراکترهای اسکی (ASCII) برای قالب‌بندی درختی استفاده کن.

-J, --json

از قالب خروجی JSON استفاده کن. قویاً توصیه می‌شود از --output و در صورت نیاز از --tree استفاده کنید. توجه کنید که children[] تنها در صورتی استفاده می‌شود که ستون NAME یا گزینه --tree به کار رود.

-l, --list

خروجی را در قالب یک فهرست ساده تولید کن. خروجی اطلاعاتی در مورد روابط میان دستگاه‌ها ارائه نمی‌دهد و از نسخه 2.34 به بعد، هر دستگاه فقط یک بار چاپ می‌شود مگر آنکه --pairs یا --raw مشخص شده باشد (خروجی‌های قابل تجزیه به روش سازگار با گذشته نگهداری می‌شوند).

-M, --merge

والدهای زیردرخت‌ها را گروه‌بندی کن تا خروجی خواناتری برای دستگاه‌های RAID و چندمسیره (Multi-path) فراهم شود. این گزینه نیازمند خروجی درختی‌شکل است.

-m, --perms

اطلاعات مربوط به مالک، گروه و مجوزهای دسترسی دستگاه را چاپ کن. این گزینه معادل -o NAME,SIZE,OWNER,GROUP,MODE است.

-N, --nvme

تنها اطلاعات مربوط به دستگاه‌های NVMe را چاپ کن.

-v, --virtio

تنها اطلاعات مربوط به دستگاه‌های virtio را چاپ کن.

-n, --noheadings

سطر سرآیند (عناوین ستون‌ها) را چاپ نکن.

-o, --output فهرست

مشخص کردن ستون‌های خروجی جهت چاپ. برای دریافت فهرستی از تمام ستون‌های پشتیبانی‌شده از --list-columns استفاده کنید. ستون‌ها ممکن است بر خروجی درختی تأثیر بگذارند. حالت پیش‌فرض استفاده از درخت برای ستون «NAME» است (همچنین --tree را ببینید).

فهرست پیش‌فرض ستون‌ها در صورتی که فهرست در قالب +فهرست مشخص شود قابل گسترش است (مانند lsblk -o +UUID).

-O, --output-all

چاپ تمام ستون‌های موجود.

-P, --pairs

تولید خروجی در قالب جفت‌های key="value". خطوط خروجی همچنان بر اساس وابستگی‌ها مرتب هستند. تمام نویسه‌های بالقوه ناامن با کد هگز اسکیپ می‌شوند (\x<code>). همچنین گزینه --shell را ببینید.

-p, --paths

چاپ مسیرهای کامل دستگاه.

-Q, --filter عبارت

تنها دستگاه‌هایی را چاپ کن که با شرایط مشخص‌شده در عبارت مطابقت دارند. فیلتر پیش از جمع‌آوری داده‌ها توسط lsblk برای تمام ستون‌های خروجی ارزیابی می‌شود. تنها داده‌های ضروری برای ارزیابی تنبلانه عبارت از سیستم بازیابی می‌شوند. این روش می‌تواند کارایی را در مقایسه با فیلترگذاری پس از اجرا (مانند ابزارهایی چون grep(1)) بهبود بخشد.

این قابلیت آزمایشی (EXPERIMENTAL) است. همچنین scols-filter(5) را ببینید. برای نمونه، حذف sda و sdb، اما چاپ بقیه موارد (عملگر '!~' عملگر انطباق عبارت منظم منفی است):

lsblk --filter 'NAME !~ "sd[ab]"'

--highlight عبارت

رنگی کردن خطوطی که با عبارت مطابقت دارند. این قابلیت آزمایشی (EXPERIMENTAL) است. همچنین scols-filter(5) را ببینید.

--ct نام [: پارامتر [: تابع ]]

تعریف یک شمارنده سفارشی. شمارنده‌ها پس از خروجی استاندارد چاپ می‌شوند. نام، نام سفارشی شمارنده است، پارامتر اختیاری نام ستونی است که برای شمارنده استفاده می‌شود، و تابع اختیاری تابع تجمیع را مشخص می‌کند؛ توابع پشتیبانی‌شده عبارتند از: count، min، max یا sum. مقدار پیش‌فرض count است.

اگر پارامتر مشخص نشود، شمارنده تعداد خطوط را می‌شمارد. این قابلیت آزمایشی (EXPERIMENTAL) است. همچنین --ct-filter را ببینید.

برای نمونه، --ct MyCounter:SIZE:sum مجموع SIZE را از تمام خطوط محاسبه می‌کند؛ و برای شمارش تعداد دیسک‌های SATA می‌توان از دستور زیر استفاده کرد:

lsblk --ct-filter 'TYPE=="disk" && TRAN=="sata"' --ct "Number of SATA devices"

--ct-filter عبارت

تعریف یک محدودیت برای شمارنده بعدی. این قابلیت آزمایشی (EXPERIMENTAL) است. همچنین --ct و scols-filter(5) را ببینید. برای نمونه، تجمیع اندازه‌ها بر اساس نوع دستگاه:
lsblk --ct-filter 'TYPE=="part"' --ct Partitions:SIZE:sum \
      --ct-filter 'TYPE=="disk"' --ct WholeDisks:SIZE:sum

-r, --raw

تولید خروجی در قالب خام. خطوط خروجی همچنان بر اساس وابستگی‌ها مرتب هستند. تمام نویسه‌های بالقوه ناامن در ستون‌های NAME، KNAME، LABEL، PARTLABEL و MOUNTPOINT با کد هگز اسکیپ می‌شوند (\x<code>).

-S, --scsi

تنها اطلاعات مربوط به دستگاه‌های SCSI را چاپ کن. تمام پارتیشن‌ها، دستگاه‌های وابسته و نگه‌دارنده نادیده گرفته می‌شوند.

-s, --inverse

چاپ وابستگی‌ها به ترتیب معکوس. اگر خروجی --list درخواست شده باشد، خطوط همچنان بر اساس وابستگی‌ها مرتب می‌شوند.

-T, --tree[=ستون]

اجبار به استفاده از قالب خروجی درختی. اگر ستون مشخص شود، درخت در آن ستون چاپ می‌شود. ستون پیش‌فرض NAME است.

-t, --topology

اطلاعات توپولوژی دستگاه بلوکی را چاپ کن. این گزینه معادل زیر است:

-o NAME,ALIGNMENT,MIN-IO,OPT-IO,PHY-SEC,LOG-SEC,ROTA,SCHED,RQ-SIZE,RA,WSAME.

-w, --width تعداد

عرض خروجی را به تعداد نویسه‌ها مشخص می‌کند. مقدار پیش‌فرض تعداد ستون‌های ترمینال است و اگر در ترمینال اجرا نشود، عرض خروجی به‌طور پیش‌فرض اصلاً محدود نمی‌شود. این گزینه همچنین lsblk را ملزم می‌کند که فرض کند نویسه‌های کنترلی ترمینال و نویسه‌های ناامن مجاز نیستند. کاربرد مورد انتظار برای مثال زمانی است که lsblk توسط دستور watch(1) استفاده می‌شود.

-x, --sort ستون

مرتب‌سازی سطرهای خروجی بر اساس ستون. این گزینه به‌طور پیش‌فرض قالب خروجی --list را فعال می‌کند. می‌توان از گزینه --tree برای اجبار به خروجی درختی استفاده کرد که در این حالت شاخه‌های درخت بر اساس آن ستون مرتب می‌شوند.

-y, --shell

نام ستون تغییر خواهد کرد تا فقط شامل نویسه‌های مجاز برای شناسه‌های متغیر شل باشد؛ برای نمونه MIN_IO و FSUSE_PCT به‌جای MIN-IO و %FSUSE. این گزینه برای مثال همراه با --pairs کاربرد دارد. توجه داشته باشید که این ویژگی در نسخه 2.37 برای --pairs به‌طور خودکار فعال شده بود، اما به دلیل مسائل سازگاری، اکنون لازم است این رفتار با --shell درخواست شود.

-z, --zoned

اطلاعات مربوط به ناحیه‌بندی (zoned) را برای هر دستگاه چاپ کن.

--sysroot پوشه

جمع‌آوری داده‌ها برای یک نمونه لینوکس غیر از نمونه‌ای که دستور lsblk از آن صادر شده است. پوشه مشخص‌شده ریشه سیستم (system root) نمونه لینوکسی است که باید بازرسی شود. گره‌های دستگاه‌های واقعی در پوشه مقصد را می‌توان با فایل‌های متنی حاوی ویژگی‌های udev جایگزین کرد.

--properties-by فهرست

این گزینه روش‌های مورد استفاده توسط lsblk را برای جمع‌آوری اطلاعات درباره سیستم‌فایل‌ها و جداول پارتیشن مشخص می‌کند. این فهرست، فهرستی جداشده با کاما از نام روش‌ها است. تنظیم پیش‌فرض «file,udev,blkid» است. روش‌های پشتیبانی‌شده عبارتند از:

udev

داده‌ها را از پایگاه داده udev می‌خواند. در صورت عدم موفقیت، به روش بررسی بعدی می‌رود.

blkid

داده‌ها را مستقیماً با استفاده از libblkid از دستگاه می‌خواند. در صورت عدم موفقیت، به روش بررسی بعدی می‌رود.

file

داده‌ها را از یک فایل می‌خواند. این روش تنها در صورتی استفاده می‌شود که گزینه --sysroot مشخص شده باشد. در صورت استفاده، این روش همیشه به بررسی خاتمه می‌دهد.

none

هیچ بررسی انجام نمی‌دهد. این روش همیشه فرآیند بررسی را متوقف می‌کند.

-h, --help

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

-V, --version

نمایش نگارش و خروج.

0

موفقیت

1

شکست

32

هیچ‌یک از دستگاه‌های مشخص‌شده یافت نشدند

64

برخی از دستگاه‌های مشخص‌شده پیدا شدند و برخی دیگر یافت نشدند

LSBLK_DEBUG=all

خروجی اشکال‌زدایی (debug) دستور lsblk را فعال می‌کند.

LIBBLKID_DEBUG=all

خروجی اشکال‌زدایی libblkid را فعال می‌کند.

LIBMOUNT_DEBUG=all

خروجی اشکال‌زدایی libmount را فعال می‌کند.

LIBSMARTCOLS_DEBUG=all

خروجی اشکال‌زدایی libsmartcols را فعال می‌کند.

LIBSMARTCOLS_DEBUG_PADDING=on

استفاده از نویسه‌های فاصله‌گذاری مرئی (visible padding).

برای پارتیشن‌ها، برخی از اطلاعات (مانند ویژگی‌های صف) از دستگاه والد به ارث برده می‌شود.

دستور lsblk نیاز دارد که بتواند هر دستگاه بلوکی را بر اساس شماره‌های major:minor جستجو کند که این کار با استفاده از /sys/dev/block انجام می‌شود. این پوشه بلوکی sysfs در هسته 2.6.27 (اکتبر 2008) ظاهر شد. در صورت بروز مشکل در هسته‌های به اندازه کافی جدید، بررسی کنید که آیا CONFIG_SYSFS در زمان ساخت هسته فعال بوده است یا خیر.

Milan Broz <gmazyland@gmail.com>, Karel Zak <kzak@redhat.com>

blkid(8), findmnt(8), ls(1), scols-filter(5)

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

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

مه ۲۰۲۵ util-linux