| VERITYSETUP(8) | دستورهای مدیریتی و نگهداری | VERITYSETUP(8) |
نام (NAME)
veritysetup - ابزار پیکربندی و مدیریت دستگاههای dm-verity
خلاصه دستور (SYNOPSIS)
veritysetup <عملکرد> [<گزینهها>] <آرگومانهای عملکرد>
توضیحات (DESCRIPTION)
دستور veritysetup ابزاری برای پیکربندی و مدیریت دستگاههای dm-verity هسته است.
مقصد dm-verity نگاشتکننده دستگاه (device-mapper) هسته، محافظت از یکپارچگی دادههای دستگاههای بلوکی را بهصورت شفاف و فقطخواندنی فراهم میکند.
هنگامی که دستگاه dm-verity را پیکربندی میکنید، veritysetup یک نگاشت جدید ایجاد میکند که برنامهها میتوانند مانند هر دستگاه ذخیرهسازی معمولی به آن دسترسی داشته باشند. هسته با مقایسه هر بلوک با هشهای رمزنگاری پیشمحاسبهشده، اعتبارسنجی را بهصورت شفاف انجام میدهد. این اعتبارسنجی از یک درخت مرکل (Merkle tree) استفاده میکند و بهصورت شفاف در سطح هسته و بدون تأثیر بر برنامهها انجام میشود.
دستگاههای verity را میتوان هنگام بوت از طریق veritytab(5) که بخشی از systemd(1) است، فعال کرد.
عملکردهای پایه (BASIC ACTIONS)
ابزار veritysetup از عملیات زیر پشتیبانی میکند:
قالببندی (FORMAT)
format <data_device> <hash_device>
دادههای اعتبارسنجی هش را برای <data_device> محاسبه و بهصورت دائمی ذخیره میکند. در صورتی که با گزینه --hash-offset مشخص شده باشد، ناحیه هش میتواند روی همان دستگاه و پس از دادهها قرار گیرد.
برای اعتبارسنجی یا فعالسازی دستگاه، باید رشته هش ریشه (root hash) را ارائه دهید. هش ریشه باید مورد اعتماد باشد.
آرگومان دستگاه داده یا دستگاه هش میتواند یک دستگاه بلوکی یا یک تصویر فایل (file image) باشد. اگر مسیر دستگاه هش وجود نداشته باشد، بهصورت یک فایل ایجاد خواهد شد.
<گزینهها> میتوانند [--hash, --no-superblock, --format, --data-block-size, --hash-block-size, --data-blocks, --hash-offset, --salt, --uuid, --root-hash-file] باشند.
اگر از گزینه --root-hash-file استفاده شود، هش ریشه در قالب متن کدگذاریشده هگزادسیمال در <path> ذخیره میشود.
باز کردن (OPEN)
open <data_device> <name> <hash_device>
<root_hash>
open <data_device> <name> <hash_device> --root-hash-file
<path>
create <name> <data_device> <hash_device> <root_hash>
(نحو
منسوخشده)
یک نگاشت با نام <name> با تکیه بر دستگاه <data_device> و با استفاده از <hash_device> برای اعتبارسنجی درون هسته ایجاد میکند.
مقدار <root_hash> یک رشته هگزادسیمال است.
<گزینهها> میتوانند [--hash-offset, --no-superblock, --ignore-corruption or --restart-on-corruption, --panic-on-corruption, --ignore-zero-blocks, --check-at-most-once, --root-hash-signature, --root-hash-file, --use-tasklets, --shared] باشند.
اگر از گزینه --root-hash-file استفاده شود، هش ریشه به جای پارامتر خط فرمان، از <path> خوانده میشود. انتظار میرود متن کدگذاریشده هگزادسیمال، بدون نویسه خط جدید پایانی باشد.
در صورت استفاده از --no-superblock، باید از همان گزینههایی استفاده کنید که در عملیات قالببندی اولیه استفاده شده بود.
اعتبارسنجی (VERIFY)
verify <data_device> <hash_device>
<root_hash>
verify <data_device> <hash_device> --root-hash-file
<path>
دادههای روی data_device را با استفاده از بلوکهای هش ذخیرهشده در hash_device اعتبارسنجی میکند.
این دستور اعتبارسنجی را در فضای کاربری (userspace) انجام میدهد؛ هیچ دستگاه هستهای ایجاد نمیشود.
مقدار <root_hash> یک رشته هگزادسیمال است.
اگر از گزینه --root-hash-file استفاده شود، هش ریشه به جای پارامتر خط فرمان، از <path> خوانده میشود. انتظار میرود متن کدگذاریشده هگزادسیمال، بدون نویسه خط جدید پایانی باشد.
<گزینهها> میتوانند [--hash-offset, --no-superblock, --root-hash-file] باشند.
در صورت استفاده از --no-superblock، باید از همان گزینههایی استفاده کنید که در عملیات قالببندی اولیه استفاده شده بود.
بستن (CLOSE)
close <name>
remove <name> (نحو
منسوخشده)
نگاشت موجود <name> را حذف میکند.
<گزینهها> میتوانند [--deferred] یا [--cancel-deferred] باشند.
وضعیت (STATUS)
status <name>
وضعیت نگاشت فعال verity با نام <name> را گزارش میدهد.
تخلیه اطلاعات (DUMP)
dump <hash_device>
پارامترهای دستگاه verity را از ابربلوک ذخیرهشده روی دیسک گزارش میدهد.
<گزینهها> میتوانند [--hash-offset] باشند.
گزینهها (OPTIONS)
--batch-mode, -q
--cancel-deferred
--check-at-most-once
هشدار: این گزینه سطح امنیت را کاهش میدهد زیرا تنها دستکاری آفلاین محتوای دستگاه داده تشخیص داده خواهد شد، نه دستکاری برخط (آنلاین).
--data-blocks blocks
--data-block-size bytes
--debug
--deferred
--error-as-corruption
--fec-device device
آرگومان دستگاه FEC میتواند یک دستگاه بلوکی یا یک تصویر فایل باشد. برای دستور format، در صورتی که مسیر دستگاه FEC وجود نداشته باشد، بهصورت یک فایل ایجاد میشود.
اندازه بلوکها برای دستگاههای داده و هش باید یکسان باشد. همچنین، اگر دستگاه داده (data_device) در verity رمزنگاری شده باشد، دستگاه fec_device نیز باید رمزنگاری شود.
محاسبه FEC شامل دادهها، ناحیه هش و فراداده اختیاری خارجی ذخیرهشده روی همان دستگاه حاوی درخت هش (فضای اضافی بعد از ناحیه هش) میشود. اندازه این ناحیه اضافی اختیاری محافظتشده توسط FEC از روی اندازه تصاویر محاسبه میشود، بنابراین باید برای فعالسازی از همان تصاویر استفاده کنید.
اگر دستگاه هش در یک تصویر جداگانه باشد، فراداده کل تصویر بعد از ناحیه هش را پوشش میدهد.
در صورتی که دستگاه هش و FEC هر دو در تصویر باشند، فراداده در آفست ناحیه FEC خاتمه مییابد.
--fec-offset bytes
--fec-roots number
--format number
--hash hash
--hash-block-size bytes
--hash-offset bytes
--help, -?
--ignore-corruption, --restart-on-corruption, --panic-on-corruption
بدون این گزینهها، هسته عملیات ورودی/خروجی را با خطای I/O رد میکند. با گزینه --ignore-corruption، خرابی تنها در گزارشها ثبت میشود. با گزینههای --restart-on-corruption یا --panic-on-corruption، هسته بلافاصله راهاندازی مجدد میشود (وحشت هسته / panic رخ میدهد). (شما باید سازوکاری برای جلوگیری از حلقههای راهاندازی مجدد فراهم کنید.)
از این گزینهها فقط در موارد بسیار خاص استفاده کنید.
--ignore-zero-blocks
از این گزینه فقط در موارد بسیار خاص استفاده کنید.
--no-superblock
--root-hash-file file*
--root-hash-signature file*
--salt=hex string
--shared
--usage
--use-tasklets
--uuid UUID
مقدار UUID باید در قالب استاندارد UUID ارائه شود، مانند 12345678-1234-1234-1234-123456789abc.
--verbose, -v
--version, -V
کدهای بازگشتی (RETURN CODES)
دستور veritysetup در صورت موفقیت مقدار 0 و در صورت بروز خطا یک مقدار غیرصفر برمیگرداند.
کدهای خطا عبارتند از: 1 پارامترهای نادرست، 2 عدم دسترسی یا مجوز ناکافی، 3 کمبود حافظه، 4 دستگاه نادرست مشخصشده، 5 دستگاه از قبل وجود دارد یا دستگاه مشغول است.
مثالها (EXAMPLES)
veritysetup --data-blocks=256 format <data_device> <hash_device>
دادههای اعتبارسنجی را روی hash_device برای ۲۵۶ بلوک اول (با اندازه بلوک) محاسبه و ذخیره میکند. اگر hash_device وجود نداشته باشد، ایجاد خواهد شد (بهصورت یک تصویر فایل).
veritysetup format --root-hash-file <path> <data_device> <hash_device>
دادههای اعتبارسنجی را روی hash_device برای کل data_device محاسبه و ذخیره میکند، و هش ریشه را بهصورت متن کدگذاریشده هگزادسیمال در <path> ذخیره مینماید.
veritysetup --data-blocks=256 --hash-offset=1052672 format <device> <device>
دادههای اعتبارسنجی (هشها) روی همان دستگاه داده ذخیره میشوند (با شروع از hash-offset). آفست هش باید بزرگتر از تعداد بلوکهای موجود در ناحیه داده باشد.
veritysetup --data-blocks=256 --hash-offset=1052672 create test-device <device> <device> <root_hash>
دستگاه verity به نام test-device را فعال میکند. گزینههای --data-blocks و --hash-offset مانند دستور format هستند. مقدار <root_hash> در دستور format محاسبه شده بود.
veritysetup --data-blocks=256 --hash-offset=1052672 verify <data_device> <hash_device> <root_hash>
دستگاه را بدون فعالسازی اعتبارسنجی میکند (در فضای کاربری).
veritysetup --data-blocks=256 --hash-offset=1052672 --root-hash-file <path> verify <data_device> <hash_device>
دستگاه را بدون فعالسازی اعتبارسنجی میکند (در فضای کاربری). هش ریشه به جای ورودی مستقیم، از طریق فایل ارسال میشود.
veritysetup --fec-device=<fec_device> --fec-roots=10 format <data_device> <hash_device>
دادههای اعتبارسنجی و کدگذاری را برای data_device محاسبه و ذخیره میکند.
فرمت روی دیسک DM-VERITY (DM-VERITY ON-DISK SPECIFICATION)
مشخصات قالب روی دیسک در صفحه DMVerity https://gitlab.com/cryptsetup/cryptsetup/wikis/DMVerity در دسترس است.
نویسندگان (AUTHORS)
نخستین پیادهسازی veritysetup توسط نویسندگان Chrome OS نوشته شده بود.
این نسخه بر اساس کد اعتبارسنجی نوشتهشده توسط Mikulas Patocka <mpatocka@redhat.com> است و توسط Milan Broz <gmazyland@gmail.com>. برای libcryptsetup بازنویسی شده است.
گزارش باگها (REPORTING BUGS)
باگها را به لیست پستی cryptsetup <cryptsetup@lists.linux.dev> ارسال کنید یا در بخش مسائل پروژه https://gitlab.com/cryptsetup/cryptsetup/-/issues/new. گزارش دهید.
لطفاً خروجی دستور ناموفق را همراه با گزینه --debug پیوست کنید.
همچنین ببینید (SEE ALSO)
پرسشهای متداول Cryptsetup https://gitlab.com/cryptsetup/cryptsetup/wikis/FrequentlyAskedQuestions
CRYPTSETUP
بخشی از پروژه cryptsetup https://gitlab.com/cryptsetup/cryptsetup.
| 2026-07-21 | veritysetup 2.8.7 |