| virt-sysprep(1) | Virtualization Support | virt-sysprep(1) |
نام (NAME)
virt-sysprep - بازنشانی، حذف پیکربندی یا سفارشیسازی یک ماشین مجازی برای شبیهسازی
خلاصه دستور (SYNOPSIS)
virt-sysprep [--colors] [--colours] [-c URI] [--connect URI] [-n] [--dry-run] [--enable OPERATIONS] [--operations OPERATIONS] [--echo-keys] [--format raw|qcow2] [--key SELECTOR] [--keys-from-stdin] [--mount-options] [-q] [--quiet] [--network] [--no-network] [-v] [--verbose] [--wrap] [-x] -d domname | -a disk.img [-a disk.img ...] virt-sysprep --list-operations virt-sysprep --version virt-sysprep -V
هشدار (WARNING)
استفاده از "virt-sysprep" روی ماشینهای مجازی روشن و فعال، یا به طور همزمان با سایر ابزارهای ویرایش دیسک میتواند خطرناک باشد و به طور بالقوه منجر به خرابی دیسک شود. ماشین مجازی باید پیش از استفاده از این دستور خاموش شود و نباید ایمیجهای دیسک به طور همزمان ویرایش شوند.
توضیحات (DESCRIPTION)
دستور Virt-sysprep میتواند یک ماشین مجازی را بازنشانی کند یا پیکربندی آن را بردارد تا بتوان از آن نسخههای شبیهسازیشده (Clone) ایجاد کرد، یا قالبی (Template) آماده نمود که بتوان بعداً از روی آن کلون تهیه کرد. مراحل این فرآیند شامل حذف کلیدهای میزبان SSH، حذف پیکربندی ماندگار MAC شبکه و حذف حسابهای کاربری است. همچنین Virt-sysprep میتواند یک ماشین مجازی را سفارشیسازی کند، برای مثال با افزودن کلیدهای SSH، کاربران یا نشانوارهها. هر مرحله میتواند بنا به نیاز فعال یا غیرفعال شود.
دستور Virt-sysprep سیستم مهمان یا ایمیج دیسک را درجا (in place) دستکاری میکند. سیستم مهمان باید خاموش باشد. اگر میخواهید محتوای موجود مهمان را حفظ کنید، باید ابتدا از دیسک اسنپشات بگیرید، کپی بگیرید یا آن را کلون کنید.
شما نیازی ندارید که virt-sysprep را به عنوان کاربر ریشه (root) اجرا نمایید. در واقع ما عموماً توصیه میکنیم این کار را نکنید. تنها زمانی ممکن است مایل باشید آن را با دسترسی root اجرا کنید که برای دسترسی به ایمیج دیسک به مجوز root نیاز باشد، اما حتی در این حالت نیز بهتر است دسترسیهای ایمیج دیسک را به گونهای تغییر دهید که برای کاربر غیر ریشهای که virt-sysprep را اجرا میکند قابل نوشتن باشد.
واژه "Sysprep" مخفف ابزار "آمادهسازی سیستم" (system preparation) است. این نام برگرفته از برنامه مایکروسافت به نام sysprep.exe است که برای برچیدن پیکربندی ماشینهای ویندوز به منظور آمادهسازی آنها برای شبیهسازی استفاده میشود. (دستور Virt-sysprep روی سیستمهای مهمان مایکروسافت ویندوز کار نمیکند.)
گزینهها (OPTIONS)
- --help
- نمایش راهنمای مختصر.
- -a file
- --add file
- افزودن file
که باید
ایمیج دیسک
یک ماشین
مجازی باشد.
قالب ایمیج دیسک به طور خودکار شناسایی میشود. برای لغو این حالت و تحمیل یک قالب خاص، از گزینه --format استفاده کنید.
- -a URI
- --add URI
- افزودن یک دیسک دوردست. ساختار URI با guestfish سازگار است. به بخش "ADDING REMOTE STORAGE" در guestfish(1) مراجعه کنید.
- --colors
- --colours
- استفاده از توالیهای رنگی ANSI برای رنگآمیزی پیامها. این رفتار پیشفرض در خروجی tty است. اگر خروجی برنامه به یک فایل هدایت شود، توالیهای رنگی ANSI غیرفعال میشوند مگر اینکه از این گزینه استفاده کنید.
- -c URI
- --connect URI
- در صورت
استفاده از
libvirt، به URI
دادهشده
متصل
میشود. در
صورت عدم
ذکر، اتصال
به
هایپروایزر
پیشفرض libvirt
برقرار
خواهد شد.
اگر دستگاههای بلوکی مهمان را مستقیماً مشخص کنید (-a)، libvirt اصلاً استفاده نمیشود.
- -d guest
- --domain guest
- افزودن تمام دیسکهای مهمان نامبرده در libvirt. به جای نام میتوان از UUIDهای دامنه استفاده کرد.
- -n
- --dry-run
- اجرای آزمایشی و فقطخواندنی (dry run) روی سیستم مهمان. این حالت عملیات sysprep را اجرا میکند، اما در پایان تمام تغییرات اعمالشده روی دیسک را دور میریزد.
- --enable operations
- انتخاب
اینکه کدام
عملیاتهای
sysprep انجام
شوند. یک
فهرست
جداشده با
کاما از
عملیاتها
ارائه
دهید، به
عنوان مثال:
--enable ssh-hostkeys,udev-persistent-net
تنها عملیاتهای "ssh-hostkeys" و "udev-persistent-net" را فعال خواهد کرد.
اگر گزینه --enable مشخص نشود، پیشفرض برنامه تلاش برای اجرای اکثر عملیاتهای sysprep است (برای مشاهده موارد فعال، گزینه --list-operations را ببینید).
صرفنظر از گزینه --enable، عملیاتهای sysprep برای برخی انواع سیستم مهمان نادیده گرفته میشوند.
از گزینه --list-operations برای فهرست کردن عملیاتهای پشتیبانیشده توسط یک نسخه خاص از virt-sysprep استفاده کنید.
برای مشاهده فهرست و توضیحات مربوط به هر عملیات، بخش "عملیاتها (OPERATIONS)" در زیر را ببینید.
- --operation operations
- --operations operations
- انتخاب
اینکه کدام
عملیاتهای
sysprep انجام
شوند. یک
فهرست
جداشده با
کاما از
عملیاتها
ارائه
دهید، برای
مثال:
--operations ssh-hostkeys,udev-persistent-net
تنها عملیاتهای "ssh-hostkeys" و "udev-persistent-net" را فعال خواهد کرد.
گزینه --operations به شما اجازه میدهد هر عملیاتی را فعال یا غیرفعال کنید، از جمله عملیاتهای پیشفرض (که در صورت عدم مشخص کردن --operations یا --enable اجرا میشوند) و تمام عملیاتهای موجود؛ افزودن پیشوند "-" به ابتدای نام یک عملیات، آن را از فهرست عملیاتهای فعال حذف میکند، در حالی که نامهای متای "defaults" و "all" به ترتیب نمایانگر عملیاتهای پیشفرض فعال و تمام عملیاتهای در دسترس هستند. برای مثال:
--operations firewall-rules,defaults,-tmp-files
عملیات "firewall-rules" (صرفنظر از اینکه به طور پیشفرض فعال باشد یا خیر) و تمام عملیاتهای پیشفرض را فعال کرده و عملیات "tmp-files" را غیرفعال میکند.
گزینه --operations میتواند چندین بار مشخص شود؛ بار اول مجموعه عملیاتهای فعال خالی است، در حالی که هر --operations بعدی روی عملیاتهای فعالشده تا آن لحظه اثر میگذارد.
اگر گزینه --operations داده نشود، پیشفرض برنامه تلاش برای اجرای بیشتر عملیاتهای sysprep است (برای مشاهده موارد فعال به --list-operations مراجعه کنید).
صرفنظر از گزینه --operations، عملیاتهای sysprep برای برخی انواع سیستم مهمان نادیده گرفته میشوند.
برای فهرست کردن عملیاتهای پشتیبانیشده توسط یک نسخه خاص از virt-sysprep از --list-operations استفاده کنید.
برای مشاهده فهرست و توضیحات مربوط به هر عملیات، بخش "عملیاتها (OPERATIONS)" در زیر را ببینید.
- --echo-keys
- هنگام درخواست کلیدها و عبارتهای عبور، virt-sysprep به طور معمول پژواک ورودی را خاموش میکند تا متنی که تایپ میکنید دیده نشود. اگر نگران حملات تمپست (Tempest) نیستید و شخص دیگری در اتاق حضور ندارد، میتوانید این پرچم را مشخص کنید تا متن تایپشده را ببینید.
- --format raw|qcow2|..
- --format auto
- حالت
پیشفرض
برای گزینه
-a، تشخیص
خودکار
قالب ایمیج
دیسک است.
استفاده از
این گزینه،
قالب دیسک
را برای
گزینههای
-a بعدی در
خط فرمان
تحمیل
میکند.
استفاده از
--format auto وضعیت
را برای
گزینههای
بعدی -a به
حالت تشخیص
خودکار
بازمیگرداند.
برای مثال:
virt-sysprep --format raw -a disk.img
قالب raw را (بدون تشخیص خودکار) برای disk.img تحمیل میکند.
virt-sysprep --format raw -a disk.img --format auto -a another.img
قالب raw را (بدون تشخیص خودکار) برای disk.img تحمیل کرده و برای another.img به حالت تشخیص خودکار بازمیگردد.
اگر ایمیجهای دیسک مهمان با فرمت خام (raw) غیرقابل اعتماد دارید، باید از این گزینه برای تعیین قالب دیسک استفاده نمایید. این کار از یک مشکل امنیتی بالقوه با مهمانهای مخرب جلوگیری میکند (CVE-2010-3851).
- --key SELECTOR
- تعیین کلید برای LUKS، به منظور بازگشایی خودکار دستگاه LUKS هنگام بازرسی سیستم.
- --key NAME:key:KEY_STRING
- --key UUID:key:KEY_STRING
- --key all:key:KEY_STRING
- مقدار
"NAME" نام
دستگاه در
libguestfs است
(مانند
"/dev/sda1").
مقدار
"UUID"
شناسه
یکتای
دستگاه است.
مقدار
"all" به
معنای
امتحان
کلید روی هر
دستگاه
رمزگذاریشده
است.
استفاده از "KEY_STRING" مشخصشده به عنوان عبارت عبور.
- --key NAME:file:FILENAME
- --key UUID:file:FILENAME
- --key all:file:FILENAME
- خواندن عبارت عبور از فایل FILENAME.
- --key NAME:clevis
- --key UUID:clevis
- --key all:clevis
- تلاش برای
بازگشایی
قفل بدون
نیاز به
عبارت عبور
با استفاده
از Clevis از طریق
شبکه. لطفاً
برای
اطلاعات
بیشتر
درباره
رمزگذاری
دیسک
وابسته به
شبکه (NBDE) به
بخش "ENCRYPTED DISKS" در
guestfs(3) مراجعه
کنید.
توجه داشته باشید اگر چنین گزینهای در خط فرمان وجود داشته باشد، شبکه کاربری QEMU به طور خودکار برای اپلاینس libguestfs فعال خواهد شد.
- --keys-from-stdin
- خواندن
کلید یا
پارامترهای
عبارت عبور
از ورودی
استاندارد
(stdin). رفتار
پیشفرض
این است که
تلاش
میشود
عبارتهای
عبور با باز
کردن /dev/tty از
کاربر
خوانده
شوند.
اگر چند دستگاه رمزگذاریشده وجود داشته باشد، ممکن است لازم باشد چند کلید را در ورودی استاندارد، هر کدام در یک خط مجزا، ارائه دهید.
- --list-operations
- فهرست کردن
عملیاتهای
پشتیبانیشده
توسط
برنامه virt-sysprep.
این موارد در هر خط، با یک یا چند فیلد جداشده با تکفاصله فهرست میشوند، برای مثال:
$ virt-sysprep --list-operations bash-history * Remove the bash history in the guest cron-spool * Remove user at-jobs and cron-jobs dhcp-client-state * Remove DHCP client leases dhcp-server-state * Remove DHCP server leases [etc]
فیلد نخست نام عملیات است که میتواند به گزینه --enable داده شود. فیلد دوم یک نویسه "*" است اگر عملیات به طور پیشفرض فعال باشد، یا در غیر این صورت خالی است. فیلدهای بعدی در همان خط، توضیحات مربوط به عملیات هستند.
پیش از نسخه 1.17.33 در libguestfs فقط فیلد اول (نام عملیات) نشان داده میشد و تمام عملیاتها به طور پیشفرض فعال بودند.
- --mount-options mp:opts[;mp:opts;...]
- تنظیم
گزینههای
مانت که
هنگام باز
شدن ایمیج
دیسک توسط
libguestfs استفاده
میشوند.
توجه داشته
باشید که
این گزینه
هیچ تاثیری
روی سیستم
مهمان
ندارد. این
گزینه
هنگام باز
کردن برخی
مهمانها
مانند
موارد
استفادهکننده
از
سیستمفایل
UFS (BSD) کاربرد
دارد.
از فهرستی از جفتهای "mountpoint:options" که با نقطه ویرگول (semicolon) از هم جدا شدهاند استفاده کنید. ممکن است برای محافظت در برابر پوسته (shell) نیاز به قرار دادن این فهرست در علامت نقل قول باشد.
برای مثال:
--mount-options "/:noatime"
دایرکتوری ریشه را با "noatime" متصل میکند. این مثال:
--mount-options "/:noatime;/var:rw,nodiratime"
همان کار را انجام داده و افزون بر آن، /var را با "rw,nodiratime" متصل میکند.
- -q
- --quiet
- عدم چاپ
پیامهای
لاگ.
برای فعالسازی گزارشگیری دقیق از عملیات فایلها به صورت انفرادی، از -x استفاده کنید.
- --network
- --no-network
- فعال یا
غیرفعال
کردن
دسترسی به
شبکه از
داخل سیستم
مهمان در
حین نصب.
در virt-sysprep، شبکه به طور پیشفرض غیرفعال است. شما باید از --network برای فعالسازی آن استفاده نمایید تا گزینههایی مانند --install یا --update کار کنند.
راهنمای virt-builder(1) اطلاعات بیشتری درباره مزایای امنیتی غیرفعال کردن شبکه ارائه میدهد.
- -v
- --verbose
- فعال کردن پیامهای پرجزئیات برای اشکالزدایی.
- -V
- --version
- نمایش شماره نسخه و خروج.
- --wrap
- پیچیدن خطوط (Wrap) برای پیامهای خطا، هشدار و اطلاعاتی. این حالت پیشفرض هنگامی است که خروجی یک tty باشد. اگر خروجی برنامه به یک فایل هدایت شود، پیچیدن خطوط غیرفعال میشود مگر اینکه از این گزینه استفاده کنید.
- -x
- فعالسازی ردگیری (tracing) فراخوانیهای رابط برنامهنویسی (API) در libguestfs.
- --append-line FILE:LINE (بخش "customize" در زیر را ببینید)
- الحاق یک
تکخط متن
به انتهای
فایل "FILE".
اگر فایل از
قبل با یک
خط جدید
پایان
نیافته
باشد،
ابتدا یک خط
جدید قبل از
خط
الحاقشده
افزوده
میشود.
همچنین به
طور خودکار
یک خط جدید
به انتهای
رشته "LINE"
اضافه
میگردد.
برای مثال (با فرض رعایت نقلقولهای معمول پوسته)، دستور زیر:
--append-line '/etc/hosts:10.0.0.1 foo'
یا رشته "10.0.0.1 foo⏎" یا رشته "⏎10.0.0.1 foo⏎" را به فایل اضافه میکند، که حالت دوم تنها در صورتی رخ میدهد که فایل موجود قبلاً با خط جدید خاتمه نیافته باشد.
نویسه "⏎" نشاندهنده یک کاراکتر خط جدید است که با بررسی محتوای فعلی فایل حدس زده میشود، بنابراین این دستور برای فایلهایی با پایانبخش خط لینوکس یا ویندوز رفتار صحیحی انجام میدهد. همچنین برای فایلهای خالی یا فایلهایی که وجود ندارند نیز کار میکند.
برای درج چندین خط، از همین گزینه چندین بار استفاده کنید:
--append-line '/etc/hosts:10.0.0.1 foo' --append-line '/etc/hosts:10.0.0.2 bar'
برای درج یک خط خالی قبل از خط الحاقشده، به صورت زیر عمل کنید:
--append-line '/etc/hosts:' --append-line '/etc/hosts:10.0.0.1 foo'
- --chmod PERMISSIONS:FILE (بخش "customize" در زیر را ببینید)
- تغییر
مجوزهای
"FILE" به
"PERMISSIONS".
نکته: مقدار "PERMISSIONS" به طور پیشفرض در مبنای ۱۰ (دهدهی) فرض میشود، مگر اینکه برای مشخص کردن مبنای ۸ (هشتهشتی) پیشوند 0 به آن اضافه کنید، یعنی از 0700 استفاده کنید نه 700.
- --chown UID:GID:PATH (بخش "customize" در زیر را ببینید)
- تغییر شناسه کاربری (UID) و گروهی (GID) مالک یک فایل یا دایرکتوری در سیستم مهمان. نکته:
- تنها شناسههای عددی UID و GID کار میکنند، و ممکن است این شناسهها درون سیستم مهمان با سیستم میزبان یکسان نباشند.
- این گزینه برای سیستمهای مهمان ویندوزی کار نخواهد کرد.
برای مثال:
virt-customize --chown '0:0:/var/log/audit.log'
همچنین ببینید: --upload.
- --commands-from-file FILENAME (بخش "customize" در زیر را ببینید)
- خواندن
دستورات
سفارشیسازی
از یک فایل،
هر خط شامل
یک دستور (و
آرگومانهای
آن).
هر خط شامل یک دستور سفارشیسازی و آرگومانهای آن است، برای مثال:
delete /some/file install some-package password some-user:password:its-new-password
خطوط خالی نادیده گرفته میشوند، و خطوطی که با "#" شروع شوند توضیح (comment) هستند و نادیده گرفته میشوند. علاوه بر این، میتوان با افزودن یک "\" (نویسه امتداد خط) در انتهای یک خط، آرگومانها را در چند خط امتداد داد، برای مثال:
edit /some/file:\ s/^OPT=.*/OPT=ok/
دستورات با همان ترتیبی که در فایل آمدهاند پردازش میشوند، درست مثل اینکه به صورت --delete /some/file در خط فرمان مشخص شده باشند.
- --copy SOURCE:DEST (بخش "customize" در زیر را ببینید)
- کپی
بازگشتی
فایلها یا
دایرکتوریها
در داخل
سیستم
مهمان.
نمیتوان از نویسههای عامهپسند (wildcards) استفاده کرد.
- --copy-in LOCALPATH:REMOTEDIR (بخش "customize" در زیر را ببینید)
- کپی
بازگشتی
فایلها یا
دایرکتوریهای
محلی به
درون ایمیج
دیسک، و
قرار دادن
آنها در
دایرکتوری
"REMOTEDIR" (که
باید وجود
داشته
باشد).
نمیتوان از نویسههای عامهپسند استفاده کرد.
- --delete PATH (بخش "customize" در زیر را ببینید)
- حذف یک فایل
از سیستم
مهمان. یا
حذف یک
دایرکتوری
(و تمام
محتویات
آن، به طور
بازگشتی).
میتوانید از نویسههای الگو (shell glob) در مسیر مشخصشده استفاده کنید. در صورت لزوم، حواستان باشد که نویسههای الگو را از دستکاری پوسته میزبان اسکیپ کنید. برای مثال:
virt-customize --delete '/var/log/*.log'.
همچنین ببینید: --upload، --scrub.
- --edit FILE:EXPR (بخش "customize" در زیر را ببینید)
- ویرایش
فایل "FILE"
با استفاده
از عبارت
پرل "EXPR".
دقت کنید عبارت را به درستی درون علامتهای نقلقول قرار دهید تا توسط پوسته دستکاری نشود.
توجه داشته باشید این گزینه تنها زمانی در دسترس است که Perl 5 نصب باشد.
به بخش "NON-INTERACTIVE EDITING" در virt-edit(1) مراجعه کنید.
- --firstboot SCRIPT (بخش "customize" در زیر را ببینید)
- نصب
اسکریپت
"SCRIPT"
درون سیستم
مهمان، تا
در نخستین
بوت مهمان،
این
اسکریپت (با
دسترسی root،
در اواخر
فرآیند بوت)
اجرا شود.
اسکریپت پس از نصب در مهمان به طور خودکار با chmod +x قابل اجرا میشود.
نسخه جایگزین --firstboot-command مشابه است، اما دستور را به راحتی در یک اسکریپت تکخطی برای شما قرار میدهد.
میتوانید چندین گزینه --firstboot داشته باشید. آنها با همان ترتیبی که در خط فرمان ظاهر شدهاند اجرا میشوند.
همچنین ببینید: "FIRSTBOOT" در virt-customize(1)، --run.
- --firstboot-command 'CMD+ARGS' (بخش "customize" در زیر را ببینید)
- اجرای
دستور (و
آرگومانها)
در داخل
سیستم
مهمان
هنگام
نخستین بوت
مهمان (با
دسترسی root،
در اواخر
فرآیند
بوت).
میتوانید چندین گزینه --firstboot داشته باشید. آنها با همان ترتیبی که در خط فرمان ذکر شدهاند اجرا میشوند.
همچنین ببینید: "FIRSTBOOT" در virt-customize(1)، --run.
- --firstboot-install PKG,PKG.. (بخش "customize" در زیر را ببینید)
- نصب
بستههای
نامبرده
(فهرست
جداشده با
کاما). این
بستهها
هنگام
اولین بوت
مهمان با
استفاده از
مدیر بسته
مهمان
(مانند apt، yum و
غیره) و
اتصال شبکه
مهمان نصب
میشوند.
برای مروری بر روشهای مختلف نصب بستهها، بخش "INSTALLING PACKAGES" در virt-builder(1) را ببینید.
- --hostname HOSTNAME (بخش "customize" در زیر را ببینید)
- تنظیم نام میزبان (hostname) سیستم مهمان به "HOSTNAME". در صورت تمایل میتوانید از یک نام میزبان به همراه دامنه نقطهدار (FQDN) استفاده کنید.
- --inject-blnsvr METHOD (بخش "customize" در زیر را ببینید)
- تزریق سرور
بالن (blnsvr.exe) به
داخل سیستم
مهمان
ویندوزی.
این عملیات
همچنین یک
اسکریپت firstboot
تزریق
میکند تا
سرور بالن
هنگام بوت
مهمان نصب
شود.
پارامتر این گزینه همان پارامتر مورد استفاده در عملیات --inject-virtio-win است.
توجه داشته باشید که برای تبدیل کامل یک مهمان ویندوزی از یک هایپروایزر خارجی مانند VMware (که شامل چندین عملیات دیگر است) باید به جای این ابزار، از virt-v2v(1) استفاده کنید.
- --inject-qemu-ga METHOD (بخش "customize" در زیر را ببینید)
- تزریق عامل
مهمان
کیومو (QEMU Guest Agent)
به داخل
مهمان
ویندوزی.
عامل مهمان
از طریق یک
سوکت با qemu
ارتباط
برقرار
میکند تا
ویژگیهای
پیشرفتهتری
فراهم کند
(به qemu-ga(8)
مراجعه
نمایید).
این عملیات
همچنین یک
اسکریپت firstboot
تزریق
میکند تا
عامل مهمان
هنگام بوت
مهمان نصب
شود.
پارامتر این گزینه همانند پارامتر مورد استفاده در عملیات --inject-virtio-win است.
توجه داشته باشید که برای تبدیل کامل یک مهمان ویندوزی از هایپروایزر خارجی مانند VMware باید از ابزار virt-v2v(1) استفاده نمایید.
- --inject-virtio-win METHOD (بخش "customize" در زیر را ببینید)
- تزریق
درایورهای
virtio-win به یک
سیستم
مهمان
ویندوزی.
این
درایورها
شتابدهندههای
سختافزاری
virtio را اضافه
میکنند که
هنگام اجرا
روی
هایپروایزرهای
پشتیبانیکننده
از virtio (مانند
qemu/KVM) مناسب
هستند. این
عملیات
همچنین
رجیستری
ویندوز را
به گونهای
تنظیم
میکند که
درایورها
در زمان بوت
مهمان نصب
شوند.
پارامتر ورودی میتواند یکی از موارد زیر باشد:
توجه داشته باشید که برای تبدیل کامل یک مهمان ویندوزی از هایپروایزرهای متفرقه مانند VMware باید از ابزار virt-v2v(1) استفاده کنید.
- --install PKG,PKG.. (بخش "customize" در زیر را ببینید)
- نصب
بستههای
نامبرده
(فهرست
جداشده با
کاما). این
بستهها در
طول ساخت
ایمیج با
استفاده از
مدیر بسته
مهمان
(مانند apt، yum و
غیره) و
اتصال شبکه
میزبان نصب
میشوند.
برای مشاهده نمای کلی روشهای مختلف نصب بستهها، بخش "INSTALLING PACKAGES" در virt-builder(1) را ببینید.
همچنین ببینید: --update، --uninstall.
- --keep-user-accounts USERS (بخش "user-account" در زیر را ببینید)
- حسابهای
کاربری که
باید در
سیستم
مهمان نگه
داشته شوند.
مقدار این
گزینه
فهرستی از
نامهای
کاربری است
که با کاما
از هم جدا
شدهاند،
که تعیین یک
کاربر به
معنای
نگهداشتن
آن است.
برای مثال:
--keep-user-accounts mary
حساب کاربری "mary" را حفظ خواهد کرد.
این گزینه میتواند چندین بار مشخص شود.
- --link TARGET:LINK[:LINK..] (بخش "customize" در زیر را ببینید)
- ایجاد پیوند(های) نمادین در مهمان، که از "LINK" شروع شده و به "TARGET" اشاره میکند.
- --mkdir DIR (بخش "customize" در زیر را ببینید)
- ایجاد یک
دایرکتوری
در مهمان.
این گزینه از "mkdir -p" استفاده میکند، بنابراین هرگونه دایرکتوری میانی نیز ساخته خواهد شد، و در صورتی که دایرکتوری از قبل وجود داشته باشد نیز خطایی رخ نمیدهد.
- --move SOURCE:DEST (بخش "customize" در زیر را ببینید)
- انتقال
فایلها یا
دایرکتوریها
در داخل
سیستم
مهمان.
نمیتوان از نویسههای عامهپسند (wildcards) استفاده کرد.
- --no-logfile (بخش "customize" در زیر را ببینید)
- پاکسازی
ایمن (Scrub) فایل
لاگ "builder.log"
(فایل لاگ
دستورات
ساخت) از
روی ایمیج
پس از پایان
ساخت. اگر
مایل
نیستید
جزئیات
دقیق نحوه
ساخت ایمیج
فاش شود، از
این گزینه
استفاده
کنید.
همچنین ببینید: "LOG FILE".
- --no-selinux-relabel (بخش "customize" در زیر را ببینید)
- تلاش نکردن
برای اصلاح
برچسبهای
SELinux فایلها
در مهمان.
در مهمانهایی که از SELinux پشتیبانی میکنند، سفارشیسازی به طور خودکار فایلها را مجدداً برچسبگذاری میکند تا برچسب صحیح SELinux را داشته باشند. (برچسبگذاری مجدد بلافاصله انجام میشود، اما اگر این عملیات با شکست مواجه شود، سفارشیسازی به جای آن فایل /.autorelabel را روی ایمیج لمس (touch) میکند تا عملیات برچسبگذاری مجدد برای بوت بعدی ایمیج زمانبندی گردد.) این گزینه برچسبگذاری مجدد خودکار را غیرفعال میسازد.
این گزینه برای مهمانهایی که از SELinux پشتیبانی نمیکنند بیاثر است.
- --password USER:SELECTOR (بخش "customize" در زیر را ببینید)
- تنظیم
گذرواژه
برای "USER".
(توجه داشته
باشید که
این گزینه
حساب
کاربری را
ایجاد
نمیکند).
برای اطلاع از ساختار فیلد "SELECTOR" و همچنین چگونگی راهاندازی حسابهای کاربری، بخش "USERS AND PASSWORDS" در virt-builder(1) را ببینید.
- --password-crypto md5|sha256|sha512 (بخش "customize" در زیر را ببینید)
- هنگامی که
ابزارهای virt
گذرواژهای
را در مهمان
تغییر داده
یا تنظیم
میکنند،
این گزینه
رمزنگاری
آن گذرواژه
را به یکی
از مقادیر
"md5"،
"sha256" یا
"sha512"
تعیین
میکند.
مقدارهای "sha256" و "sha512" نیازمند glibc ≥ 2.7 هستند (راهنمای crypt(3) را در مهمان بررسی کنید).
مقدار "md5" روی مهمانهای لینوکسی نسبتاً قدیمی (مانند RHEL 3) کار میکند، اما در برابر حملات امروزی ایمن نیست.
مقدار پیشفرض "sha512" است مگر اینکه libguestfs یک مهمان قدیمی را تشخیص دهد که از SHA-512 پشتیبانی نمیکرد، که در آن صورت از "md5" استفاده خواهد شد. شما میتوانید با تعیین این گزینه، رفتار libguestfs را بازنویسی کنید.
توجه داشته باشید این گزینه، رمزنگاری پیشفرض گذرواژه را که توسط مهمان هنگام ساخت حسابهای کاربری جدید در داخل مهمان استفاده میشود، تغییر نمیدهد. اگر میخواهید آن را تغییر دهید، باید از گزینه --edit برای اصلاح فایلهای "/etc/sysconfig/authconfig" (در Fedora و RHEL) یا "/etc/pam.d/common-password" (در Debian و Ubuntu) استفاده کنید.
- --remove-user-accounts USERS (بخش "user-account" در زیر را ببینید)
- حسابهای
کاربری که
باید از
سیستم
مهمان حذف
شوند. مقدار
این گزینه
فهرستی از
نامهای
کاربری
جداشده با
کاما است،
که مشخص
کردن یک
کاربر به
معنای حذف
شدن آن است.
برای مثال:
--remove-user-accounts bob,eve
تنها حسابهای کاربری "bob" و "eve" را حذف خواهد کرد.
این گزینه میتواند چندین بار مشخص شود.
- --root-password SELECTOR (بخش "customize" در زیر را ببینید)
- تنظیم
گذرواژه
کاربر root.
برای اطلاع از ساختار فیلد "SELECTOR" و همچنین نحوه راهاندازی حسابهای کاربری، بخش "USERS AND PASSWORDS" در virt-builder(1) را ببینید.
نکته: در virt-builder، اگر گزینه --root-password را مشخص نکنید، یک گذرواژه ریشه تصادفی به مهمان اختصاص مییابد.
- --run SCRIPT (بخش "customize" در زیر را ببینید)
- اجرای
اسکریپت شل
(یا هر
برنامه
دیگری) به
نام "SCRIPT"
روی ایمیج
دیسک.
اسکریپت به
صورت
مجازیشده
درون یک
محیط
ایزوله
کوچک (appliance) و به
صورت chroot در
سیستمفایل
مهمان اجرا
میشود.
اسکریپت به طور خودکار chmod +x خواهد شد.
اگر libguestfs از آن پشتیبانی کند، یک اتصال شبکه محدود در دسترس خواهد بود اما تنها اتصالات خروجی شبکه مجاز هستند. همچنین میتوانید دیسکهای داده (مانند فایلهای ISO) را به عنوان روشی دیگر برای ارائه دادهها (مانند بستههای نرمافزاری) به اسکریپت بدون نیاز به اتصال شبکه متصل کنید (--attach). همچنین میتوانید فایلهای داده را بارگذاری کنید (--upload).
میتوانید چندین گزینه --run داشته باشید. آنها با همان ترتیبی که در خط فرمان ظاهر شدهاند اجرا میشوند.
همچنین ببینید: --firstboot، --attach، --upload.
- --run-command 'CMD+ARGS' (بخش "customize" در زیر را ببینید)
- اجرای
دستور و
آرگومانهای
آن روی
ایمیج دیسک.
دستور به
صورت
مجازیشده
درون یک
محیط
ایزوله
کوچک و با chroot
درون
سیستمفایل
مهمان اجرا
میشود.
اگر libguestfs از آن پشتیبانی کند، یک اتصال شبکه محدود در دسترس خواهد بود اما تنها اتصالات خروجی شبکه مجاز هستند. همچنین میتوانید دیسکهای داده (مانند فایلهای ISO) را به عنوان روشی دیگر برای ارائه دادهها به دستور بدون نیاز به اتصال شبکه متصل کنید (--attach). همچنین میتوانید فایلهای داده را بارگذاری کنید (--upload).
میتوانید چندین گزینه --run-command داشته باشید. آنها با همان ترتیبی که در خط فرمان ذکر شدهاند اجرا میشوند.
همچنین ببینید: --firstboot، --attach، --upload.
- --script SCRIPT (بخش "script" در زیر را ببینید)
- اجرای
اسکریپت یا
برنامه
نامبرده
"SCRIPT" روی
سیستم
مهمان.
اسکریپت
میتواند
هر
برنامهای
روی سیستم
میزبان
باشد.
دایرکتوری
جاری
اسکریپت،
دایرکتوری
ریشه مهمان
خواهد بود.
نکته: اگر اسکریپت در مسیر $PATH قرار ندارد، باید مسیر مطلق کامل آن را مشخص کنید.
- --scriptdir SCRIPTDIR (بخش "script" در زیر را ببینید)
- نقطه مانت
(یک
دایرکتوری
خالی روی
میزبان) که
هنگامی که
عملیات
"script"
فعال باشد و
یک یا چند
اسکریپت با
استفاده از
پارامتر(های)
--script مشخص شده
باشند،
استفاده
میشود.
نکته: مقدار "SCRIPTDIR" باید یک مسیر مطلق باشد.
اگر --scriptdir مشخص نشود، یک نقطه مانت موقت ایجاد خواهد شد.
- --scrub FILE (بخش "customize" در زیر را ببینید)
- پاکسازی ایمن یک فایل از مهمان. این گزینه مشابه --delete است با این تفاوت که:
- دادهها را به گونهای پاکسازی میکند که مهمان نتواند آن را بازیابی نماید.
- نمیتواند دایرکتوریها را حذف کند، بلکه تنها فایلهای معمولی را پاک میکند.
- --selinux-relabel (بخش "customize" در زیر را ببینید)
- این یک گزینه سازگاری است که کاری انجام نمیدهد.
- --ssh-inject USER[:SELECTOR] (بخش "customize" در زیر را ببینید)
- تزریق یک
کلید ssh تا
"USER"
دادهشده
بتواند
بدون نیاز
به گذرواژه
از طریق ssh
وارد سیستم
شود. کاربر
"USER" باید
از قبل در
مهمان وجود
داشته باشد.
برای اطلاع از ساختار فیلد "SELECTOR" به بخش "SSH KEYS" در virt-builder(1) مراجعه کنید.
میتوانید چندین گزینه --ssh-inject برای کاربران مختلف و همچنین برای کلیدهای بیشتر به ازای هر کاربر داشته باشید.
- --tar-in TARFILE:REMOTEDIR (بخش "customize" در زیر را ببینید)
- کپی فایلها یا دایرکتوریهای محلی از یک فایل tar محلی به نام "TARFILE" به داخل ایمیج دیسک، و قرار دادن آنها در دایرکتوری "REMOTEDIR" (که باید وجود داشته باشد). توجه داشته باشید که فایل tar باید غیرفشرده باشد (فایلهای .tar.gz در اینجا کار نمیکنند).
- --timezone TIMEZONE (بخش "customize" در زیر را ببینید)
- تنظیم منطقه زمانی پیشفرض مهمان به "TIMEZONE". از رشته مکانی مانند "Europe/London" یا "Asia/Tehran" استفاده کنید.
- --touch FILE (بخش "customize" در زیر را ببینید)
- این دستور عملیاتی شبیه به دستور touch(1) روی فایل "FILE" انجام میدهد.
- --truncate FILE (بخش "customize" در زیر را ببینید)
- این دستور اندازه فایل "FILE" را به صفر کاهش میدهد (خالی میکند). فایل باید از قبل وجود داشته باشد.
- --truncate-recursive PATH (بخش "customize" در زیر را ببینید)
- این دستور به طور بازگشتی تمام فایلهای زیر مسیر "PATH" را با اندازه صفر کوتاه (خالی) میکند.
- --uninstall PKG,PKG.. (بخش "customize" در زیر را ببینید)
- حذف
بستههای
نامبرده
(فهرست
جداشده با
کاما). این
بستهها در
حین ساخت
ایمیج با
استفاده از
مدیر بسته
مهمان
(مانند apt، yum و
غیره) حذف
میشوند.
همچنین
ممکن است
برای
برآورده
کردن این
درخواست،
نیاز به حذف
بستههای
وابسته
باشد.
همچنین ببینید: --install، --update.
- --update (بخش "customize" در زیر را ببینید)
- انجام
معادل
دستورهای
"yum update"،
"apt-get upgrade"،
یا هر دستور
دیگری که
برای
ارتقای
بستههای
نصبشده
فعلی در
قالب به
آخرین نسخه
آنها لازم
است.
همچنین ببینید: --install، --uninstall.
- --upload FILE:DEST (بخش "customize" در زیر را ببینید)
- بارگذاری
فایل محلی
"FILE" به
مقصد "DEST"
در ایمیج
دیسک.
مالکیت و
مجوزهای
فایل از
نسخه اصلی
حفظ
میشوند،
بنابراین
باید آنها
را طوری
تنظیم کنید
که مایلید
در ایمیج
دیسک باشند.
مقدار "DEST" میتواند نام نهایی فایل باشد. این حالت میتواند برای تغییر نام فایل هنگام بارگذاری استفاده شود.
اگر "DEST" نام یک دایرکتوری باشد (که باید از قبل در مهمان وجود داشته باشد)، فایل در آن دایرکتوری بارگذاری میشود و نام فایل همانند سیستمفایل محلی باقی میماند.
همچنین ببینید: --mkdir، --delete، --scrub.
- --write FILE:CONTENT (بخش "customize" در زیر را ببینید)
- نوشتن "CONTENT" در داخل فایل "FILE".
عملیاتها (OPERATIONS)
اگر گزینه --enable/--operations داده نشود، بیشتر عملیاتهای sysprep فعال هستند.
برای مشاهده فهرست تمامی عملیاتهای موجود برای باینری virt-sysprep خود، دستور "virt-sysprep --list-operations" را اجرا نمایید. مواردی که به طور پیشفرض فعال هستند با یک نویسه "*" مشخص شدهاند. بدون در نظر گرفتن گزینههای --enable/--operations، عملیاتهای sysprep برای برخی انواع سیستم مهمان نادیده گرفته میشوند.
عملیاتها میتوانند به صورت جداگانه با گزینههای --enable/--operations فعال شوند. از یک فهرست جداشده با کاما استفاده کنید، به عنوان مثال:
virt-sysprep --operations ssh-hostkeys,udev-persistent-net [etc..]
نسخههای بعدی virt-sysprep ممکن است عملیاتهای بیشتری اضافه کنند. اگر از virt-sysprep استفاده میکنید و رفتاری قابل پیشبینی میخواهید، تنها عملیاتهایی را که میخواهید فعال باشند صریحاً مشخص کنید.
نویسه "*" = در حالتی که هیچ گزینه --enable/--operations داده نشود، به صورت پیشفرض فعال است.
abrt-data *
حذف دادههای خرابی تولیدشده توسط ABRT.
حذف دادههای خرابی ABRT تولیدشده به طور خودکار در "/var/spool/abrt/".
backup-files *
حذف فایلهای پشتیبان ویرایشگرها از مهمان.
فایلهای زیر از تمام نقاط سیستمفایل مهمان حذف میشوند:
- ·
- *.bak
- ·
- *~
در سیستمعاملهای لینوکس و یونیکس، تنها سیستمهای فایل زیر بررسی خواهند شد:
- ·
- /etc
- ·
- /root
- ·
- /srv
- ·
- /tmp
- ·
- /var
bash-history *
حذف تاریخچه دستورات bash در مهمان.
حذف تاریخچه bash کاربر "root" و هر کاربر دیگری که یک فایل ".bash_history" در دایرکتوری خانگی خود دارد.
نکاتی درباره bash-history
در حال حاضر این عملیات تنها در "/root" و "/home/*" به دنبال دایرکتوریهای خانگی میگردد، بنابراین تاریخچه bash کاربرانی که دایرکتوری خانگی آنها در مکانهای دیگری است حذف نخواهد شد.
blkid-tab *
حذف برگه (tab) blkid در مهمان.
ca-certificates
حذف گواهیهای مرجع گواهی (CA) در مهمان.
در صورتی که هرگونه گواهی حذف شود، مخزن گواهیهای CA سیستم بهروزرسانی میشود.
crash-data *
حذف دادههای خرابی تولیدشده توسط kexec-tools.
حذف دادههای خرابی هسته تولیدشده خودکار توسط kdump.
cron-spool *
حذف کارهای at و cron کاربران.
customize *
سفارشیسازی مهمان.
سفارشیسازی مهمان با ارائه گزینههای virt-customize(1) برای نصب بستهها، ویرایش فایلها و مواردی از این دست.
dhcp-client-state *
حذف اجارههای سرویسگیرنده DHCP (کلاینت).
dhcp-server-state *
حذف اجارههای کارساز DHCP (سرور).
dovecot-data *
حذف دادههای Dovecot (کارساز ایمیل).
firewall-rules
حذف قوانین دیوار آتش (فایروال).
این عملیات قوانین سفارشی فایروال را با حذف "/etc/sysconfig/iptables" یا پیکربندی سفارشی firewalld در "/etc/firewalld/*/*" حذف میکند.
توجه داشته باشید که این گزینه به طور پیشفرض فعال نیست زیرا ممکن است مهمان را در معرض آسیبپذیریها قرار دهد. با احتیاط استفاده شود.
flag-reconfiguration
نشانهگذاری سیستم برای پیکربندی مجدد.
برای مهمانهای لینوکس، این کار فایل "/.unconfigured" را لمس (touch) میکند، که باعث میشود در اولین بوت، به صورت تعاملی تنظیماتی مانند گذرواژه ریشه و منطقه زمانی از کاربر پرسیده شود.
fs-uuids
تغییر شناسههای UUID سیستمهای فایل.
در مهمانها و انواع سیستمفایلهایی که پشتیبانی میشود، UUIDهای تصادفی جدید تولید شده و به سیستمهای فایل اختصاص مییابد.
نکاتی درباره fs-uuids
عملیات fs-uuids به طور پیشفرض غیرفعال است زیرا هنوز تمام مکانهایی در مهمان را که از UUID استفاده میکنند (برای مثال "/etc/fstab" یا بارگذار بوت) پیدا و بهروزرسانی نمیکند. فعالسازی این عملیات به احتمال قوی باعث غیرقابل بوت شدن سیستم مهمان شما میشود.
ipa-client *
حذف فایلهای IPA.
حذف تمام فایلهای مربوط به سیستم IPA (هویت، خطمشی، حسابرسی - Identity, Policy, Audit). این کار در عمل مهمان را بدون تعامل با کارساز IPA از آن خارج (unenroll) میکند.
این عملیات دستور "ipa-client" را اجرا نمیکند.
kerberos-data
حذف دادههای کربروس (Kerberos) در مهمان.
kerberos-hostkeytab *
حذف فایل host keytab کربروس در مهمان.
logfiles *
حذف تعداد زیادی از فایلهای لاگ از سیستم مهمان.
در لینوکس فایلهای زیر حذف میشوند:
- ·
- /etc/Pegasus/*.cnf
- ·
- /etc/Pegasus/*.crt
- ·
- /etc/Pegasus/*.csr
- ·
- /etc/Pegasus/*.pem
- ·
- /etc/Pegasus/*.srl
- ·
- /root/anaconda-ks.cfg
- ·
- /root/anaconda-post.log
- ·
- /root/initial-setup-ks.cfg
- ·
- /root/install.log
- ·
- /root/install.log.syslog
- ·
- /root/original-ks.cfg
- ·
- /var/cache/fontconfig/*
- ·
- /var/cache/gdm/*
- ·
- /var/cache/man/*
- ·
- /var/lib/AccountService/users/*
- ·
- /var/lib/fprint/*
- ·
- /var/lib/logrotate.status
- ·
- /var/log/*.log*
- ·
- /var/log/BackupPC/LOG
- ·
- /var/log/ConsoleKit/*
- ·
- /var/log/anaconda.syslog
- ·
- /var/log/anaconda/*
- ·
- /var/log/apache2/*_log
- ·
- /var/log/apache2/*_log-*
- ·
- /var/log/apt/*
- ·
- /var/log/aptitude*
- ·
- /var/log/audit/*
- ·
- /var/log/btmp*
- ·
- /var/log/ceph/*.log
- ·
- /var/log/chrony/*.log
- ·
- /var/log/cron*
- ·
- /var/log/cups/*_log*
- ·
- /var/log/debug*
- ·
- /var/log/dmesg*
- ·
- /var/log/exim4/*
- ·
- /var/log/faillog*
- ·
- /var/log/firewalld*
- ·
- /var/log/gdm/*
- ·
- /var/log/glusterfs/*glusterd.vol.log
- ·
- /var/log/glusterfs/glusterfs.log
- ·
- /var/log/grubby*
- ·
- /var/log/httpd/*log
- ·
- /var/log/installer/*
- ·
- /var/log/jetty/jetty-console.log
- ·
- /var/log/journal/*
- ·
- /var/log/lastlog*
- ·
- /var/log/libvirt/libvirtd.log
- ·
- /var/log/libvirt/libxl/*.log
- ·
- /var/log/libvirt/lxc/*.log
- ·
- /var/log/libvirt/qemu/*.log
- ·
- /var/log/libvirt/uml/*.log
- ·
- /var/log/lightdm/*
- ·
- /var/log/mail/*
- ·
- /var/log/maillog*
- ·
- /var/log/messages*
- ·
- /var/log/ntp
- ·
- /var/log/ntpstats/*
- ·
- /var/log/ppp/connect-errors
- ·
- /var/log/rhsm/*
- ·
- /var/log/sa/*
- ·
- /var/log/secure*
- ·
- /var/log/setroubleshoot/*.log
- ·
- /var/log/spooler*
- ·
- /var/log/squid/*.log
- ·
- /var/log/syslog*
- ·
- /var/log/tallylog*
- ·
- /var/log/tuned/tuned.log
- ·
- /var/log/wtmp*
- ·
- /var/log/xferlog*
- ·
- /var/named/data/named.run
lvm-system-devices *
حذف فایل system.devices در LVM2.
در مهمانهای لینوکس، پویش LVM2 برای یافتن حجمهای فیزیکی (PV) ممکن است تنها به دستگاههای بلوکی که WWID آنها در "/etc/lvm/devices/system.devices" فهرست شده محدود شود. هنگام شبیهسازی ماشینهای مجازی، WWIDها ممکن است تغییر کنند و کارکرد "lvm pvscan" را با شکست روبرو سازند. این عملیات "/etc/lvm/devices/system.devices" را حذف میکند.
lvm-uuids *
تغییر شناسههای UUID مربوط به PV و VG در LVM2.
در مهمانهای لینوکسی که دارای حجمهای فیزیکی (PV) یا گروههای حجم (VG) در LVM2 هستند، UUIDهای تصادفی جدید تولید شده و به این PVها و VGها اختصاص داده میشود.
machine-id *
حذف شناسه محلی ماشین (machine ID).
شناسه ماشین معمولاً در طول نصب سیستم از یک منبع تصادفی تولید میشود و برای تمام بوتهای بعدی ثابت میماند. به طور اختیاری، برای سیستمهای بدون وضعیت (stateless) در صورت خالی بودن در حین بوت، در زمان اجرا تولید میشود.
mail-spool *
حذف ایمیلها از دایرکتوری صف محلی ایمیل (mail spool).
net-hostname *
حذف HOSTNAME و DHCP_HOSTNAME در پیکربندی رابط شبکه.
برای فدورا و ردهت انترپرایز لینوکس، این مورد از فایلهای "ifcfg-*" حذف میشود.
net-hwaddr *
حذف پیکربندی HWADDR (آدرس سختافزاری/MAC ثابت).
برای فدورا و ردهت انترپرایز لینوکس، این مورد از فایلهای "ifcfg-*" حذف میشود.
net-nmconn *
حذف پروفایلهای اتصال محلی NetworkManager (فایلهای کلید).
در فدورا و ردهت انترپرایز لینوکس، فایلهای "/etc/NetworkManager/system-connections/*.nmconnection" حذف میشوند.
pacct-log *
حذف فایلهای لاگ حسابداری فرآیندها (process accounting).
در صورت فعال بودن حسابداری فرآیندها، اطلاعات حسابداری سراسری سیستم در فایلهای لاگ pacct ذخیره میشود.
package-manager-cache *
حذف حافظه موقت (کش) مدیر بستهها.
pam-data *
حذف دادههای PAM در مهمان.
passwd-backups *
حذف /etc/passwd- و فایلهای پشتیبان مشابه.
در لینوکس فایلهای زیر حذف میشوند:
- ·
- /etc/group-
- ·
- /etc/gshadow-
- ·
- /etc/passwd-
- ·
- /etc/shadow-
- ·
- /etc/subgid-
- ·
- /etc/subuid-
puppet-data-log *
حذف فایلهای داده و لاگ Puppet.
rh-subscription-manager *
حذف فایلهای مدیر اشتراک رد هت (RH Subscription Manager).
rhn-systemid *
حذف شناسه سیستم RHN.
rpm-db *
حذف فایلهای پایگاه داده RPM مختص میزبان.
حذف فایلها و قفلهای پایگاه داده RPM مختص میزبان. در صورت نیاز، RPM این فایلها را به طور خودکار دوباره ایجاد خواهد کرد.
samba-db-log *
حذف فایلهای پایگاه داده و لاگ سامبا (Samba).
script *
اجرای اسکریپتهای دلخواه روی سیستم مهمان.
ماژول "script" به شما اجازه میدهد اسکریپتهای شل یا برنامههای دلخواه را روی مهمان اجرا کنید.
توجه داشته باشید این ویژگی نیازمند پشتیبانی FUSE است. ممکن است لازم باشد این مورد را در میزبان خود فعال نمایید، به عنوان مثال با افزودن کاربر جاری به گروه "fuse" یا با بارگذاری یک ماژول هسته.
از یک یا چند پارامتر --script برای تعیین اسکریپتها یا برنامههایی که باید روی مهمان اجرا شوند استفاده نمایید.
اسکریپت یا برنامه با دایرکتوری جاری برابر با دایرکتوری ریشه مهمان اجرا میشود، بنابراین باید از مسیرهای نسبی استفاده شود. برای مثال: اجرای "rm etc/resolv.conf" در اسکریپت، فایل پیکربندی DNS مهمان لینوکسی را حذف میکند، اما "rm /etc/resolv.conf" تلاش میکند فایل سیستم میزبان را حذف کند.
معمولاً یک نقطه مانت موقت برای مهمان استفاده میشود، اما میتوانید با استفاده از پارامتر --scriptdir یک نقطه مانت مشخص را انتخاب نمایید.
نکته: این مورد با اسکریپتهای --firstboot (که در بستر سیستم مهمان هنگام اولین بوت اجرا میشوند) تفاوت دارد. اسکریپتهای --script روی میزبان اجرا میشوند، نه داخل مهمان.
smolt-uuid *
حذف شناسه UUID سختافزار Smolt.
ssh-hostkeys *
حذف کلیدهای میزبان SSH در مهمان.
کلیدهای میزبان SSH در بوت بعدی سیستم مهمان، (به طور متفاوت) بازتولید خواهند شد.
اگر پس از شبیهسازی، مهمان همان آدرس IP را دریافت کند، ssh یک هشدار جدی درباره تغییر کلید میزبان به شما میدهد:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
ssh-userdir *
حذف دایرکتوریهای ".ssh" در مهمان.
حذف دایرکتوری ".ssh" کاربر "root" و هر کاربر دیگری که دایرکتوری ".ssh" در شاخه خانگی خود دارد.
نکاتی درباره ssh-userdir
در حال حاضر این عملیات تنها در "/root" و "/home/*" به دنبال دایرکتوریهای خانگی میگردد، بنابراین فایلهای ssh کاربرانی که شاخه خانگی آنها در مکانهای دیگری است حذف نخواهد شد.
sssd-db-log *
حذف فایلهای پایگاه داده و لاگ sssd.
tmp-files *
حذف فایلهای موقت.
این عملیات فایلهای موقت زیر "/tmp" و "/var/tmp" را حذف میکند.
udev-persistent-net *
حذف قواعد شبکه ماندگار udev.
حذف قوانین ماندگار udev که آدرس MAC فعلی مهمان را به یک دستگاه اترنت ثابت (مانند eth0) نگاشت میکنند.
پس از شبیهسازی یک مهمان، آدرس MAC معمولاً تغییر میکند. از آنجا که آدرس MAC قدیمی نام قبلی (مانند eth0) را اشغال کرده است، این بدان معناست که آدرس MAC تازه به یک نام جدید (مانند eth1) اختصاص مییابد و این معمولاً نامطلوب است. پاک کردن قواعد شبکه ماندگار udev از این وضعیت جلوگیری میکند.
user-account
حذف حسابهای کاربری در مهمان.
به طور پیشفرض تمام حسابهای کاربری و دایرکتوریهای خانگی آنها را حذف میکند. حساب "root" حذف نمیشود.
برای مشاهده روش حذف تنها برخی از کاربران یا عدم حذف برخی دیگر، پارامتر --remove-user-accounts را ببینید.
utmp *
حذف فایل utmp.
این فایل مشخص میکند که چه کسانی در حال حاضر وارد سیستم شدهاند. در توزیعهای مدرن لینوکس این فایل در یک رمدیسک (ramdisk) ذخیره میشود و بنابراین بخشی از دیسک ماشین مجازی نیست، اما در توزیعهای قدیمیتر روی دیسک ذخیره میشد.
yum-uuid *
حذف شناسه UUID مربوط به yum.
نرمافزار Yum دفعه بعدی که اجرا شود و متوجه شود UUID اصلی پاک شده است، یک UUID تازه ایجاد میکند.
zsh-history *
حذف تاریخچه zsh در مهمان.
حذف تاریخچه zsh کاربر "root" و هر کاربر دیگری که یک فایل ".zsh_history" در دایرکتوری خانگی خود دارد.
نکاتی درباره zsh-history
در حال حاضر این عملیات تنها در "/root" و "/home/*" به دنبال دایرکتوریهای خانگی میگردد، بنابراین تاریخچه zsh کاربرانی که دایرکتوری خانگی آنها در مکانهای دیگر است حذف نخواهد شد.
امنیت (SECURITY)
ماشینهای مجازی که از رمزنگاری کامل دیسک به صورت داخلی در مهمان استفاده میکنند نباید برای شبیهسازی و توزیع در نظر گرفته شوند، زیرا به چندین طرف کلید حجم داخلی یکسانی ارائه میدهد و هر یک از آنها را قادر میسازد تمام کلونهای دیگر را رمزگشایی کند. برای جزئیات بیشتر به بخش سوالات متداول (FAQ) مربوط به LUKS مراجعه کنید.
اگرچه virt-sysprep برخی اطلاعات حساس را از مهمان حذف میکند، اما ادعا نمیکند که همه آنها را پاک میکند. شما باید بخش "عملیاتها (OPERATIONS)" در بالا و همچنین مهمان را پس از آن بررسی کنید.
فایلهای حساس صرفاً حذف میشوند. دادههایی که شامل میشدند ممکن است همچنان روی دیسک وجود داشته باشند و با یک ویرایشگر هگز یا ابزار بازیابی فایل (undelete) به راحتی قابل بازیابی باشند. گزینه --scrub میتواند برای پاکسازی عمیق و ایمن فایلها به جای حذف ساده آنها استفاده شود. دستور virt-sparsify(1) روش دیگری برای حذف این محتوا است. همچنین دستور scrub(1) را برای پاکسازی محتوای حذفشده در ورودیهای دایرکتوری و inodeها ببینید.
بذر تصادفی (Random seed)
(این بخش فقط برای مهمانهای لینوکس اعمال میشود)
برای مهمانهای پشتیبانیشده، virt-sysprep چند بایت تصادفی از میزبان را در فایل بذر تصادفی مهمان مینویسد.
اگر این کار تنها یک بار انجام شود و مهمان از همان قالب شبیهسازی گردد، هر مهمان با آنتروپی یکسانی شروع به کار خواهد کرد و مواردی مانند کلیدهای میزبان SSH و شمارههای توالی TCP ممکن است قابل پیشبینی باشند.
بنابراین باید ترتیبی دهید که پس از شبیهسازی از روی قالب نیز مقادیر تصادفی بیشتری اضافه شود، که این کار را میتوان با فعالسازی ماژول customize انجام داد:
cp template.img newguest.img virt-sysprep --enable customize -a newguest.img
نکات (NOTES)
SELinux
برای مهمانهایی که از SELinux استفاده میکنند، هنگام استفاده از عملیاتهایی که فایلهای جدید ایجاد میکنند یا فایلهای موجود را تغییر میدهند ممکن است رسیدگی ویژهای به آنها مورد نیاز باشد.
برای جزئیات بیشتر، به "SELINUX" در virt-builder(1) مراجعه کنید.
Windows ≥ 8
قابلیت "راهاندازی سریع" (fast startup) در ویندوز ۸ میتواند مانع از کارکرد درست virt-sysprep شود. به "WINDOWS HIBERNATION AND WINDOWS 8 FAST STARTUP" در guestfs(3) مراجعه کنید.
وضعیت خروج (EXIT STATUS)
این برنامه در صورت موفقیت 0 و در صورت بروز خطا 1 را برمیگرداند.
متغیرهای محیطی (ENVIRONMENT VARIABLES)
- "VIRT_TOOLS_DATA_DIR"
- این متغیر
میتواند
به
دایرکتوری
حاوی
فایلهای
داده
استفادهشده
برای نصب
بوت اولیه
(firstboot) ویندوز
اشاره کند.
به طور معمول نیازی به تنظیم این متغیر ندارید. در صورت عدم تنظیم، مقدار پیشفرض کامپایلشده درون برنامه استفاده خواهد شد (چیزی شبیه به /usr/share/virt-tools).
این دایرکتوری ممکن است شامل فایلهای زیر باشد:
- rhsrvany.exe
- این فایل
باینری
ویندوزی RHSrvAny
است که برای
نصب یک
اسکریپت
"firstboot" در
مهمانهای
ویندوز
استفاده
میشود. اگر
قصد دارید
از
گزینههای
--firstboot یا --firstboot-command
با
مهمانهای
ویندوزی
استفاده
کنید، وجود
آن الزامی
است.
همچنین ببینید: "https://github.com/rwmjones/rhsrvany"
- pvvxsvc.exe
- این یک باینری ویندوزی ارائهشده با SUSE VMDP است که برای نصب یک اسکریپت "firstboot" در مهمانهای ویندوز به کار میرود. اگر قصد دارید از گزینههای --firstboot یا --firstboot-command با مهمانهای ویندوزی استفاده کنید، وجود آن الزامی است.
برای سایر متغیرهای محیطی، به "ENVIRONMENT VARIABLES" در guestfs(3) مراجعه کنید.
همچنین ببینید (SEE ALSO)
guestfs(3), guestfish(1), virt-builder(1), virt-clone(1), virt-customize(1), virt-rescue(1), virt-resize(1), virt-sparsify(1), virsh(1), lvcreate(8), qemu-img(1), scrub(1), http://libguestfs.org, http://libvirt.org
نویسندگان (AUTHORS)
Richard W.M. Jones http://people.redhat.com/~rjones
Wanlong Gao, Fujitsu Ltd.
حق نشر (COPYRIGHT)
Copyright (C) 2011-2025 Red Hat Inc.
Copyright (C) 2012 Fujitsu Ltd.
مجوز (LICENSE)
این برنامه نرمافزار آزاد است؛ شما میتوانید آن را تحت شرایط مجوز عمومی همگانی گنو (GNU General Public License) که توسط بنیاد نرمافزارهای آزاد منتشر شده است، چه نسخه ۲ مجوز و چه (به انتخاب خودتان) هر نسخه بعدی دیگری، بازتوزیع کرده و/یا تغییر دهید.
این برنامه به این امید توزیع شده است که مفید واقع شود، اما بدون هیچگونه ضمانتی؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف مشخص. برای جزئیات بیشتر به مجوز عمومی همگانی گنو مراجعه کنید.
شما باید همراه با این برنامه یک نسخه از مجوز عمومی همگانی گنو را دریافت کرده باشید؛ در غیر این صورت، به آدرس زیر نامه بنویسید: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
اشکالات (BUGS)
برای دریافت فهرستی از اشکالات مربوط به libguestfs، از نشانی زیر استفاده کنید: https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools
برای گزارش یک اشکال جدید در libguestfs، از نشانی زیر استفاده کنید: https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools
هنگام گزارش یک اشکال، لطفاً موارد زیر را ارائه دهید:
- نسخه libguestfs.
- مکانی که libguestfs را از آن دریافت کردهاید (مانند توزیع لینوکس، کامپایلشده از سورس و غیره).
- توصیف دقیق اشکال و ارائه روشی برای بازتولید آن.
- اجرای دستور libguestfs-test-tool(1) و قرار دادن خروجی کامل و ویرایشنشده آن در گزارش اشکال.
| 2026-07-11 | guestfs-tools-1.56.0 |