virt-cat(1) Virtualization Support virt-cat(1)

virt-cat - نمایش سریع محتویات فایل‌های داخل ماشین مجازی

virt-cat [--options] -d domname file [file ...]
virt-cat [--options] -a disk.img [-a disk.img ...] file [file ...]

شیوه قدیمی:

virt-cat domname file
virt-cat disk.img file

دستور "virt-cat" یک ابزار خط فرمان برای نمایش محتویات "file" است، به طوری که "file" درون ماشین مجازی (یا ایمیج دیسک) مشخص‌شده وجود دارد.

می‌توان چندین نام فایل را مشخص کرد که در این حالت محتوای آن‌ها به یکدیگر متصل و پشت سر هم نمایش داده می‌شوند. هر نام فایل باید یک مسیر کامل باشد که از دایرکتوری ریشه شروع می‌شود (با '/' آغاز می‌گردد).

ابزار "virt-cat" می‌تواند برای مشاهده سریع یک فایل استفاده شود. برای ویرایش یک فایل، از "virt-edit" استفاده کنید. برای موارد پیچیده‌تر باید به ابزار guestfish(1) نگاهی بیندازید (بخش "استفاده از GUESTFISH" در زیر را ببینید).

نمایش فایل /etc/fstab از داخل ماشین مجازی libvirt به نام "mydomain":

virt-cat -d mydomain /etc/fstab

یافتن بسته‌هایی که اخیراً نصب شده‌اند:

virt-cat -d mydomain /var/log/yum.log | tail

یافتن اینکه چه کسی درون ماشین مجازی وارد سیستم شده است:

virt-cat -d mydomain /var/run/utmp > /tmp/utmp
who /tmp/utmp

یا چه کسانی قبلاً وارد سیستم شده بودند:

virt-cat -d mydomain /var/log/wtmp > /tmp/wtmp
last -f /tmp/wtmp

نمایش راهنمای خلاصه.
افزودن file که باید یک ایمیج دیسک از ماشین مجازی باشد. اگر ماشین مجازی دارای چندین دستگاه بلوکی است، باید همه آن‌ها را با گزینه‌های جداگانه -a مشخص کنید.

فرمت ایمیج دیسک به صورت خودکار تشخیص داده می‌شود. برای لغو این حالت و اجبار یک فرمت خاص، از گزینه --format=.. استفاده کنید.

افزودن یک دیسک ریموت. بخش "ADDING REMOTE STORAGE" در guestfish(1) را ببینید.
این پارامتر اندازه سکتور ایمیج دیسک را تنظیم می‌کند. این گزینه بر تمام دیسک‌های بعدی که پس از این پارامتر به صورت صریح اضافه می‌شوند تأثیر می‌گذارد. استفاده از --blocksize بدون آرگومان، اندازه سکتور دیسک را به مقدار پیش‌فرض که معمولاً ۵۱۲ بایت است تغییر می‌دهد. همچنین "guestfs_add_drive_opts" در guestfs(3) را ببینید.
در صورت استفاده از libvirt، به URI مشخص‌شده متصل می‌شود. در صورت حذف، به هایپروایزر پیش‌فرض libvirt متصل می‌شویم.

اگر دستگاه‌های بلوکی مهمان را مستقیماً مشخص کنید (-a)، دیگر از libvirt استفاده نمی‌شود.

افزودن تمام دیسک‌ها از مهمان libvirt مشخص‌شده. می‌توان به جای نام‌ها از UUID دامنه‌ها استفاده کرد.
هنگام درخواست کلیدها و گذرواژه‌ها، virt-cat معمولاً بازتاب تایپ (echo) را خاموش می‌کند تا نتوانید آنچه را که تایپ می‌کنید ببینید. اگر نگران حملات Tempest نیستید و فرد دیگری در اتاق حضور ندارد، می‌توانید این فلگ را مشخص کنید تا آنچه را که تایپ می‌کنید ببینید.
حالت پیش‌فرض برای گزینه -a تشخیص خودکار فرمت ایمیج دیسک است. استفاده از این گزینه، فرمت دیسک را برای گزینه‌های -a که در ادامه خط فرمان می‌آیند اجبار می‌کند. استفاده از --format بدون آرگومان، حالت تشخیص خودکار را برای گزینه‌های -a بعدی بازمی‌گرداند.

به عنوان مثال:

virt-cat --format=raw -a disk.img file

