'\" t .\" Title: ldmtool .\" Author: Matthew Booth .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 07/12/2024 .\" Manual: User Commands .\" Source: ldmtool .\" Language: English .\" .TH "LDMTOOL" "1" "07/12/2024" "ldmtool" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" ldmtool \- ابزاری برای مدیریت دیسک‌های پویای مایکروسافت ویندوز .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBldmtool\fR\ 'u \fBldmtool\fR [options] .HP \w'\fBldmtool\fR\ 'u \fBldmtool\fR [options] scan [\fIdevice\fR...] .HP \w'\fBldmtool\fR\ 'u \fBldmtool\fR [options] show diskgroup {\fIdisk\ group\ GUID\fR} .HP \w'\fBldmtool\fR\ 'u \fBldmtool\fR [options] show {volume | partition | disk} {\fIdisk\ group\ GUID\fR} {\fIobject\ name\fR} .HP \w'\fBldmtool\fR\ 'u \fBldmtool\fR [options] {create | remove} all .HP \w'\fBldmtool\fR\ 'u \fBldmtool\fR [options] {create | remove} volume {\fIdisk\ group\ GUID\fR} {\fIvolume\ name\fR} .SH "گزینه‌ها (OPTIONS)" .PP \fB\-d|\-\-device\fR \fIdevice\fR .RS 4 پویش خودکار \fIdevice\fR\&. .RE .SH "توضیحات (DESCRIPTION)" .PP \fBldmtool\fR ابزاری برای مدیریت دیسک‌های پویای مایکروسافت ویندوز است که از متادیتای LDM مایکروسافت استفاده می‌کنند\&. این ابزار می‌تواند آن‌ها را بازبینی کند و همچنین دستگاه‌های بلوکی device\-mapper را ایجاد یا حذف نماید تا بتوان آن‌ها را سوار (mount) کرد\&. .PP اگرچه می‌توان یک سیستم‌فایل را به‌صورت خواندن/نوشتن متصل کرد و محتویات آن را تغییر داد، \fBldmtool\fR قادر به تغییر خود متادیتای LDM نیست\&. یعنی نمی‌تواند دیسک‌های پویا را ایجاد، حذف یا ویرایش کند\&. .PP این ابزار همچنین قادر به سوار کردن حجم‌های RAID5 که یک پارتیشن کم دارند نیست، اگرچه می‌تواند حجم‌های آینه‌ای (mirrored) با یک پارتیشن مفقود را متصل کند\&. با این حال، سوار کردن یک حجم با پارتیشن مفقود توصیه نمی‌شود، زیرا ldmtool متادیتای LDM را به هیچ وجه به‌روزرسانی نمی‌کند\&. این بدان معناست که ویندوز هنگام اتصال بعدی راهی برای تشخیص عدم همگام‌سازی پارتیشن‌ها نخواهد داشت، که ممکن است به خرابی داده‌ها منجر شود\&. .SH "نحوه فراخوانی (INVOCATION)" .PP \fBldmtool\fR می‌تواند به عنوان یک شل برای اجرای چندین اقدام، یا برای اجرای یک اقدام منفرد و بازگشت فراخوانی شود\&. اگر اقدامی در خط فرمان مشخص شده باشد، در حالت اقدام منفرد اجرا خواهد شد\&. اگر اقدامی مشخص نشود، یک شل تعاملی اجرا خواهد شد\&. .SS "حالت شل (Shell mode)" .PP هنگامی که به صورت یک شل فراخوانی می‌شود، \fBldmtool\fR به‌صورت پیش‌فرض هیچ دستگاه بلوکی را پویش نمی‌کند\&. اگر هر دستگاه بلوکی در خط فرمان با گزینه \fB\-d\fR مشخص شده باشد، پویش خواهد شد\&. در غیر این صورت، دستگاه‌های بلوکی باید صریحاً با اقدام \fBscan\fR پویش شوند\&. .PP خروج از حالت شل با ارسال یک EOF، یا با اقدامات quit یا exit انجام می‌شود\&. .SS "حالت اقدام منفرد (Single action mode)" .PP هنگامی که برای اجرای یک اقدام منفرد فراخوانی می‌شود، تمام دستگاه‌های بلوکی به‌صورت پیش‌فرض پویش می‌شوند\&. در این حالت، اگر هر دستگاه بلوکی با گزینه \fB\-d\fR مشخص شده باشد، فقط همان دستگاه‌های بلوکی پویش خواهند شد\&. .SH "نتایج (RESULTS)" .PP \fBldmtool\fR نتایج را به عنوان داده‌های با قالب JSON بازمی‌گرداند\&. داده‌های دقیق بازگردانده‌شده در ادامه به تفصیل شرح داده شده است\&. اگر دستوری با شکست مواجه شود، هیچ داده JSON برنمی‌گرداند، بلکه پیامی خطا را نمایش می‌دهد\&. در حالت شل، عدم موفقیت را می‌توان از نبود نتیجه قالب‌بندی‌شده JSON تشخیص داد\&. در حالت اقدام منفرد، فراخواننده می‌تواند علاوه بر این، کد خروج دستور را نیز بررسی کند\&. .SH "اقدامات (ACTIONS)" .SS "scan [device...]" .PP پویش تمام [device]ها برای متادیتای LDM\&. .PP فهرستی از تمام شناسه(GUID)های شناخته‌شده گروه دیسک را برمی‌گرداند\&. توجه داشته باشید که این اقدام صرفاً گروه‌های دیسک تازه‌کشف‌شده را برنمی‌گرداند\&. .SS "show diskgroup {\fIGUID\fR}" .PP بازگرداندن اطلاعات دقیق درباره یک گروه دیسک منفرد\&. .PP \fBمقادیر بازگشتی:\fR .PP name .RS 4 نام خوانا برای انسان از گروه دیسک .RE .PP guid .RS 4 شناسه GUID اختصاص‌یافته توسط ویندوز برای گروه دیسک .RE .PP volumes .RS 4 فهرستی از نام تمام حجم‌های موجود در گروه دیسک .RE .PP disks .RS 4 فهرستی از نام تمام دیسک‌های موجود در گروه دیسک .RE .SS "show volume {\fIdisk\ group\ GUID\fR} {\fIvolume\ name\fR}" .PP بازگرداندن اطلاعات دقیق درباره یک حجم\&. .PP \fBمقادیر بازگشتی:\fR .PP name .RS 4 نام حجم .RE .PP guid .RS 4 شناسه GUID اختصاص‌یافته توسط ویندوز برای حجم .RE .PP type .RS 4 نوع حجم\&. یکی از موارد: simple , spanned , striped , mirrored , raid5 .RE .PP size .RS 4 اندازه حجم بر حسب سکتور .RE .PP chunk\-size .RS 4 اندازه چانک (قطعه)، بر حسب سکتور، استفاده‌شده توسط حجم‌های striped و raid5\&. برای سایر انواع حجم‌ها برابر با 0 خواهد بود\&. .RE .PP hint .RS 4 راهنمای اتصال حجم\&. این مقدار نحوه انتظار ویندوز برای سوار شدن حجم را مشخص می‌کند\&. برای یک حجم دارای حرف درایو اختصاص‌یافته، ممکن است \*(AqE:\*(Aq باشد\&. .RE .PP device .RS 4 دستگاه device\-mapper میزبان که در صورت وجود برای این حجم ایجاد شده است (به‌عنوان مثال /dev/mapper/ldm_vol_Machine\-Dg0_Volume1) .RE .PP partitions .RS 4 فهرستی از نام پارتیشن‌هایی که این حجم را تشکیل می‌دهند\&. .RE .SS "show partition {\fIdisk\ group\ GUID\fR} {\fIpartition\ name\fR}" .PP بازگرداندن اطلاعات دقیق درباره یک پارتیشن\&. .PP \fBمقادیر بازگشتی:\fR .PP name .RS 4 نام پارتیشن .RE .PP start .RS 4 آفست شروع پارتیشن از ابتدای دیسک، بر حسب سکتور .RE .PP size .RS 4 اندازه پارتیشن بر حسب سکتور .RE .PP disk .RS 4 نام دیسکی که پارتیشن روی آن قرار دارد .RE .SS "show disk {\fIdisk\ group\ GUID\fR} {\fIdisk\ name\fR}" .PP بازگرداندن اطلاعات دقیق درباره یک دیسک\&. .PP \fBمقادیر بازگشتی:\fR .PP name .RS 4 نام خوانا برای انسان از دیسک .RE .PP guid .RS 4 شناسه GUID دیسک .RE .PP present .RS 4 آیا دیسک در طول پویش شناسایی شده است: true یا false .RE .PP \fBاگر دیسک وجود داشته باشد، علاوه بر این موارد زیر را بازمی‌گرداند:\fR .PP device .RS 4 نام دستگاه میزبان (به‌عنوان مثال /dev/sda) .RE .PP data\-start .RS 4 سکتور آغازین بخش داده دیسک .RE .PP data\-size .RS 4 اندازه بخش داده دیسک، بر حسب سکتور .RE .PP metadata\-start .RS 4 سکتور آغازین بخش متادیتای دیسک .RE .PP metadata\-size .RS 4 اندازه بخش متادیتای دیسک، بر حسب سکتور .RE .SS "create {volume\ {\ \fIdisk\ group\ GUID\fR\ }\ {\ \fIvolume\ name\fR\ } | all}" .PP ایجاد یک دستگاه device\-mapper برای حجم مشخص‌شده یا تمام حجم‌ها در تمام گروه‌های دیسک شناسایی‌شده\&. .PP فهرستی از نام دستگاه‌های device\-mapper که توسط این اقدام ایجاد شده‌اند را بازمی‌گرداند\&. توجه داشته باشید که اگر دستگاهی از قبل برای یک حجم وجود داشته باشد، در این فهرست برگردانده نخواهد شد\&. .SS "remove {volume\ {\ \fIdisk\ group\ GUID\fR\ }\ {\ \fIvolume\ name\fR\ } | all}" .PP حذف دستگاه‌های device\-mapper برای حجم مشخص‌شده یا تمام حجم‌ها در تمام گروه‌های دیسک شناسایی‌شده\&. .PP فهرستی از نام دستگاه‌های device\-mapper که توسط این اقدام حذف شده‌اند را بازمی‌گرداند\&. توجه داشته باشید که اگر دستگاهی برای یک حجم وجود نداشته باشد، در این فهرست برگردانده نخواهد شد\&. .SH "مثال‌ها (EXAMPLES)" .PP مثال‌های زیر توالی یک نشست کاری منفرد از ldmtool را نشان می‌دهند که در حالت شل اجرا می‌شود\&. .PP پویش تمام دستگاه‌های لوپ (loop) برای متادیتای LDM: .sp .if n \{\ .RS 4 .\} .nf ldm> scan /dev/loop[0\-9]* [ "03c0c4fc\-8b6f\-402b\-9431\-4be2e5823b1c", "06495a84\-fbfd\-11e1\-8cf9\-52540061f5db" ] .fi .if n \{\ .RE .\} .PP دو گروه دیسک شناسایی شدند\&. این فهرست شامل GUIDهای آن‌ها است\&. .PP نمایش اطلاعات دقیق درباره یکی از گروه‌های دیسک: .sp .if n \{\ .RS 4 .\} .nf 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" ] } .fi .if n \{\ .RE .\} .PP نمایش اطلاعات دقیق درباره یکی از حجم‌های موجود در گروه دیسک: .sp .if n \{\ .RS 4 .\} .nf 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" ] } .fi .if n \{\ .RE .\} .PP نمایش اطلاعات دقیق درباره یکی از پارتیشن‌های موجود در حجم: .sp .if n \{\ .RS 4 .\} .nf ldm> show partition 06495a84\-fbfd\-11e1\-8cf9\-52540061f5db Disk1\-01 { "name" : "Disk1\-01", "start" : 65, "size" : 96256, "disk" : "Disk1" } .fi .if n \{\ .RE .\} .PP نمایش اطلاعات دقیق درباره دیسک حاوی پارتیشن: .sp .if n \{\ .RS 4 .\} .nf 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 } .fi .if n \{\ .RE .\} .PP ایجاد یک دستگاه device\-mapper برای یک حجم: .sp .if n \{\ .RS 4 .\} .nf ldm> create volume 06495a84\-fbfd\-11e1\-8cf9\-52540061f5db Volume1 [ "ldm_vol_WIN\-ERRDJSBDAVF\-Dg0_Volume1" ] .fi .if n \{\ .RE .\} .PP یک دستگاه device\-mapper جدید ایجاد شده است، با نام ldm_vol_WIN\-ERRDJSBDAVF\-Dg0_Volume1\&. بسته به نحوه پیکربندی udev، احتمالاً اکنون به عنوان /dev/mapper/ldm_vol_WIN\-ERRDJSBDAVF\-Dg0_Volume1 در دسترس خواهد بود\&. .PP توجه داشته باشید که نام بازگردانده‌شده دستگاه device\-mapper ایجادشده بدون تغییر شکل (unmangled) است و بنابراین می‌تواند شامل نویسه‌های خارج از لیست مجاز باشد\&. ابزارهای فضای کاربر device\-mapper (مانند dmsetup) و کتابخانه libdevmapper نام‌های تغییرنیافته را می‌پذیرند (در صورتی که به‌درستی پیکربندی شده باشند)، اما هنگام ساختن مسیر برای یک دستگاه ایجادشده توسط خودتان بسیار دقت کنید\&. استفاده از فیلد "device" در خروجی دستور \fBshow volume\fR توصیه می‌شود\&. .PP ایجاد دستگاه‌های device\-mapper برای تمام حجم‌ها در هر دو گروه دیسک: .sp .if n \{\ .RS 4 .\} .nf 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" ] .fi .if n \{\ .RE .\} .PP توجه داشته باشید که ldm_vol_WIN\-ERRDJSBDAVF\-Dg0_Volume1 در فهرست دستگاه‌های ایجادشده نیست، زیرا از قبل وجود داشته است\&. .PP حذف دستگاه device\-mapper برای یک حجم منفرد: .sp .if n \{\ .RS 4 .\} .nf ldm> remove volume 06495a84\-fbfd\-11e1\-8cf9\-52540061f5db Volume2 [ "ldm_vol_WIN\-ERRDJSBDAVF\-Dg0_Volume2" ] .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf 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" ] .fi .if n \{\ .RE .\} .PP توجه داشته باشید که ldm_vol_WIN\-ERRDJSBDAVF\-Dg0_Volume2 در فهرست دستگاه‌های حذف‌شده نیست، زیرا قبلاً حذف شده بود\&. .SH "نویسندگان (AUTHORS)" .PP \fBMatthew Booth\fR <\&mbooth@redhat\&.com\&> .RS 4 .RE