systemd-dissect, mount.ddi -
بازرسی،
تشریح و
مانت
تصاویر
دیسک
سیستمعامل
systemd-dissect [OPTIONS...] IMAGE
systemd-dissect [OPTIONS...] [--mount] IMAGE
PATH
systemd-dissect [OPTIONS...] [--umount] PATH
systemd-dissect [OPTIONS...] [--attach] IMAGE
systemd-dissect [OPTIONS...] [--detach] PATH
systemd-dissect [OPTIONS...] [--list] IMAGE
systemd-dissect [OPTIONS...] [--mtree] IMAGE
systemd-dissect [OPTIONS...] [--with] IMAGE
[COMMAND...]
systemd-dissect [OPTIONS...] [--copy-from] IMAGE
PATH [TARGET]
systemd-dissect [OPTIONS...] [--copy-to] IMAGE
[SOURCE] PATH
systemd-dissect [OPTIONS...] [--make-archive]
IMAGE [TARGET]
systemd-dissect [OPTIONS...] [--discover]
systemd-dissect [OPTIONS...] [--validate]
IMAGE
systemd-dissect [OPTIONS...] [--shift] IMAGE
UIDBASE
systemd-dissect
ابزاری
برای
بازرسی،
کالبدشکافی
و تعامل با
تصاویر
دیسک
سیستمعامل
در سطح
سیستم
فایل، به
ویژه
«تصاویر
دیسک
قابلکشف»
(Discoverable Disk Images یا DDIs) است.
این ابزار
از چهار
عملیات
مختلف
پشتیبانی
میکند:
1.نمایش
اطلاعات
عمومی
تصویر
سیستمعامل،
از جمله
دادههای
os-release(5) تصویر،
شناسه
ماشین (machine ID)،
اطلاعات
پارتیشنها
و موارد
دیگر.
2.مانت
کردن یک
تصویر
سیستمعامل
در یک
دایرکتوری
محلی. در این
حالت،
تصویر
سیستمعامل
را تشریح
کرده و
پارتیشنهای
موجود در آن
را با توجه
به کاربرد و
شناسه
آنها بر
روی یک
دایرکتوری
و احتمالاً
زیردایرکتوریهای
آن مانت
میکند.
3.آنمانت
کردن تصویر
سیستمعامل
از یک
دایرکتوری
محلی. در این
حالت،
پارتیشنهای
مانتشده
را به صورت
بازگشتی
آنمانت
کرده و
دستگاه
حلقهای (loop device)
زیرین را
همراه با
تمام
زیردستگاههای
پارتیشن آن
حذف
میکند.
4.کپی
کردن
فایلها و
دایرکتوریها
به داخل و
خارج از
تصویر
سیستمعامل.
این ابزار
میتواند
روی سه نوع
تصویر
سیستمعامل
عمل کند:
1.تصاویر
دیسک
سیستمعامل
که شامل یک
پوسته جدول
پارتیشن GPT
هستند و
پارتیشنهای
آنها
مطابق با UAPI.2
Discoverable Partitions Specification[1]
علامتگذاری
شدهاند.
2.تصاویر
دیسک
سیستمعامل
که صرفاً
شامل یک
سیستم فایل
ساده بدون
جدول
پارتیشن
پیرامونی
هستند. (فرض
میشود این
سیستم
فایل،
سیستم فایل
ریشه
سیستمعامل
است.)
3.تصاویر
دیسک
سیستمعامل
شامل جدول
پارتیشن GPT یا
MBR که تنها یک
پارتیشن
منفرد
دارند. (فرض
میشود این
پارتیشن
حاوی سیستم
فایل ریشه
سیستمعامل
است.)
تصاویر
سیستمعامل
ممکن است از
هر نوع
سیستم فایل
پشتیبانیشده
در لینوکس
استفاده
کنند. علاوه
بر این،
ممکن است از
رمزنگاری
دیسک LUKS
استفاده
نمایند و
حاوی
اطلاعات
یکپارچگی Verity
باشند. توجه
داشته
باشید که
تصاویر
سیستمعامل
واجد شرایط
را میتوان
با سوییچ --image=
دستور systemd-nspawn(1)
بوت کرد، و
با استفاده
از تنظیم RootImage=
در فایل
واحد (unit file) به
عنوان
سیستم فایل
ریشه برای
سرویسهای
سیستمی
استفاده
نمود؛ systemd.exec(5)
را ببینید.
توجه
داشته
باشید که
جدول
پارتیشن
نمایشدادهشده
هنگام
فراخوانی
بدون سوییچ
دستور
(همانطور
که در زیر
فهرست شده
است) لزوماً
همه
پارتیشنهای
موجود در
تصویر را
نشان
نمیدهد،
بلکه صرفاً
پارتیشنهایی
را نمایش
میدهد که
شناخته
شدهاند و
بخشی از
تصویر دیسک
سیستمعامل
به شمار
میروند. به
طور خاص،
پارتیشنهای
با نوع
ناشناخته و
همچنین
پارتیشنهای
تکراری
(یعنی بیش از
یک مورد
برای هر نوع
پارتیشن)
نادیده
گرفته
میشوند،
همانطور
که
پارتیشنهای
ریشه و /usr/
مربوط به
معماریهایی
که با سیستم
محلی
ناسازگارند
نادیده
گرفته
میشوند. به
عبارت دیگر:
این ابزار
مواردی را
نمایش
میدهد که
هنگام مانت
کردن تصویر
با آنها
کار میکند.
برای نمایش
فهرست کامل
پارتیشنها
از ابزاری
مانند fdisk(8)
استفاده
کنید.
دستور systemd-dissect
میتواند
به عنوان mount.ddi
نیز
فراخوانی
شود که در
این صورت
رابط
"کمککننده
خارجی" (external helper)
دستور mount(8) را
پیادهسازی
میکند. این
ویژگی
تضمین
میکند که
تصاویر
دیسک
سازگار با
systemd-dissect را
میتوان
مستقیماً
توسط mount و fstab(5)
مانت کرد.
برای
جزئیات،
بخشهای
زیر را
ببینید.
به جای
مسیر
تصویر،
میتوان یک
دایرکتوری
نسخهبندیشده
".v/" را مشخص
کرد؛ برای
جزئیات systemd.v(7)
را ببینید.
اگر
هیچیک از
سوییچهای
دستور
فهرستشده
در زیر
ارسال
نشوند،
تصویر دیسک
مشخصشده
باز میشود
و اطلاعات
عمومی
درباره
تصویر،
پارتیشنهای
موجود در آن
و نحوه
استفاده از
آنها
نمایش داده
میشود.
--mount, -m
تصویر
سیستمعامل
مشخصشده
را در
دایرکتوری
تعیینشده
مانت
میکند. این
کار تصویر
را
کالبدشکافی
کرده،
سیستم فایل
ریشه
سیستمعامل
— و
احتمالاً
سایر
پارتیشنها
را —
شناسایی
میکند و
آنها را در
دایرکتوری
مشخصشده
مانت
مینماید.
اگر تصویر
سیستمعامل
شامل چندین
پارتیشن
باشد که
مطابق با
UAPI.2
Discoverable Partitions Specification[1]
علامتگذاری
شدهاند،
چندین مانت
تودرتو
برقرار
میشود. این
دستور به دو
آرگومان
نیاز دارد:
یک مسیر به
فایل تصویر
و یک مسیر به
دایرکتوری
که تصویر
باید در آن
مانت شود.
برای
آنمانت
کردن تصویر
سیستمعاملی
که به این
شکل مانت
شده است، از
عملیات --umount
استفاده
کنید.
هنگامی که
تصویر
سیستمعامل
حاوی
سیستمهای
فایل
رمزنگاریشده
با LUKS یا
محافظتشده
با
اعتبارسنجی
یکپارچگی Verity
باشد،
حجمهای
مناسب به
طور خودکار
راهاندازی
میشوند و
برای
جداسازی و
غیرفعالسازی
خودکار
هنگام
آنمانت
شدن تصویر
علامتگذاری
میگردند.
تصویر
سیستمعامل
میتواند
به عنوان
مسیر یک
فایل
معمولی
حاوی
تصویر، یا
به عنوان یک
گره دستگاه
بلوکی مشخص
شود (در حالت
دوم،
دستگاه
بلوکی باید
دستگاه
"کامل"
باشد، یعنی
دستگاه یک
پارتیشن
نباشد). (سایر
دستورات
پشتیبانیشده
که در اینجا
توضیح داده
شدهاند
نیز از این
قابلیت
پشتیبانی
میکنند).
تمامی
سیستمهای
فایل
مانتشده
با
پیادهسازی
مناسب fsck(8) در
حالت تعمیر
خودکار
بررسی
میشوند،
مگر اینکه
به صراحت
خاموش شده
باشد (--fsck=no) یا
عملیات
فقطخواندنی
درخواست
شده باشد
(--read-only).
توجه
داشته
باشید که
این قابلیت
در mount(8) نیز از
طریق
دستوری
مانند mount -t ddi myimage.raw
targetdir/، و
همچنین در
fstab(5) در دسترس
است. برای
جزئیات،
بخشهای
زیر را
ببینید.
در نسخه 247
اضافه شد.
-M
یک
میانبر
برای
--mount --mkdir
است.
در نسخه 247
اضافه شد.
--umount, -u
آنمانت
کردن تصویر
سیستمعامل
از
دایرکتوری
مشخصشده.
این دستور
به یک
آرگومان
نیاز دارد:
دایرکتوریای
که تصویر
سیستمعامل
در آن مانت
شده است.
تمام
پارتیشنهای
مانتشده
به صورت
بازگشتی
آنمانت
خواهند شد و
دستگاه
حلقهای (loop device)
زیرین
همراه با
تمام
زیردستگاههای
پارتیشن آن
حذف
میشود.
در نسخه 252
اضافه شد.
-U
یک
میانبر
برای
--umount --rmdir
است.
در نسخه 252
اضافه شد.
--attach
تصویر
دیسک
مشخصشده
را به یک
دستگاه
بلوکی
لوپبک با
تخصیص
خودکار
متصل
میکند، و
مسیر
دستگاه
بلوکی
لوپبک را
در خروجی
استاندارد
چاپ
مینماید.
این شبیه به
فراخوانی
losetup
--find --show --partscan است،
اما تصویر
را پیش از
اتصال به
عنوان DDI
اعتبارسنجی
میکند و
اندازه
سکتور
مناسب را به
صورت
خودکار به
دست
میآورد.
علاوه بر
این،
اطمینان
حاصل
میکند که
دستگاههای
بلوکی
مربوط به هر
پارتیشن
قبل از
بازگشت
دستور
ایجاد
شدهاند و
در صورت
امکان سعی
میکند
حالت
ورودی/خروجی
مستقیم (direct IO) را
فعال کند.
مسیر یک
فایل تصویر
دیسک را به
عنوان
ورودی
میگیرد.
اگر با --quiet
ترکیب شود،
خروجی نام
دستگاه
بلوکی
سرکوب
میشود.
در نسخه 254
اضافه شد.
--detach
تصویر
دیسک
مشخصشده
را از
دستگاه
بلوکی
لوپبک جدا
میکند. این
کار اثر
--attach
در بالا را
لغو میکند.
این دستور
یا مسیر یک
دستگاه
بلوکی
لوپبک را
به عنوان
آرگومان
میپذیرد
یا مسیر
فایل تصویر
پشتیبان را.
در حالت
دوم، به طور
خودکار
دستگاه
مناسب برای
جداسازی را
شناسایی
میکند.
در نسخه 254
اضافه شد.
--list, -l
مسیرهای
تمام
فایلها و
دایرکتوریهای
موجود در
تصویر
سیستمعامل
یا
دایرکتوری
مشخصشده
را در خروجی
استاندارد
چاپ میکند.
در نسخه 253
اضافه شد.
--mtree
یک
مانیفست
فایل
سازگار با
mtree(8) سیستم BSD از
تصویر دیسک
یا
دایرکتوری
مشخصشده
تولید
میکند. این
ویژگی برای
مقایسه
دقیق
محتویات
تصویر، از
جمله
اطلاعات
اینود (inode) و
سایر
متادیتاها
مفید است.
گرچه
مانیفست
تولیدشده
حاوی
اطلاعات
دقیق اینود
خواهد بود،
اما در حال
حاضر
ویژگیهای
گسترشیافته،
قابلیتهای
سیستم
فایل،
برچسبهای
MAC، فلگهای
فایل
chattr(1)،
اطلاعات
زیرحجم
btrfs(5)،
و
متادیتاهای
مختلف دیگر
فایل را در
بر
نمیگیرد.
اطلاعات
محتوای
فایل از
طریق شناسه
خلاصه SHA256
نشان داده
میشود.
ممکن است
فیلدهای
اضافی در
آینده
اضافه شوند.
توجه داشته
باشید که
اطلاعات
اینود
مانند
تعداد
پیوندها،
شمارههای
اینود و
برچسبهای
زمانی
عمداً از
خروجی حذف
شدهاند،
زیرا
معمولاً
قابلیت
بازتولیدپذیری
را پیچیده
میکنند.
در نسخه 253
اضافه شد.
--with
دستور
مشخصشده
را در حالی
که تصویر
سیستمعامل
مانت شده
است اجرا
میکند. این
دستور
تصویر را در
یک
دایرکتوری
موقت مانت
کرده،
دایرکتوری
کاری فعلی
را به آن
تغییر
میدهد، و
خط فرمان
مشخصشده
را به عنوان
یک فرآیند
فرزند اجرا
مینماید.
پس از پایان
فرآیند،
تصویر را
دوباره
آنمانت
کرده و
دایرکتوری
موقت را حذف
میکند. اگر
دستوری
مشخص نشود،
یک پوسته
اجرا
میشود.
تصویر به
صورت
قابلنوشتن
مانت
میشود؛
برای تغییر
به عملیات
فقطخواندنی
از
--read-only
استفاده
کنید. در
فرآیند
فراخوانیشده،
متغیر
محیطی
$SYSTEMD_DISSECT_ROOT
تنظیم
خواهد شد که
حاوی نام
مسیر مطلق
نقطه مانت
موقت است،
یعنی همان
دایرکتوری
که به عنوان
دایرکتوری
کاری فعلی
تنظیم شده
است. همچنین
متغیر
محیطی
$SYSTEMD_DISSECT_DEVICE
تنظیم
خواهد شد که
شامل مسیر
مطلق
دستگاه لوپ
است که
تصویر به آن
متصل شده
است.
در نسخه 253
اضافه شد.
--copy-from, -x
یک فایل
یا
دایرکتوری
را از تصویر
سیستمعامل
یا
دایرکتوری
مشخصشده
به مکان
تعیینشده
در سیستم
فایل
میزبان کپی
میکند. به
سه آرگومان
نیاز دارد:
مسیر یک
فایل تصویر
یا
دایرکتوری،
یک مسیر
مبدا (نسبت
به
دایرکتوری
ریشه تصویر)
و یک مسیر
مقصد (نسبت
به
دایرکتوری
کاری فعلی،
یا یک مسیر
مطلق، که هر
دو در خارج
از تصویر
قرار دارند).
اگر مسیر
مقصد حذف
شود یا به
عنوان خط
تیره ("-")
مشخص گردد،
فایل
مشخصشده
در خروجی
استاندارد
نوشته
میشود. اگر
مسیر مبدا
در سیستم
فایل تصویر
به یک فایل
معمولی
اشاره کند،
به مسیر
مقصد کپی
میشود. در
این حالت،
حالت
دسترسی،
ویژگیهای
گسترشیافته
و
برچسبهای
زمانی نیز
کپی
میشوند،
اما مالکیت
فایل کپی
نمیشود.
اگر مسیر
مبدا در
تصویر به یک
دایرکتوری
اشاره کند،
به همراه
تمام
فایلها و
دایرکتوریهای
درون آن به
صورت
بازگشتی در
مسیر مقصد
کپی
میشود، در
دایرکتوریهای
موجود
ادغام
میگردد و
فایلهای
موجود
بهروزرسانی
میشوند. در
این حالت،
مالکیت
فایل نیز
کپی میشود.
در نسخه 247
اضافه شد.
--copy-to, -a
یک فایل
یا
دایرکتوری
را از مکان
مشخصشده
در سیستم
فایل
میزبان به
داخل تصویر
سیستمعامل
یا
دایرکتوری
تعیینشده
کپی میکند.
به سه
آرگومان
نیاز دارد:
مسیر یک
فایل تصویر
یا
دایرکتوری،
یک مسیر
مبدا (نسبت
به
دایرکتوری
کاری فعلی،
یا یک مسیر
مطلق، که هر
دو در خارج
از تصویر
هستند) و یک
مسیر مقصد
(نسبت به
دایرکتوری
ریشه تصویر).
اگر مسیر
مبدا حذف
شود یا به
عنوان خط
تیره ("-")
مشخص گردد،
دادههای
مورد نظر
برای نوشتن
از ورودی
استاندارد
خوانده
میشوند.
اگر مسیر
مبدا در
سیستم فایل
میزبان به
یک فایل
معمولی
اشاره کند،
به مسیر
مقصد کپی
میشود. در
این حالت،
حالت
دسترسی،
ویژگیهای
گسترشیافته
و
برچسبهای
زمانی نیز
کپی
میشوند،
اما مالکیت
فایل کپی
نمیشود.
اگر مسیر
مبدا در
سیستم فایل
میزبان به
یک
دایرکتوری
اشاره کند،
به همراه
تمام
فایلها و
دایرکتوریهای
موجود در آن
به صورت
بازگشتی در
مسیر مقصد
کپی
میشود، در
دایرکتوریهای
موجود
ادغام
میگردد و
فایلهای
موجود را
بهروزرسانی
میکند. در
این حالت،
مالکیت
فایل نیز
کپی میشود.
همانند
--mount،
بررسیهای
سیستم فایل
پیش از شروع
عملیات کپی
به صورت
ضمنی اجرا
میشوند.
در نسخه 247
اضافه شد.
--make-archive
یک فایل
آرشیو از
تصویر دیسک
مشخصشده
تولید
میکند. به
دو آرگومان
نیاز دارد:
مسیر تصویر
دیسک و به
صورت
اختیاری
مسیر فایل
آرشیو
خروجی. در
صورت حذف
مورد دوم،
آرشیو در
خروجی
استاندارد
نوشته
میشود.
قالب فایل
آرشیو به
طور خودکار
بر اساس نام
فایل آرشیو
خروجی
مشخصشده
تعیین
میشود؛
برای مثال،
هر مسیری با
پسوند ".tar.xz"
منجر به یک
تاربال
یونیکس
فشردهشده
با xz خواهد شد
(اگر مسیر
حذف شود، یک
تاربال
یونیکس
فشردهنشده
ایجاد
میشود).
برای
فهرستی از
قالبهای
آرشیو و
روشهای
فشردهسازی
پشتیبانیشده،
libarchive(3) را
ببینید.
در نسخه 256
اضافه شد.
--discover
فهرستی
از DDIها را در
دایرکتوریهای
شناختهشده
نمایش
میدهد. این
دستور
تصاویر
دیسک مربوط
به
ماشینها،
سرویسهای
قابلحمل (portable
services) و
افزونههای
پیکربندی/سیستمی
را در
دایرکتوریهای
معمول /usr/lib/machines/،
/usr/lib/portables/، /usr/lib/confexts/،
/var/lib/machines/، /var/lib/portables/، /var/lib/extensions/
و غیره
نمایش
میدهد.
در نسخه 253
اضافه شد.
--validate
آرایش
پارتیشنهای
یک تصویر
دیسک (DDI) را
اعتبارسنجی
میکند و
اطمینان
حاصل
مینماید
که با سیاست
تصویر
مشخصشده
از طریق
--image-policy=
(در صورت
تعیین شدن)
مطابقت
دارد. این
دستور جدول
پارتیشن را
تجزیه کرده
و
سیستمهای
فایل موجود
در تصویر را
کاوش
میکند،
اما تلاشی
برای مانت
کردن آنها
انجام
نمیدهد (و
همچنین
رمزنگاری/احراز
هویت دیسک
را از طریق LUKS/Verity
راهاندازی
نمیکند).
این عمل با
در نظر
گرفتن
سیاست
تشریح
تصویر
پیکربندیشده
انجام
میشود. از
آنجا که این
عملیات
سیستمهای
فایل را
مانت
نمیکند،
این دستور —
برخلاف
سایر
دستورات
پیادهسازیشده
توسط این
ابزار — به
هیچ مجوزی
به جز
توانایی
دسترسی به
فایل
مشخصشده
نیاز ندارد.
در صورتی که
تصویر به
نظر درست
برسد و با
سیاست
تشریح
تصویر
مشخصشده
مطابقت
داشته
باشد، "OK" را
چاپ کرده و
صفر
برمیگرداند.
در غیر این
صورت، یک
پیام خطا
چاپ کرده و
مقداری غیر
صفر
برمیگرداند.
در نسخه 254
اضافه شد.
--shift
به صورت
بازگشتی
تمام
اینودهای
تصویر
مشخصشده
را پیمایش
میکند و
شناسههای UID
و GID که
اینودها
متعلق به
آنها
هستند را به
محدوده UID
مشخصشده
تغییر
میدهد. یک
مسیر تصویر
و یک پایه UID
را به عنوان
پارامتر
میگیرد.
پایه UID
میتواند
به صورت
عددی مشخص
شود (که در
این صورت
باید مضربی
از 65536 باشد و
صفر یا در
محدوده UID
کانتینر یا UID
بیگانه
باشد،
مطابق با
Users, Groups,
UIDs and GIDs on systemd Systems[2])، یا
به عنوان
شناسه
نمادین "foreign"
که یک نام
کوتاه برای
پایه UID
بیگانه است.
این دستور
برای
آمادهسازی
تصاویر
کانتینری
دایرکتوری
به منظور
استفاده
بدون
امتیاز
مفید است.
توجه داشته
باشید که
این دستور
فقط برای
تصاویری در
نظر گرفته
شده است که
از محدوده 16
بیتی UIDها/GIDها
استفاده
میکنند، و
همیشه 16 بیت
بالایی
مالکیت
فعلی UID/GID را
نادیده
میگیرد و 16
بیت پایینی
را با پایه UID
هدف ترکیب
میکند.
از systemd-dissect --shift /some/container/tree
foreign برای
شیفت دادن
تصویر
کانتینر به
محدوده UID
بیگانه، یا
از systemd-dissect --shift /some/container/tree 0
برای شیفت
دادن آن به
محدوده UID
میزبان
استفاده
کنید.
در نسخه 258
اضافه شد.
-h, --help
یک متن
راهنمای
کوتاه را
چاپ کرده و
خارج
میشود.
--version
یک رشته
کوتاه نسخه
را چاپ کرده
و خارج
میشود.
گزینههای
زیر
پشتیبانی
میشوند:
--read-only, -r
کار در
حالت
فقطخواندنی.
به طور
پیشفرض،
--mount نقاط
مانت را به
صورت
قابلنوشتن
برقرار
میکند. در
صورت مشخص
شدن این
گزینه، در
عوض در حالت
فقطخواندنی
برقرار
خواهند شد.
در نسخه 247
اضافه شد.
--fsck=no
بررسی
خودکار
سیستم فایل
را خاموش
میکند. به
طور
پیشفرض،
هنگامی که
به یک تصویر
برای نوشتن
دسترسی
پیدا
میشود
(توسط
--mount یا
--copy-to)،
سیستمهای
فایل موجود
در تصویر
سیستمعامل
به طور
خودکار با
استفاده از
دستور
مناسب
fsck(8)،
در حالت
تعمیر
خودکار
بررسی
میشوند.
این رفتار
را میتوان
با استفاده
از
--fsck=no خاموش
کرد.
در نسخه 247
اضافه شد.
--growfs=no
افزایش
خودکار
اندازه
سیستمهای
فایلِ
مورداستفاده
به اندازه
پارتیشن
آنها را
خاموش
میکند، در
صورتی که در
جدول
پارتیشن GPT
برای این
کار
علامتگذاری
شده باشند.
به طور
پیشفرض،
هنگامی که
به یک تصویر
برای نوشتن
دسترسی
پیدا
میشود
(توسط
--mount یا
--copy-to)،
سیستمهای
فایل موجود
در تصویر
سیستمعامل
به طور
خودکار به
اندازه
پارتیشنهایشان
گسترش
مییابند،
در صورتی که
بیت 59 در
فلگهای
پارتیشن GPT
برای نوع
پارتیشنهای
تعریفشده
توسط
UAPI.2 Discoverable Partitions
Specification[1] تنظیم
شده باشد.
این رفتار
را میتوان
با استفاده
از
--growfs=no خاموش
کرد.
سیستمهای
فایل در
هنگام
دسترسی به
طور خودکار
افزایش
اندازه
مییابند
در صورتی که
همه شرایط
زیر برقرار
باشند:
1.سیستم
فایل به
صورت
قابلنوشتن
مانت شده
باشد
2.سیستم
فایل در حال
حاضر از
پارتیشنی
که در آن
قرار دارد
کوچکتراست
(و بنابراین
امکان
گسترش
دارد)
3.تصویر
حاوی جدول
پارتیشن GPT
باشد
4.سیستم
فایل روی
پارتیشنی
ذخیره شده
باشد که
توسط Discoverable Partitions Specification
تعریف شده
است
5.بیت 59
فلگهای
پارتیشن GPT
برای این
پارتیشن
طبق مشخصات
تنظیم شده
باشد
6.گزینه
--growfs=no ارسال
نشده باشد.
در نسخه 249
اضافه شد.
--mkdir
در صورت
ترکیب با
--mount،
دایرکتوری
مقصد برای
مانت کردن
تصویر
سیستمعامل
در صورت عدم
وجود ایجاد
میشود.
توجه داشته
باشید که
دایرکتوری
پس از
آنمانت
شدن مجدد
تصویر دیسک
به طور
خودکار حذف
نمیشود.
در نسخه 247
اضافه شد.
--rmdir
در صورت
ترکیب با
--umount،
دایرکتوری
مشخصشدهای
که تصویر
سیستمعامل
در آن مانت
شده بود پس
از آنمانت
کردن تصویر
حذف میشود.
در نسخه 252
اضافه شد.
--discard=
یکی از
مقادیر "disabled"،
"loop"، "all"، "crypto"
را
میپذیرد.
اگر "disabled"
باشد،
دسترسی به
تصویر با
غیرفعال
بودن
آزادسازی
بلوکهای
خالی انجام
میشود. اگر
"loop" باشد،
آزادسازی
در صورت کار
بر روی یک
فایل
معمولی
فعال
میگردد.
اگر "crypt"
باشد،
آزادسازی
حتی روی
سیستمهای
فایل
رمزنگاریشده
نیز فعال
میشود. اگر
"all" باشد،
آزادسازی
به صورت
بدون قید و
شرط فعال
میگردد.
در نسخه 247
اضافه شد.
--in-memory
در صورت
تعیین شدن،
از یک کپی در
حافظه از
تصویر دیسک
مشخصشده
استفاده
میشود. این
گزینه
میتواند
برای کار با
دسترسی
نوشتن روی
یک تصویر
(احتمالاً
فقطخواندنی)
استفاده
شود، بدون
اینکه فایل
اصلی تغییر
کند. همچنین
میتوان از
این گزینه
برای کار
روی یک
تصویر دیسک
استفاده
کرد بدون
اینکه
سیستم فایل
مبدا مشغول
نگه داشته
شود، تا
امکان
آنمانت
کردن آن
فراهم گردد.
در نسخه 253
اضافه شد.
--root-hash=, --root-hash-sig=,
--verity-data=
جنبههای
مختلف
یکپارچگی
دادههای Verity
را برای
تصویر
سیستمعامل
پیکربندی
میکند.
گزینه
--root-hash= یک
هش Verity
سطحبالای
هگزادسیمال
را برای
راهاندازی
حفاظت
یکپارچگی Verity
مشخص
میکند.
گزینه
--root-hash-sig=
مسیر فایلی
حاوی یک
امضای PKCS#7
برای هش را
مشخص
مینماید.
این امضا
هنگام
فعالسازی
به هسته
ارسال
میشود، و
هسته آن را
با کلیدهای
امضای
موجود در
دستهکلید
هسته تطبیق
میدهد.
گزینه
--verity-data=
مسیری را به
فایلی حاوی
دادههای Verity
برای
استفاده در
تصویر
سیستمعامل
مشخص
میکند، در
صورتی که در
یک فایل
جداگانه
ذخیره شده
باشد. توصیه
میشود
دادههای Verity
با استفاده
از
سازوکارهای
Verity در
UAPI.2 Discoverable Partitions Specification[1]
مستقیماً
در داخل
تصویر
تعبیه شوند.
در نسخه 247
اضافه شد.
--usr-hash=, --usr-hash-sig=
مشابه
--root-hash= و
--root-hash-sig=
است، اما هش
و امضا را
برای
پارتیشن /usr/
مشخص
میکند.
توجه داشته
باشید که
میتوان
گزینههای
مربوط به
پارتیشن
ریشه یا
گزینههای
مربوط به /usr/
را استفاده
کرد، اما
استفاده
همزمان از
هر دو مجاز
نیست.
در نسخه 258
اضافه شد.
--loop-ref=
رشته
"مرجع" (reference) را
که هسته
باید به
عنوان فایل
پشتیبان
برای
دستگاه
بلوکی
لوپبک
گزارش کند،
پیکربندی
مینماید.
گرچه فرض بر
این است که
این رشته یک
مسیر یا نام
فایل
ارجاعدهنده
به فایل
پشتیبان
باشد، اما
این امر
الزامی
نیست و هسته
رشتههای
دلخواه با
قالب آزاد
را که توسط
کاربر
انتخاب شده
باشند
میپذیرد.
رشتههای
دلخواه تا
طول 63
کاراکتر را
میپذیرد.
این تنظیم،
فیلد ".lo_file_name"
هسته را
برای
دستگاه
بلوکی
تنظیم
میکند.
توجه داشته
باشید که
این مورد با
فایل ویژگی
/sys/class/block/loopX/loop/backing_file که
همیشه
مسیری
ارجاعدهنده
به فایل
پشتیبان
واقعی را
گزارش
میدهد
تفاوت دارد.
دومی مشمول
ترجمه
فضاینام
مانت است،
در حالی که
اولی
اینطور
نیست.
این تنظیم
به ویژه در
ترکیب با
دستور --attach
بسیار مفید
است، زیرا
امکان
ارجاع بعدی
به دستگاه
لوپ
تخصیصیافته
را از طریق
پیوندهای
نمادین /dev/disk/by-loop-ref/...
فراهم
میسازد.
مثال: ابتدا
دستگاه
لوپبک را
از طریق systemd-dissect attach
--loop-ref=quux foo.raw
راهاندازی
کنید، و سپس
در یک دستور
از طریق نام
فایل
مشخصشده
به آن ارجاع
دهید: cfdisk
/dev/disk/by-loop-ref/quux.
در نسخه 254
اضافه شد.
--loop-ref-auto
مشابه
--loop-ref= است، اما
رشته مرجع
را به طور
خودکار از
نام فایل
پشتیبان
مشخصشده
استخراج
میکند و در
صورت نیاز
آن را کوتاه
مینماید.
در نسخه 258
اضافه شد.
--mtree-hash=no
اگر با
--mtree
ترکیب شود،
گنجاندن هش
فایلها را
در خروجی mtree
خاموش
میکند. این
امر باعث
میشود
دستور
--mtree
هنگام کار
روی تصاویر
حجیم
سریعتر
عمل کند.
در نسخه 254
اضافه شد.
--copy-ownership=
کنترل
میکند که
آیا هنگام
کپی کردن
فایلها با
--copy-from یا
--copy-to،
مالکیت
فایل (کاربر
و گروه) حفظ
شود یا خیر.
یک مقدار
بولی یا
auto
میپذیرد.
اگر "yes"
باشد،
مالکیت
همیشه حفظ
میشود. اگر
"no" باشد،
مالکیت
هرگز حفظ
نمیشود و
به جای آن از
UID/GID کاربر
فعلی
استفاده
میگردد.
اگر مشخص
نشود یا
برابر با
auto
باشد،
مالکیت
هنگام کپی
کردن
درختهای
دایرکتوری
حفظ
میشود،
اما هنگام
کپی کردن
فایلهای
معمولی تکی
حفظ نخواهد
شد.
در نسخه 260
اضافه شد.
--system, --user
هنگامی
که همراه با
--discover استفاده
شوند،
کنترل
میکنند که
آیا جستجوی
تصاویر به
صورت
سراسری در
کل سیستم
انجام شود
یا در
دایرکتوریهای
کاربر در
$HOME.
اگر هیچیک
از
سوییچها
مشخص
نشوند، در
هر دو دامنه
جستجو
خواهد شد.
در نسخه 258
اضافه شد.
--all
اگر با
--discover ترکیب
شود،
تصاویری را
که با یک
نقطه شروع
میشوند
(یعنی
تصاویر
پنهان) نیز
نمایش
میدهد.
در نسخه 258
اضافه شد.
--quiet, -q
در صورت
ترکیب با
--attach، چاپ
مسیر
دستگاه
بلوکی
لوپبک
استفادهشده
را سرکوب
میکند.
در نسخه 258
اضافه شد.
--image-policy=policy
یک رشته
سیاست
تصویر را
مطابق با
systemd.image-policy(7) به
عنوان
آرگومان
میگیرد.
این سیاست
هنگام کار
بر روی
تصویر دیسک
مشخصشده
از طریق
--image=
اعمال
میشود؛
بالا را
ببینید. اگر
مشخص نشود،
به طور
پیشفرض
روی سیاست
"*" تنظیم
میگردد،
یعنی تمام
سیستمهای
فایل
شناختهشده
در تصویر
استفاده
میشوند.
--image-filter=filter
یک رشته
فیلتر
تصویر را
مطابق با
systemd.image-filter(7) به
عنوان
آرگومان
میگیرد.
این فیلتر
هنگام کار
روی تصویر
دیسک
مشخصشده
از طریق
--image=
مد نظر قرار
میگیرد؛
بالا را
ببینید. اگر
مشخص نشود،
هیچ فیلتری
اعمال
نخواهد شد.
--no-pager
خروجی را
به یک
صفحهبند (pager)
هدایت
نمیکند.
--no-legend
راهنما (legend)
را چاپ
نمیکند،
یعنی
سرستونها
و پاورقی
حاوی نکات
توضیحی حذف
میشوند.
--json=MODE
خروجی را
با فرمت JSON
نمایش
میدهد. یکی
از مقادیر
"short" (برای
کوتاهترین
خروجی ممکن
بدون
فاصلهها
یا خطوط
خالی
اضافی)، "pretty"
(برای نسخه
خوانا با
تورفتگی و
شکستن خطوط)
یا "off" (برای
خاموش کردن
خروجی JSON، که
حالت
پیشفرض
است) را
میپذیرد.
در صورت
موفقیت، 0
برگردانده
میشود، و
در غیر این
صورت یک کد
خطای غیر
صفر. اگر از
دستور --with
استفاده
شود، کد
خروج دستور
فراخوانیشده
بازگردانده
میشود.
فایل
اجرایی systemd-dissect
میتواند
به /sbin/mount.ddi پیوند
نمادین
داده شود.
اگر از این
طریق
فراخوانی
شود، رابط
"کمککننده
خارجی"
دستور mount(8) را
برای نوع
شبهسیستمفایل
"ddi"
پیادهسازی
میکند. این
بدان
معناست که
تصاویر
دیسک
سازگار را
میتوان
مستقیماً
از طریق
# mount -t ddi myimage.raw targetdir/
به روشی که
تا حد زیادی
معادل
دستور زیر
است، مانت
کرد:
# systemd-dissect --mount myimage.raw targetdir/
توجه
داشته
باشید از
آنجا که یک DDI
منفرد ممکن
است حاوی
چندین
سیستم فایل
باشد،
بعداً باید
با دستور umount -R
targetdir/ آنمانت
شود تا
عملیات به
صورت
بازگشتی
انجام
گیرد.
این
قابلیت به
ویژه برای
مانت
خودکار DDIها
در هنگام
بوت از طریق
ورودیهای
ساده در /etc/fstab
بسیار مفید
است. برای
مثال:
/path/to/myimage.raw /images/myimage/ ddi defaults 0 0
هنگامی که
به این شیوه
فراخوانی
میشود،
گزینههای
مانت "ro"،
"rw"، "discard"، "nodiscard"
به
گزینههای
متناظر
فهرستشده
در بالا
نگاشت
میشوند
(یعنی --read-only،
--discard=all، --discard=disabled).
گزینههای
مانت به طور
عمومی به
سیستمهای
فایل درون
تصاویر
منتقل
نمیشوند.
مثال ۱. تولید
یک تاربال
از تصویر
دیسک
سیستمعامل
(--with)
# systemd-dissect --with foo.raw tar cz . >foo.tar.gz
یا به
عنوان روش
جایگزین،
به سادگی:
مثال ۲. تولید
یک تاربال
از تصویر
دیسک
سیستمعامل
(--make-archive)
# systemd-dissect --make-archive foo.raw foo.tar.gz
- 1.
- مشخصات UAPI.2 Discoverable
Partitions Specification
- 2.
- راهنمای Users, Groups,
UIDs and GIDs on systemd Systems