فرمت raw (بدون تشخیص خودکار) را برای disk.img اجبار می‌کند.

virt-cat --format=raw -a disk.img --format -a another.img file

فرمت raw (بدون تشخیص خودکار) را برای disk.img اجبار کرده و برای another.img به حالت تشخیص خودکار بازمی‌گردد.

اگر ایمیج‌های دیسک مهمان با فرمت raw و غیرقابل‌اعتماد دارید، باید از این گزینه برای تعیین فرمت دیسک استفاده کنید. این کار از یک مشکل امنیتی احتمالی با مهمان‌های مخرب جلوگیری می‌کند (CVE-2010-3851).

تعیین یک کلید برای LUKS، جهت بازگشایی خودکار دستگاه LUKS هنگام استفاده از بازرسی (inspection).
عبارت "NAME" نام دستگاه در libguestfs است (مانند "/dev/sda1"). شناسه "UUID" شناسه یکتای دستگاه است. "all" به معنای امتحان کردن کلید روی تمام دستگاه‌های رمزگذاری‌شده است.

از "KEY_STRING" مشخص‌شده به عنوان گذرواژه استفاده کنید.

خواندن گذرواژه از FILENAME.
تلاش برای بازگشایی قفل دستگاه بدون گذرواژه از طریق Clevis روی شبکه. لطفاً برای اطلاعات بیشتر درباره رمزگذاری دیسک متصل به شبکه (NBDE) به بخش "ENCRYPTED DISKS" در guestfs(3) مراجعه کنید.

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

خواندن پارامترهای کلید یا گذرواژه از ورودی استاندارد (stdin). حالت پیش‌فرض تلاش برای خواندن گذرواژه‌ها از کاربر با باز کردن /dev/tty است.

اگر چندین دستگاه رمزگذاری‌شده وجود دارد، ممکن است لازم باشد چندین کلید را در stdin وارد کنید، هر کلید در یک سطر.

مونت کردن پارتیشن یا حجم منطقی نام‌برده‌شده روی نقطه مونت مشخص‌شده.

اگر نقطه مونت حذف شود، مقدار پیش‌فرض آن / خواهد بود.

مشخص کردن هر نقطه مونت، بازرسی سیستم مهمان و مونت شدن خودکار ریشه و تمام نقاط مونت آن را غیرفعال می‌کند؛ بنابراین مطمئن شوید تمام نقاط مونت مورد نیاز برای کار با نام فایل‌های داده‌شده به عنوان آرگومان را مونت کرده‌اید.

اگر نمی‌دانید یک ایمیج دیسک شامل چه فایل‌سیستم‌هایی است، می‌توانید guestfish را بدون این گزینه اجرا کرده و سپس پارتیشن‌ها، فایل‌سیستم‌ها و LVهای موجود را لیست کنید (دستورات "list-partitions"، "list-filesystems" و "lvs" را ببینید)، یا می‌توانید از برنامه virt-filesystems(1) استفاده کنید.

بخش سوم (و به ندرت استفاده‌شده) از پارامتر mount فهرستی از گزینه‌های مونت است که برای مونت کردن فایل‌سیستم زیربنایی استفاده می‌شود. اگر این مقدار داده نشود، گزینه‌های مونت یا یک رشته خالی خواهند بود یا "ro" (دومی در صورتی که فلگ --ro استفاده شده باشد). با تعیین گزینه‌های مونت، این انتخاب پیش‌فرض را لغو می‌کنید. احتمالاً تنها زمانی که از این مورد استفاده می‌کنید، برای فعال‌سازی ACLها و/یا ویژگی‌های گسترش‌یافته (extended attributes) است، در صورتی که فایل‌سیستم از آن‌ها پشتیبانی کند:

-m /dev/sda1:/:acl,user_xattr

استفاده از این فلگ معادل استفاده از دستور "mount-options" است.

بخش چهارم پارامتر، درایور فایل‌سیستم مورد استفاده است، مانند "ext3" یا "ntfs". این مورد به ندرت مورد نیاز است، اما اگر چندین درایور برای یک فایل‌سیستم معتبر باشند (مانند "ext2" و "ext3")، یا اگر libguestfs یک فایل‌سیستم را به اشتباه تشخیص دهد، می‌تواند مفید باشد.

فعال‌سازی پیام‌های با جزئیات کامل برای اشکال‌زدایی.
نمایش شماره نسخه و خروج.
فعال‌سازی ردیابی (tracing) فراخوانی‌های API در libguestfs.

