LDMTOOL(1) User Commands LDMTOOL(1) نام (NAME) ldmtool - ابزاری برای مدیریت دیسک‌های پویای مایکروسافت ویندوز خلاصه دستور (SYNOPSIS) ldmtool [options] ldmtool [options] scan [device...] ldmtool [options] show diskgroup {disk group GUID} ldmtool [options] show {volume | partition | disk} {disk group GUID} {object name} ldmtool [options] {create | remove} all ldmtool [options] {create | remove} volume {disk group GUID} {volume name} گزینه‌ها (OPTIONS) -d|--device device پویش خودکار device. توضیحات (DESCRIPTION) ldmtool ابزاری برای مدیریت دیسک‌های پویای مایکروسافت ویندوز است که از متادیتای LDM مایکروسافت استفاده می‌کنند. این ابزار می‌تواند آن‌ها را بازبینی کند و همچنین دستگاه‌های بلوکی device-mapper را ایجاد یا حذف نماید تا بتوان آن‌ها را سوار (mount) کرد. اگرچه می‌توان یک سیستم‌فایل را به‌صورت خواندن/نوشتن متصل کرد و محتویات آن را تغییر داد، ldmtool قادر به تغییر خود متادیتای LDM نیست. یعنی نمی‌تواند دیسک‌های پویا را ایجاد، حذف یا ویرایش کند. این ابزار همچنین قادر به سوار کردن حجم‌های RAID5 که یک پارتیشن کم دارند نیست، اگرچه می‌تواند حجم‌های آینه‌ای (mirrored) با یک پارتیشن مفقود را متصل کند. با این حال، سوار کردن یک حجم با پارتیشن مفقود توصیه نمی‌شود، زیرا ldmtool متادیتای LDM را به هیچ وجه به‌روزرسانی نمی‌کند. این بدان معناست که ویندوز هنگام اتصال بعدی راهی برای تشخیص عدم همگام‌سازی پارتیشن‌ها نخواهد داشت، که ممکن است به خرابی داده‌ها منجر شود. نحوه فراخوانی (INVOCATION) ldmtool می‌تواند به عنوان یک شل برای اجرای چندین اقدام، یا برای اجرای یک اقدام منفرد و بازگشت فراخوانی شود. اگر اقدامی در خط فرمان مشخص شده باشد، در حالت اقدام منفرد اجرا خواهد شد. اگر اقدامی مشخص نشود، یک شل تعاملی اجرا خواهد شد. حالت شل (Shell mode) هنگامی که به صورت یک شل فراخوانی می‌شود، ldmtool به‌صورت پیش‌فرض هیچ دستگاه بلوکی را پویش نمی‌کند. اگر هر دستگاه بلوکی در خط فرمان با گزینه -d مشخص شده باشد، پویش خواهد شد. در غیر این صورت، دستگاه‌های بلوکی باید صریحاً با اقدام scan پویش شوند. خروج از حالت شل با ارسال یک EOF، یا با اقدامات quit یا exit انجام می‌شود. حالت اقدام منفرد (Single action mode) هنگامی که برای اجرای یک اقدام منفرد فراخوانی می‌شود، تمام دستگاه‌های بلوکی به‌صورت پیش‌فرض پویش می‌شوند. در این حالت، اگر هر دستگاه بلوکی با گزینه -d مشخص شده باشد، فقط همان دستگاه‌های بلوکی پویش خواهند شد. نتایج (RESULTS) ldmtool نتایج را به عنوان داده‌های با قالب JSON بازمی‌گرداند. داده‌های دقیق بازگردانده‌شده در ادامه به تفصیل شرح داده شده است. اگر دستوری با شکست مواجه شود، هیچ داده JSON برنمی‌گرداند، بلکه پیامی خطا را نمایش می‌دهد. در حالت شل، عدم موفقیت را می‌توان از نبود نتیجه قالب‌بندی‌شده JSON تشخیص داد. در حالت اقدام منفرد، فراخواننده می‌تواند علاوه بر این، کد خروج دستور را نیز بررسی کند. اقدامات (ACTIONS) scan [device...] پویش تمام [device]ها برای متادیتای LDM. فهرستی از تمام شناسه(GUID)های شناخته‌شده گروه دیسک را برمی‌گرداند. توجه داشته باشید که این اقدام صرفاً گروه‌های دیسک تازه‌کشف‌شده را برنمی‌گرداند. show diskgroup {GUID} بازگرداندن اطلاعات دقیق درباره یک گروه دیسک منفرد. مقادیر بازگشتی: name نام خوانا برای انسان از گروه دیسک guid شناسه GUID اختصاص‌یافته توسط ویندوز برای گروه دیسک volumes فهرستی از نام تمام حجم‌های موجود در گروه دیسک disks فهرستی از نام تمام دیسک‌های موجود در گروه دیسک show volume {disk group GUID} {volume name} بازگرداندن اطلاعات دقیق درباره یک حجم. مقادیر بازگشتی: name نام حجم guid شناسه GUID اختصاص‌یافته توسط ویندوز برای حجم type نوع حجم. یکی از موارد: simple , spanned , striped , mirrored , raid5 size اندازه حجم بر حسب سکتور chunk-size اندازه چانک (قطعه)، بر حسب سکتور، استفاده‌شده توسط حجم‌های striped و raid5. برای سایر انواع حجم‌ها برابر با 0 خواهد بود. hint راهنمای اتصال حجم. این مقدار نحوه انتظار ویندوز برای سوار شدن حجم را مشخص می‌کند. برای یک حجم دارای حرف درایو اختصاص‌یافته، ممکن است 'E:' باشد. device دستگاه device-mapper میزبان که در صورت وجود برای این حجم ایجاد شده است (به‌عنوان مثال /dev/mapper/ldm_vol_Machine-Dg0_Volume1) partitions فهرستی از نام پارتیشن‌هایی که این حجم را تشکیل می‌دهند. show partition {disk group GUID} {partition name} بازگرداندن اطلاعات دقیق درباره یک پارتیشن. مقادیر بازگشتی: name نام پارتیشن start آفست شروع پارتیشن از ابتدای دیسک، بر حسب سکتور size اندازه پارتیشن بر حسب سکتور disk نام دیسکی که پارتیشن روی آن قرار دارد show disk {disk group GUID} {disk name} بازگرداندن اطلاعات دقیق درباره یک دیسک. مقادیر بازگشتی: name نام خوانا برای انسان از دیسک guid شناسه GUID دیسک present آیا دیسک در طول پویش شناسایی شده است: true یا false اگر دیسک وجود داشته باشد، علاوه بر این موارد زیر را بازمی‌گرداند: device نام دستگاه میزبان (به‌عنوان مثال /dev/sda) data-start سکتور آغازین بخش داده دیسک data-size اندازه بخش داده دیسک، بر حسب سکتور metadata-start سکتور آغازین بخش متادیتای دیسک metadata-size اندازه بخش متادیتای دیسک، بر حسب سکتور create {volume { disk group GUID } { volume name } | all} ایجاد یک دستگاه device-mapper برای حجم مشخص‌شده یا تمام حجم‌ها در تمام گروه‌های دیسک شناسایی‌شده. فهرستی از نام دستگاه‌های device-mapper که توسط این اقدام ایجاد شده‌اند را بازمی‌گرداند. توجه داشته باشید که اگر دستگاهی از قبل برای یک حجم وجود داشته باشد، در این فهرست برگردانده نخواهد شد. remove {volume { disk group GUID } { volume name } | all} حذف دستگاه‌های device-mapper برای حجم مشخص‌شده یا تمام حجم‌ها در تمام گروه‌های دیسک شناسایی‌شده. فهرستی از نام دستگاه‌های device-mapper که توسط این اقدام حذف شده‌اند را بازمی‌گرداند. توجه داشته باشید که اگر دستگاهی برای یک حجم وجود نداشته باشد، در این فهرست برگردانده نخواهد شد. مثال‌ها (EXAMPLES) مثال‌های زیر توالی یک نشست کاری منفرد از ldmtool را نشان می‌دهند که در حالت شل اجرا می‌شود. پویش تمام دستگاه‌های لوپ (loop) برای متادیتای LDM: ldm> scan /dev/loop[0-9]* [ "03c0c4fc-8b6f-402b-9431-4be2e5823b1c", "06495a84-fbfd-11e1-8cf9-52540061f5db" ] دو گروه دیسک شناسایی شدند. این فهرست شامل GUIDهای آن‌ها است. نمایش اطلاعات دقیق درباره یکی از گروه‌های دیسک: ldm> show diskgroup 06495a84-fbfd-11e1-8cf9-52540061f5db { "name" : "WIN-ERRDJSBDAVF-Dg0", "guid" : "06495a84-fbfd-11e1-8cf9-52540061f5db", "volumes" : [ "Volume4", "Volume1", "Volume2", "Volume3", "Volume5" ], "disks" : [ "Disk1", "Disk2", "Disk3", "Disk4", "Disk5", "Disk6", "Disk7", "Disk8", "Disk9" ] } نمایش اطلاعات دقیق درباره یکی از حجم‌های موجود در گروه دیسک: ldm> show volume 06495a84-fbfd-11e1-8cf9-52540061f5db Volume1 { "name" : "Volume1", "guid" : "c08309e9-1d30-43e5-8dc3-fcec8be76fcc", "type" : "spanned", "size" : 129024, "chunk-size" : 0, "hint" : "E:", "device" : "ldm_vol_WIN-ERRDJSBDAVF-Dg0_Volume1", "partitions" : [ "Disk1-01", "Disk2-01" ] } نمایش اطلاعات دقیق درباره یکی از پارتیشن‌های موجود در حجم: ldm> show partition 06495a84-fbfd-11e1-8cf9-52540061f5db Disk1-01 { "name" : "Disk1-01", "start" : 65, "size" : 96256, "disk" : "Disk1" } نمایش اطلاعات دقیق درباره دیسک حاوی پارتیشن: ldm> show disk 06495a84-fbfd-11e1-8cf9-52540061f5db Disk1 { "name" : "Disk1", "guid" : "06495a85-fbfd-11e1-8cf9-52540061f5db", "present" : true, "device" : "/dev/loop15", "data-start" : 63, "data-size" : 100289, "metadata-start" : 100352, "metadata-size" : 2048 } ایجاد یک دستگاه device-mapper برای یک حجم: ldm> create volume 06495a84-fbfd-11e1-8cf9-52540061f5db Volume1 [ "ldm_vol_WIN-ERRDJSBDAVF-Dg0_Volume1" ] یک دستگاه device-mapper جدید ایجاد شده است، با نام ldm_vol_WIN-ERRDJSBDAVF-Dg0_Volume1. بسته به نحوه پیکربندی udev، احتمالاً اکنون به عنوان /dev/mapper/ldm_vol_WIN-ERRDJSBDAVF-Dg0_Volume1 در دسترس خواهد بود. توجه داشته باشید که نام بازگردانده‌شده دستگاه device-mapper ایجادشده بدون تغییر شکل (unmangled) است و بنابراین می‌تواند شامل نویسه‌های خارج از لیست مجاز باشد. ابزارهای فضای کاربر device-mapper (مانند dmsetup) و کتابخانه libdevmapper نام‌های تغییرنیافته را می‌پذیرند (در صورتی که به‌درستی پیکربندی شده باشند)، اما هنگام ساختن مسیر برای یک دستگاه ایجادشده توسط خودتان بسیار دقت کنید. استفاده از فیلد "device" در خروجی دستور show volume توصیه می‌شود. ایجاد دستگاه‌های device-mapper برای تمام حجم‌ها در هر دو گروه دیسک: ldm> create all [ "ldm_vol_Red-nzv8x6obywgDg0_Volume2", "ldm_vol_Red-nzv8x6obywgDg0_Volume1", "ldm_vol_Red-nzv8x6obywgDg0_Volume4", "ldm_vol_Red-nzv8x6obywgDg0_Stripe1", "ldm_vol_Red-nzv8x6obywgDg0_Raid1", "ldm_vol_Red-nzv8x6obywgDg0_Volume3", "ldm_vol_WIN-ERRDJSBDAVF-Dg0_Volume4", "ldm_vol_WIN-ERRDJSBDAVF-Dg0_Volume2", "ldm_vol_WIN-ERRDJSBDAVF-Dg0_Volume3", "ldm_vol_WIN-ERRDJSBDAVF-Dg0_Volume5" ] توجه داشته باشید که ldm_vol_WIN-ERRDJSBDAVF-Dg0_Volume1 در فهرست دستگاه‌های ایجادشده نیست، زیرا از قبل وجود داشته است. حذف دستگاه device-mapper برای یک حجم منفرد: ldm> remove volume 06495a84-fbfd-11e1-8cf9-52540061f5db Volume2 [ "ldm_vol_WIN-ERRDJSBDAVF-Dg0_Volume2" ] ldm> remove all [ "ldm_vol_Red-nzv8x6obywgDg0_Volume2", "ldm_vol_Red-nzv8x6obywgDg0_Volume1", "ldm_vol_Red-nzv8x6obywgDg0_Volume4", "ldm_vol_Red-nzv8x6obywgDg0_Stripe1", "ldm_vol_Red-nzv8x6obywgDg0_Raid1", "ldm_vol_Red-nzv8x6obywgDg0_Volume3", "ldm_vol_WIN-ERRDJSBDAVF-Dg0_Volume4", "ldm_vol_WIN-ERRDJSBDAVF-Dg0_Volume1", "ldm_vol_WIN-ERRDJSBDAVF-Dg0_Volume3", "ldm_vol_WIN-ERRDJSBDAVF-Dg0_Volume5" ] توجه داشته باشید که ldm_vol_WIN-ERRDJSBDAVF-Dg0_Volume2 در فهرست دستگاه‌های حذف‌شده نیست، زیرا قبلاً حذف شده بود. نویسندگان (AUTHORS) Matthew Booth ldmtool 07/12/2024 LDMTOOL(1)