LDMTOOL(1) User Commands LDMTOOL(1)

ldmtool - ابزاری برای مدیریت دیسک‌های پویای مایکروسافت ویندوز

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}

-d|--device device

پویش خودکار device.

ldmtool ابزاری برای مدیریت دیسک‌های پویای مایکروسافت ویندوز است که از متادیتای LDM مایکروسافت استفاده می‌کنند. این ابزار می‌تواند آن‌ها را بازبینی کند و همچنین دستگاه‌های بلوکی device-mapper را ایجاد یا حذف نماید تا بتوان آن‌ها را سوار (mount) کرد.

اگرچه می‌توان یک سیستم‌فایل را به‌صورت خواندن/نوشتن متصل کرد و محتویات آن را تغییر داد، ldmtool قادر به تغییر خود متادیتای LDM نیست. یعنی نمی‌تواند دیسک‌های پویا را ایجاد، حذف یا ویرایش کند.

این ابزار همچنین قادر به سوار کردن حجم‌های RAID5 که یک پارتیشن کم دارند نیست، اگرچه می‌تواند حجم‌های آینه‌ای (mirrored) با یک پارتیشن مفقود را متصل کند. با این حال، سوار کردن یک حجم با پارتیشن مفقود توصیه نمی‌شود، زیرا ldmtool متادیتای LDM را به هیچ وجه به‌روزرسانی نمی‌کند. این بدان معناست که ویندوز هنگام اتصال بعدی راهی برای تشخیص عدم همگام‌سازی پارتیشن‌ها نخواهد داشت، که ممکن است به خرابی داده‌ها منجر شود.

ldmtool می‌تواند به عنوان یک شل برای اجرای چندین اقدام، یا برای اجرای یک اقدام منفرد و بازگشت فراخوانی شود. اگر اقدامی در خط فرمان مشخص شده باشد، در حالت اقدام منفرد اجرا خواهد شد. اگر اقدامی مشخص نشود، یک شل تعاملی اجرا خواهد شد.

هنگامی که به صورت یک شل فراخوانی می‌شود، ldmtool به‌صورت پیش‌فرض هیچ دستگاه بلوکی را پویش نمی‌کند. اگر هر دستگاه بلوکی در خط فرمان با گزینه -d مشخص شده باشد، پویش خواهد شد. در غیر این صورت، دستگاه‌های بلوکی باید صریحاً با اقدام scan پویش شوند.

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

هنگامی که برای اجرای یک اقدام منفرد فراخوانی می‌شود، تمام دستگاه‌های بلوکی به‌صورت پیش‌فرض پویش می‌شوند. در این حالت، اگر هر دستگاه بلوکی با گزینه -d مشخص شده باشد، فقط همان دستگاه‌های بلوکی پویش خواهند شد.

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

پویش تمام [device]ها برای متادیتای LDM.

فهرستی از تمام شناسه(GUID)های شناخته‌شده گروه دیسک را برمی‌گرداند. توجه داشته باشید که این اقدام صرفاً گروه‌های دیسک تازه‌کشف‌شده را برنمی‌گرداند.

بازگرداندن اطلاعات دقیق درباره یک گروه دیسک منفرد.

مقادیر بازگشتی:

name

نام خوانا برای انسان از گروه دیسک

guid

شناسه GUID اختصاص‌یافته توسط ویندوز برای گروه دیسک

volumes

فهرستی از نام تمام حجم‌های موجود در گروه دیسک

disks

فهرستی از نام تمام دیسک‌های موجود در گروه دیسک

بازگرداندن اطلاعات دقیق درباره یک حجم.

مقادیر بازگشتی:

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

فهرستی از نام پارتیشن‌هایی که این حجم را تشکیل می‌دهند.

بازگرداندن اطلاعات دقیق درباره یک پارتیشن.

مقادیر بازگشتی:

name

نام پارتیشن

start

آفست شروع پارتیشن از ابتدای دیسک، بر حسب سکتور

size

اندازه پارتیشن بر حسب سکتور

disk

نام دیسکی که پارتیشن روی آن قرار دارد

بازگرداندن اطلاعات دقیق درباره یک دیسک.

مقادیر بازگشتی:

name

نام خوانا برای انسان از دیسک

guid

شناسه GUID دیسک

present

آیا دیسک در طول پویش شناسایی شده است: true یا false

اگر دیسک وجود داشته باشد، علاوه بر این موارد زیر را بازمی‌گرداند:

device

نام دستگاه میزبان (به‌عنوان مثال /dev/sda)

data-start

سکتور آغازین بخش داده دیسک

data-size

اندازه بخش داده دیسک، بر حسب سکتور

metadata-start

سکتور آغازین بخش متادیتای دیسک

metadata-size

اندازه بخش متادیتای دیسک، بر حسب سکتور

ایجاد یک دستگاه device-mapper برای حجم مشخص‌شده یا تمام حجم‌ها در تمام گروه‌های دیسک شناسایی‌شده.

فهرستی از نام دستگاه‌های device-mapper که توسط این اقدام ایجاد شده‌اند را بازمی‌گرداند. توجه داشته باشید که اگر دستگاهی از قبل برای یک حجم وجود داشته باشد، در این فهرست برگردانده نخواهد شد.

حذف دستگاه‌های device-mapper برای حجم مشخص‌شده یا تمام حجم‌ها در تمام گروه‌های دیسک شناسایی‌شده.

فهرستی از نام دستگاه‌های device-mapper که توسط این اقدام حذف شده‌اند را بازمی‌گرداند. توجه داشته باشید که اگر دستگاهی برای یک حجم وجود نداشته باشد، در این فهرست برگردانده نخواهد شد.

مثال‌های زیر توالی یک نشست کاری منفرد از 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 در فهرست دستگاه‌های حذف‌شده نیست، زیرا قبلاً حذف شده بود.

Matthew Booth <mbooth@redhat.com>

07/12/2024 ldmtool