نسخه‌های قبلی virt-cat به شما اجازه می‌دادند یکی از این دو حالت را بنویسید:

virt-cat disk.img [disk.img ...] file

یا

virt-cat guestname file

در حالی که در این نسخه باید به ترتیب از -a یا -d استفاده کنید تا از حالت گیج‌کننده‌ای که ممکن است یک ایمیج دیسک همنام یک ماشین مهمان باشد جلوگیری شود.

برای سازگاری، سبک قدیمی همچنان پشتیبانی می‌شود.

برای فهرست کردن فایل‌های لاگ از سیستم‌های مهمان، ابزار مرتبط virt-log(1) را ببینید. این ابزار فرمت‌های باینری لاگ مانند ژورنال systemd را درک می‌کند.

برای دنبال کردن (tail) فایل‌های لاگ متنی، از virt-tail(1) استفاده کنید.

ابزار "virt-cat" توانایی محدودی برای درک حروف درایو و مسیرهای ویندوز دارد (مانند E:\foo\bar.txt).

تنها و تنها در صورتی که سیستم مهمان در حال اجرای ویندوز باشد:

  • پیشوندهای حرف درایو مانند "C:" در برابر رجیستری ویندوز به فایل‌سیستم صحیح نگاشت می‌شوند.
  • هر نویسه بک‌اسلش ("\") در مسیر با اسلش جایگزین می‌شود تا libguestfs بتواند آن را پردازش کند.
  • مسیر بدون حساسیت به حروف کوچک و بزرگ برای یافتن فایلی که باید نمایش داده شود بررسی و تعیین می‌شود.

چندین کاستی شناخته‌شده وجود دارد:

  • برخی پیوندهای نمادین (symbolic links) در NTFS ممکن است به درستی دنبال نشوند.
  • نقاط اتصال (junction points) در NTFS که از چندین فایل‌سیستم عبور می‌کنند دنبال نمی‌شوند.

ابزار guestfish(1) یک ابزار قدرتمندتر و سطح پایین‌تر است که می‌توانید در زمانی که "virt-cat" کار نمی‌کند از آن استفاده کنید.

استفاده از "virt-cat" تقریباً معادل اجرای دستور زیر است:

guestfish --ro -i -d domname download file -

که در آن "domname" نام مهمان libvirt، و "file" مسیر کامل فایل است. به علامت "-" در انتها توجه کنید (به معنای "خروجی در stdout").

دستور بالا از ویژگی بازرسی مهمان libguestfs استفاده می‌کند و بنابراین روی مهمان‌هایی که libguestfs قادر به بازرسی آن‌ها نیست، یا مواردی مانند ایمیج‌های دیسک دلخواه که شامل سیستم مهمان نیستند کار نمی‌کند. برای نمایش مستقیم یک فایل از یک ایمیج دیسک، از دستور زیر استفاده کنید:

guestfish --ro -a disk.img -m /dev/sda1 download file -

که در آن disk.img ایمیج دیسک، /dev/sda1 فایل‌سیستم درون ایمیج دیسک، و "file" مسیر کامل فایل است.

این برنامه در صورت موفقیت مقدار 0 و در صورت بروز خطا مقداری غیر از صفر را برمی‌گرداند.

guestfs(3), guestfish(1), virt-copy-out(1), virt-edit(1), virt-log(1), virt-tail(1), virt-tar-out(1), http://libguestfs.org

Richard W.M. Jones http://people.redhat.com/~rjones

Copyright (C) 2010-2025 Red Hat Inc.

این برنامه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط «مجوز عمومی همگانی گنو» (GNU General Public License) که توسط «بنیاد نرم‌افزارهای آزاد» منتشر شده است؛ چه نسخه ۲ مجوز و چه (به انتخاب خودتان) هر نسخه بعدی دیگری، بازتوزیع کرده یا تغییر دهید.

این برنامه به این امید توزیع شده است که مفید واقع شود، اما بدون هیچ‌گونه ضمانتی؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به «مجوز عمومی همگانی گنو» مراجعه کنید.

شما باید همراه با این برنامه یک نسخه از «مجوز عمومی همگانی گنو» را دریافت کرده باشید؛ در غیر این صورت، به آدرس زیر مکاتبه کنید: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

برای دریافت فهرست اشکالات مربوط به 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