لینوکس ۳۰۵؛ شب ۲۷: خواندن image با guestfish و guestmount
فهرست نوشته
برای دیدن فایل guest لازم نیست disk آن را در kernel میزبان mount کنیم. امشب libguestfs را روی copy سرد با دسترسی فقطخواندنی به کار میبریم.
این جلسه بخشی از دورهٔ لینوکس ۳۰۵ در ۶۰ شب است.
جایگاه در دوره: هدفهای 351.5 آزمون 305-300.
محیط: COLD_IMAGE و libguestfs-tools؛ image فعال را حتی برای تحلیل آفلاین انتخاب نکن. artifact ناشناس همچنان غیرقابل اعتماد است و appliance parserها باید patched باشند.
virt-filesystems -a "$COLD_IMAGE" --all --long -h
virt-inspector -a "$COLD_IMAGE"
virt-cat -a "$COLD_IMAGE" /etc/os-release
virt-df -a "$COLD_IMAGE" -h
guestfish --ro -a "$COLD_IMAGE" -i cat /etc/hostname
-i از inspection برای mount مناسب filesystemهای guest استفاده میکند. اگر image نصب کامل/قابل تشخیص نیست، explicit launch/list-filesystems و mount-ro لازم است؛ نبودن inspection نتیجهٔ حذف داده نیست.
mount کاربری محدود#
mkdir -p ~/lpic305/mnt
guestmount --ro -a "$COLD_IMAGE" -i ~/lpic305/mnt
cat ~/lpic305/mnt/etc/os-release
guestunmount ~/lpic305/mnt
نام اجرایی رایج guestunmount است؛ صورت guestumount در بعضی فهرستهای واژگان را با ابزار نصبشده تطبیق بده. هنگام mount، فرایندهای دیگری ممکن است directory را busy نگه دارند؛ پیش از حذف image، خروج کامل mount را تأیید کن.
virt-copy-out برای کپی فایل از copy سرد و virt-copy-in برای تغییر copy writable خاموش هستند. virt-diff تفاوت دو image و virt-rescue محیط نجات تعاملی میدهند؛ هیچکدام تضمین پاک بودن بدافزار یا اجازهٔ اجرا کردن binary guest روی host نیستند.
آزمون: hostname/marker با guest روشن قبلی سازگار باشد؛ write در mount ro باید رد شود. فایل خصوصی guest را در evidence عمومی نگذار.
بازگشت: guestunmount را کامل کن؛ source سرد تغییر نکرده است. برای تمرین write، copy جدید جدا بساز و فقط روی آن کار کن.
منبع: guestfish ، guestmount ، ابزارهای libguestfs .