ภาษาอังกฤษภาษาฝรั่งเศสสเปน

Ad


ไอคอน Fav ของ OnWorks

guestfs-faq - ออนไลน์ในคลาวด์

เรียกใช้ guestfs-faq ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง guestfs-faq ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


guestfs-faq - libguestfs คำถามที่พบบ่อย (FAQ)

เกี่ยวกับ(ABOUT) LIBGUESTFS


อะไร is libguestfs?
libguestfs เป็นวิธีสร้าง เข้าถึง และแก้ไขภาพดิสก์ คุณสามารถดูภายในดิสก์
รูปภาพ แก้ไขไฟล์ที่มีอยู่ สร้างจากศูนย์ ปรับขนาดและอื่น ๆ
มากกว่า. มีประโยชน์อย่างยิ่งจากสคริปต์และโปรแกรม และจากบรรทัดคำสั่ง

libguestfs เป็นไลบรารี C (ด้วยเหตุนี้ "lib-") และชุดเครื่องมือที่สร้างขึ้นบนไลบรารีนี้ และ
การผูกมัดสำหรับภาษาโปรแกรมทั่วไปหลายๆ ภาษา

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่ libguestfs สามารถทำได้ อ่านบทนำในโฮมเพจ
(http://libguestfs.org).

อะไร เป็น คุณธรรม เครื่องมือ?
เครื่องมือ Virt (เว็บไซต์: http://virt-tools.org) เป็นทั้งชุดของการจัดการเวอร์ชวลไลเซชัน
เครื่องมือที่มุ่งเป้าไปที่ผู้ดูแลระบบ บางคนมาจาก libguestfs บางคนมาจาก
libvirt และอื่นๆ อีกมากมายจากโครงการโอเพ่นซอร์สอื่นๆ ดังนั้น virt tools จึงเป็น superset ของ
libguestfs อย่างไรก็ตาม libguestfs มาพร้อมกับเครื่องมือที่สำคัญมากมาย ดู
http://libguestfs.org สำหรับรายชื่อเต็ม

ไม่ libguestfs จำเป็นต้อง { libvirt / KVM / สีแดง หมวก / Fedora }?
ไม่มี!

libvirt ไม่ใช่ข้อกำหนดสำหรับ libguestfs

libguestfs ทำงานได้กับอิมเมจของดิสก์ รวมถึงอิมเมจที่สร้างใน VMware, KVM, qemu
VirtualBox, Xen และไฮเปอร์ไวเซอร์อื่น ๆ อีกมากมายและที่คุณสร้างขึ้นตั้งแต่เริ่มต้น

ผู้สนับสนุนเร้ดแฮท (เช่น เป็นผู้จ่าย) การพัฒนา libguestfs และ open อื่นๆ อีกจำนวนมาก
โครงการต้นทาง แต่คุณสามารถเรียกใช้ libguestfs และเครื่องมือ virt บน Linux . ต่างๆ ได้มากมาย
distros และ Mac OS X เราพยายามอย่างเต็มที่เพื่อรองรับ Linux distros ทั้งหมดในระดับเฟิร์สคลาส
พลเมือง เครื่องมือ virt บางตัวถูกย้ายไปยัง Windows

สรุป ความน่าเชื่อถือของ Olymp Trade? ทำ libguestfs เปรียบเทียบ ไปยัง อื่น ๆ เครื่องมือ?
เมื่อเทียบกับ kpartx
Libguestfs ใช้แนวทางที่แตกต่างจาก kpartx kpartx ต้องการรูทและเมานต์
ระบบไฟล์บนเคอร์เนลโฮสต์ (ซึ่งอาจไม่ปลอดภัย - ดู guestfs-ความปลอดภัย(พ.ศ. 1)).
Libguestfs แยกเคอร์เนลโฮสต์ของคุณจากแขก มีความยืดหยุ่นมากขึ้น เขียนสคริปต์ได้
รองรับ LVM ไม่ต้องการรูท แยกออกจากกระบวนการอื่น และล้างข้อมูล
หลังจากที่ตัวเอง Libguestfs เป็นมากกว่าการเข้าถึงไฟล์เพราะคุณสามารถใช้เพื่อ
สร้างภาพตั้งแต่เริ่มต้น

เมื่อเทียบกับ vdฟิวส์
vdfuse เหมือนกับ kpartx แต่สำหรับอิมเมจ VirtualBox ดูการเปรียบเทียบ kpartx ด้านบน
คุณสามารถใช้ libguestfs กับไฟล์พาร์ติชั่นที่เปิดเผยโดย vdfuse ได้ แม้ว่าจะไม่ใช่ก็ตาม
จำเป็นเนื่องจาก libguestfs สามารถเข้าถึงอิมเมจ VirtualBox ได้โดยตรง

เมื่อเทียบกับ qemu-nbd
NBD (Network Block Device) เป็นโปรโตคอลสำหรับส่งออกอุปกรณ์บล็อกผ่านเครือข่าย
qemu-nbd เป็นเซิร์ฟเวอร์ NBD ที่สามารถจัดการรูปแบบดิสก์ใด ๆ ที่ qemu รองรับ (เช่น raw,
qcow2). คุณสามารถใช้ libguestfs และ qemu-nbd หรือ nbdkit ร่วมกันเพื่อเข้าถึงบล็อก
อุปกรณ์บนเครือข่าย เช่น "guestfish -a nbd://remote"

เมื่อเทียบกับ การติด ระบบไฟล์ in เจ้าภาพ
การติดตั้งระบบไฟล์ของแขกในโฮสต์นั้นไม่ปลอดภัยและควรหลีกเลี่ยงโดยสิ้นเชิง
สำหรับแขกที่ไม่น่าเชื่อถือ ใช้ libguestfs เพื่อให้ชั้นของการป้องกัน
การใช้ประโยชน์จากระบบไฟล์ ดูสิ่งนี้ด้วย แขกรับเชิญ(1)

เมื่อเทียบกับ แยก
Libguestfs รองรับ LVM Libguestfs ใช้ parted และให้คุณสมบัติ parted ส่วนใหญ่
ผ่าน libguestfs API

การเดินทาง ช่วยด้วย AND รายงาน ข้อบกพร่อง


สรุป ความน่าเชื่อถือของ Olymp Trade? do I ทราบ อะไร รุ่น ฉัน โดยใช้?
วิธีที่ง่ายที่สุดคือ:

เกสต์ฟิช -- เวอร์ชั่น

การพัฒนา Libguestfs เกิดขึ้นตามสาขาที่ไม่เสถียรและเราสร้าง a . เป็นระยะ
สาขาเสถียรที่เรา backport แพทช์เสถียรไป หากต้องการข้อมูลเพิ่มเติม โปรดอ่าน "LIBGUESTFS
หมายเลขรุ่น" ใน แขก(3)

สรุป ความน่าเชื่อถือของ Olymp Trade? สามารถ I ได้รับ ความช่วยเหลือหรือไม่
อะไร ทางไปรษณีย์ รายการ or พูดคุย ห้องพัก เป็น ว่าง?
หากคุณเป็นลูกค้า Red Hat ที่ใช้ Red Hat Enterprise Linux โปรดติดต่อ
การสนับสนุนเรดแฮท: http://redhat.com/support

มีรายชื่อผู้รับจดหมายสำหรับการพัฒนาเป็นหลัก แต่ผู้ใช้ก็ยินดีที่จะถาม
คำถามเกี่ยวกับ libguestfs และเครื่องมือ virt:
https://www.redhat.com/mailman/listinfo/libguestfs

คุณสามารถพูดคุยกับเราทางช่อง IRC "#libguestfs" บน FreeNode เราไม่ได้เสมอไป
ดังนั้นโปรดอยู่ในช่องหลังจากถามคำถามของคุณแล้วจะมีคนกลับมา
กับคุณ

สำหรับเครื่องมือ virt อื่น ๆ (ไม่ใช่เครื่องมือที่มาพร้อมกับ libguestfs) มีเครื่องมือ virt ทั่วไป
รายชื่อผู้รับจดหมาย: https://www.redhat.com/mailman/listinfo/virt-tools-list

สรุป ความน่าเชื่อถือของ Olymp Trade? do I รายงาน ข้อบกพร่อง?
โปรดใช้ลิงก์ต่อไปนี้เพื่อป้อนข้อบกพร่องใน Bugzilla:

https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools

ใส่รายละเอียดให้มากที่สุดและวิธีทำให้เกิดปัญหา

รวมผลลัพธ์ทั้งหมดของ libguestfs-เครื่องมือทดสอบ(1)

ทั่วไป ปัญหา


ดูเพิ่มเติม "LIBGUESTFS GOTCHAS" ใน แขก(3) สำหรับ "gotchas" บางส่วนด้วยการใช้ libguestfs
API

"ทำได้ ไม่ จัดสรร พลวัต นักแปล กันชน"
ข้อผิดพลาดที่คลุมเครือนี้อันที่จริงแล้วเป็นความล้มเหลวของ SELinux คุณต้องเปิดใช้งานสิ่งต่อไปนี้
บูลีน SELinux:

setsebool -P virt_use_execmem=เปิด

สำหรับข้อมูลเพิ่มเติม โปรดดูที่ https://bugzilla.redhat.com/show_bug.cgi?id=806106

"เด็ก กระบวนการ เสียชีวิต โดยไม่คาดคิด"
[ข้อความแสดงข้อผิดพลาดนี้ถูกเปลี่ยนใน libguestfs 1.21.18 เพื่ออธิบายเพิ่มเติม]

ข้อผิดพลาดนี้บ่งชี้ว่า qemu ล้มเหลวหรือเคอร์เนลของโฮสต์ไม่สามารถบู๊ตได้ ที่จะได้รับต่อไป
ข้อมูลเกี่ยวกับความล้มเหลว คุณต้องเรียกใช้:

libguestfs-เครื่องมือทดสอบ

หากใช้แล้วคุณยังไม่เข้าใจความล้มเหลว ติดต่อเรา (ดูก่อนหน้า
มาตรา).

libguestfs: ข้อผิดพลาด: ไม่ได้ พบ ใด เหมาะสม libguestfs ซูเปอร์มิน การแก้ไข or แบบเก่า เครื่องใช้
on LIBGUESTFS_PATH
febootstrap-supermin-ผู้ช่วย: ต่อ2: ผู้ปกครอง ไดเรกทอรี ไม่ พบ
ผู้ช่วย supermin: ต่อ2: ผู้ปกครอง ไดเรกทอรี ไม่ พบ
[ปัญหานี้ได้รับการแก้ไขอย่างถาวรใน libguestfs ≥ 1.26]

หากคุณพบข้อผิดพลาดใด ๆ เหล่านี้ใน Debian/Ubuntu คุณต้องเรียกใช้คำสั่งต่อไปนี้:

sudo update-guestfs-appliance

"การอนุญาต ปฏิเสธ" เมื่อ วิ่ง libguestfs as ราก
คุณได้รับข้อผิดพลาดการปฏิเสธการอนุญาตเมื่อเปิดอิมเมจดิสก์ แม้ว่าคุณจะกำลังทำงานอยู่
libguestfs เป็นรูท

สิ่งนี้เกิดจาก libvirt และจะเกิดขึ้นเฉพาะเมื่อใช้แบ็กเอนด์ libvirt เท่านั้น เมื่อวิ่ง
ในฐานะ root libvirt ตัดสินใจที่จะเรียกใช้อุปกรณ์ qemu ในฐานะผู้ใช้ "qemu.qemu" น่าเสียดาย
ซึ่งมักจะหมายความว่า qemu ไม่สามารถเปิดอิมเมจของดิสก์ โดยเฉพาะอย่างยิ่งถ้าอิมเมจของดิสก์เหล่านั้นเป็น
เป็นเจ้าของโดย root หรือมีอยู่ในไดเร็กทอรีที่ต้องการการเข้าถึงรูท

มีข้อบกพร่องที่เปิดกับ libvirt เพื่อแก้ไขปัญหานี้:
https://bugzilla.redhat.com/show_bug.cgi?id=1045069

คุณสามารถแก้ไขปัญหานี้ได้โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้:

· เปลี่ยนไปใช้แบ็กเอนด์โดยตรง:

ส่งออก LIBGUESTFS_BACKEND=direct

·อย่าเรียกใช้ libguestfs เป็นรูท

· Chmod ภาพดิสก์และไดเร็กทอรีหลักเพื่อให้ผู้ใช้ qemu สามารถเข้าถึงได้

· (น่ารังเกียจ) แก้ไข /etc/libvirt/qemu.conf และเปลี่ยนการตั้งค่า "ผู้ใช้"

เอก: /ในนั้น: การอนุญาต ปฏิเสธ
หมายเหตุ หากข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณใช้แพ็คเกจ distro ของ libguestfs (เช่น from
Fedora, Debian และอื่น ๆ ) จากนั้นยื่นข้อบกพร่องกับ distro นี่ไม่ใช่ข้อผิดพลาดที่
ผู้ใช้ทั่วไปควรดูว่าได้เตรียมแพ็คเกจ distro ไว้อย่างถูกต้องหรือไม่

ข้อผิดพลาดนี้เกิดขึ้นระหว่างขั้นตอนการบู๊ต supermin ในการสตาร์ทเครื่อง:

supermin: ติดตั้งรูทใหม่บน /ราก
ซุปเปอร์มิน: โครต
excl: /init: การอนุญาตถูกปฏิเสธ
supermin: ดีบัก: รายชื่อไดเรกทอรี /
[...ตามด้วยเอาต์พุตการดีบักจำนวนมาก...]

นี่เป็นข้อผิดพลาดที่ซับซ้อนที่เกี่ยวข้องกับ ซูเปอร์มิน(1) เครื่องใช้ อุปกรณ์ถูกสร้างขึ้น
โดยการคัดลอกไฟล์เช่น / bin / bash และห้องสมุดมากมายจากโฮสต์ ไฟล์ "hostfiles"
แสดงรายการไฟล์ที่ควรคัดลอกจากโฮสต์ไปยังอุปกรณ์ ถ้าบางไฟล์
ไม่มีอยู่ในโฮสต์ก็ถือว่าพลาด แต่ถ้าไฟล์เหล่านี้จำเป็นตามลำดับ
เพื่อ (เช่น) วิ่ง / bin / bash แล้วคุณจะเห็นข้อผิดพลาดข้างต้น

การวินิจฉัยปัญหาเกี่ยวข้องกับการศึกษาห้องสมุดที่ / bin / bash, เช่น:

แอลดีดี / bin / bash

เปรียบเทียบกับ "hostfiles" กับไฟล์ที่มีอยู่จริงในระบบไฟล์โฮสต์
และพิมพ์เอาต์พุตการดีบักในข้อความแสดงข้อผิดพลาด เมื่อคุณหาไฟล์ได้แล้ว
หายไป ให้ติดตั้งไฟล์นั้นโดยใช้ตัวจัดการแพ็คเกจแล้วลองอีกครั้ง

คุณควรตรวจสอบด้วยว่าไฟล์เช่น /ในนั้น และ / bin / bash (ในเครื่อง) คือ
ปฏิบัติการได้ เอาต์พุตการดีบักแสดงโหมดไฟล์

กำลังดาวน์โหลด การติดตั้ง กำลังรวบรวม LIBGUESTFS


ที่ไหน สามารถ I ได้รับ ล่าสุด ไบนารี for ... ?
เฟดอรา ≥ 11
วิธีใช้:

ยำติดตั้ง '*guestf*'

สำหรับรุ่นล่าสุด โปรดดู:
http://koji.fedoraproject.org/koji/packageinfo?แพ็คเกจไอดี=8391

Red Hat Enterprise Linux
RHEL 5
รุ่นที่จัดส่งอย่างเป็นทางการ RHEL 5 นั้นเก่ามากและไม่ควรใช้ยกเว้น
ร่วมกับ virt-v2v. ใช้แพ็คเกจ libguestfs 1.20 ล่าสุดใน EPEL
5: https://fedoraproject.org/wiki/EPEL

RHEL 6
RHEL 7
เป็นส่วนหนึ่งของการติดตั้งเริ่มต้น ใน RHEL 6 และ 7 (เท่านั้น) คุณต้องติดตั้ง
"libguestfs-winsupport" เพื่อรับการสนับสนุนแขกของ Windows

Debian และ Ubuntu
สำหรับ libguestfs < 1.26 หลังจากติดตั้ง libguestfs คุณต้องทำ:

sudo update-guestfs-appliance

(สคริปต์นี้ถูกลบบน Debian/Ubuntu ด้วย libguestfs ≥ 1.26 และแทนที่
อุปกรณ์สร้างขึ้นตามความต้องการ)

บน Ubuntu เท่านั้น:

sudo chmod 0644 /บูต/vmlinuz*

คุณอาจต้องเพิ่มตัวเองในกลุ่ม "kvm":

sudo usermod -a -G kvm เข้าสู่ระบบของคุณ

เดเบียนบีบ (6)
Hilko Bengen ได้สร้าง libguestfs ใน backport แบบบีบอัด:
http://packages.debian.org/search?keywords=guestfs&searchon=names§ion=all&suite=squeeze-backports

Debian Wheezy และใหม่กว่า (7+)
Hilko Bengen รองรับ libguestfs บน Debian แพ็คเกจ Debian อย่างเป็นทางการคือ
ที่มี: http://packages.debian.org/search?คำสำคัญ=libguestfs

อูบุนตู
เราไม่มีผู้ดูแล Ubuntu เต็มเวลาและแพ็คเกจที่จัดทำโดย
Canonical (ซึ่งอยู่นอกเหนือการควบคุมของเรา) บางครั้งใช้งานไม่ได้

Canonical ตัดสินใจเปลี่ยนการอนุญาตบนเคอร์เนลเพื่อไม่ให้เป็น
อ่านได้ยกเว้นโดยรูท นี่มันโง่จริงๆ แต่พวกเขาจะไม่เปลี่ยนมัน
(https://bugs.launchpad.net/ubuntu/+source/linux/+bug/759725) ดังนั้นผู้ใช้ทุกคน
ควรทำสิ่งนี้:

sudo chmod 0644 /บูต/vmlinuz*

อูบุนตู 12.04
libguestfs ใน Ubuntu เวอร์ชันนี้ใช้งานได้ แต่คุณต้องอัปเดต febootstrap
และ seabios เป็นเวอร์ชันล่าสุด

คุณต้องใช้ febootstrap ≥ 3.14-2 จาก:
http://packages.ubuntu.com/precise/febootstrap

หลังจากติดตั้งหรืออัปเดต febootstrap แล้ว ให้สร้างอุปกรณ์ใหม่:

sudo update-guestfs-appliance

คุณต้องใช้ seabios ≥ 0.6.2-0ubuntu2.1 หรือ ≥ 0.6.2-0ubuntu3 จาก:
http://packages.ubuntu.com/precise-updates/seabios or
http://packages.ubuntu.com/quantal/seabios

นอกจากนี้คุณต้องทำ (ดูด้านบน):

sudo chmod 0644 /บูต/vmlinuz*

Gentoo
Libguestfs ถูกเพิ่มใน Gentoo ในปี 2012-07 โดย Andreis Vinogradovs (libguestfs) และ
Maxim Koltsov (ส่วนใหญ่เป็นกลุ่มไฮฟ์) ทำ:

โผล่ออกมา libguestfs

สวิตเซอร์แลนด์
Libguestfs ถูกเพิ่มใน SuSE ในปี 2012 โดย Olaf Hering

อาร์คลินุกซ์
Libguestfs ถูกเพิ่มใน AUR ในปี 2010

ลินุกซ์ distro อื่น ๆ
รวบรวมจากแหล่งที่มา (ส่วนถัดไป)

distro อื่น ๆ ที่ไม่ใช่ Linux
คุณจะต้องรวบรวมจากแหล่งที่มาและย้ายข้อมูล

สรุป ความน่าเชื่อถือของ Olymp Trade? สามารถ I รวบรวม และ ติดตั้ง libguestfs ราคาเริ่มต้นที่ แหล่งที่มา?
คุณสามารถคอมไพล์ libguestfs จาก git หรือ tarball ต้นทางได้ อ่านไฟล์ README ก่อน
เริ่มต้น

Git: https://github.com/libguestfs/libguestfs tarballs ที่มา:
http://libguestfs.org/download

อย่าเรียกใช้ "ทำการติดตั้ง"! ใช้ "./ วิ่ง" สคริปต์แทน (ดู README)

สรุป ความน่าเชื่อถือของ Olymp Trade? สามารถ I รวบรวม และ ติดตั้ง libguestfs if my distro ไม่ มี ใหม่ พอ
qemu/supermin/เคอร์เนล?
Libguestfs ต้องการ supermin 5 หาก supermin 5 ไม่ได้ถูกย้ายไปยัง distro ของคุณ ให้ดู
คำถามด้านล่าง

ขั้นแรกให้คอมไพล์ qemu, supermin และ/หรือเคอร์เนลจากแหล่งที่มา คุณทำ ไม่ ต้อง "ทำให้
ติดตั้ง" พวกเขา

ในไดเร็กทอรีต้นทาง libguestfs ให้สร้างสองไฟล์ "localconfigure" ควรมี:

แหล่งที่มา localenv
#ส่งออกเส้นทาง=/tmp/qemu/x86_64-softmmu:$PATH
./autogen.sh --คำนำหน้า / usr "$@"

ทำให้ "localconfigure" ปฏิบัติการได้

"localenv" ควรมี:

#ส่งออก SUPERMIN=/tmp/supermin/src/supermin
#ส่งออก LIBGUESTFS_HV=/tmp/qemu/x86_64-softmmu/qemu-system-x86_64
#export SUPERMIN_KERNEL=/tmp/linux/arch/x86/boot/bzImage
#ส่งออก SUPERMIN_KERNEL_VERSION=4.XX.0
#ส่งออก SUPERMIN_MODULES=/tmp/lib/modules/4.XX.0

ยกเลิกความคิดเห็นและปรับบรรทัดเหล่านี้ตามความจำเป็นเพื่อใช้โปรแกรมสำรองที่คุณมี
รวบรวม

ใช้ "./localconfigure" แทน "./configure" แต่ไม่เช่นนั้นคุณจะคอมไพล์ libguestfs เป็น
ตามปกติ.

อย่าเรียกใช้ "ทำการติดตั้ง"! ใช้ "./ วิ่ง" สคริปต์แทน (ดู README)

สรุป ความน่าเชื่อถือของ Olymp Trade? สามารถ I รวบรวม และ ติดตั้ง libguestfs ไม่มี ซูเปอร์มิน?
หาก supermin 5 รองรับ distro ของคุณ แต่คุณไม่มี supermin ใหม่เพียงพอ
ติดตั้งแล้วดูคำถามก่อนหน้า

หาก supermin 5 ไม่รองรับ distro ของคุณเลย คุณจะต้องใช้คำสั่ง "fixed
วิธีอุปกรณ์" ที่คุณใช้อุปกรณ์ไบนารีที่คอมไพล์ล่วงหน้า เพื่อสร้าง libguestfs
หากไม่มี supermin คุณต้องส่ง "--disable-appliance --disable-daemon" ไปยังทั้ง
./autogen.sh or . / กำหนดค่า (ขึ้นอยู่กับว่าคุณกำลังสร้างตามลำดับจาก git หรือ
จากทาร์บอลล์) จากนั้นเมื่อใช้ libguestfs คุณ ต้อง ตั้งค่า "LIBGUESTFS_PATH"
ตัวแปรสภาพแวดล้อมไปยังไดเร็กทอรีของอุปกรณ์ที่คอมไพล์ล่วงหน้า ตามที่อธิบายไว้ใน
"FIXED APPLIANCE" ใน แขก(3)

สำหรับอุปกรณ์ที่คอมไพล์แล้ว โปรดดูเพิ่มเติมที่: http://libguestfs.org/download/binaries/appliance/.

ยินดีต้อนรับแพตช์เพื่อพอร์ต supermin ไปยัง Linux distros เพิ่มเติม

สรุป ความน่าเชื่อถือของ Olymp Trade? สามารถ I เพิ่ม สนับสนุน for สเวิร์ต?
หมายเหตุ for เฟโดร่า/เรเอล ผู้ใช้: การกำหนดค่านี้เป็นค่าเริ่มต้นที่เริ่มต้นด้วย Fedora 18 และ
RHEL 7. หากคุณพบปัญหาใด ๆ โปรดแจ้งให้เราทราบหรือแจ้งข้อบกพร่อง

SVirt จัดเตรียมอุปกรณ์ชุบแข็งโดยใช้ SELinux ทำให้ยากสำหรับดิสก์อันธพาล
รูปภาพเพื่อ "หลบหนี" จากการกักขัง libguestfs และทำให้โฮสต์เสียหาย (พูดได้ถูกต้อง
ว่าแม้ใน libguestfs มาตรฐานจะยาก แต่ sVirt ให้ชั้นพิเศษของ
การป้องกันสำหรับโฮสต์และที่สำคัญกว่านั้นคือปกป้องเครื่องเสมือนบนโฮสต์เดียวกัน
จากกันและกัน).

ขณะนี้ในการเปิดใช้งาน sVirt คุณจะต้องใช้ libvirt ≥ 0.10.2 (แนะนำให้ใช้ 1.0 หรือใหม่กว่า)
libguestfs ≥ 1.20 และนโยบาย SELinux จาก Fedora ล่าสุด ถ้าคุณไม่วิ่ง
Fedora 18+ คุณจะต้องทำการเปลี่ยนแปลงนโยบาย SELinux ของคุณ - ติดต่อเราได้ที่
รายชื่อผู้รับจดหมาย

เมื่อคุณมีข้อกำหนดแล้ว ให้ทำดังนี้

./configure --with-default-backend=libvirt # libguestfs >= 1.22
./configure --with-default-attach-method=libvirt # libguestfs <= 1.20
ทำ

ตั้งค่า SELinux เป็นโหมดบังคับใช้ และควรใช้ sVirt โดยอัตโนมัติ

คุณลักษณะทั้งหมดหรือเกือบทั้งหมดของ libguestfs ควรทำงานภายใต้ sVirt มีหนึ่งที่รู้จัก
ข้อบกพร่อง: virt-กู้ภัย(1) จะไม่ใช้ libvirt (เพราะฉะนั้น sVirt) แต่กลับไปใช้ direct
เปิดตัวคิวมู ดังนั้นคุณจะไม่ได้รับประโยชน์จากการป้องกัน sVirt เมื่อใช้
virt-กู้ภัย

คุณสามารถตรวจสอบว่ามีการใช้ sVirt หรือไม่โดยเปิดใช้งานการบันทึก libvirtd (ดู
/etc/libvirt/libvirtd.log) ฆ่าและรีสตาร์ท libvirtd และตรวจสอบไฟล์บันทึก
สำหรับข้อความ "การตั้งค่าบริบท SELinux บน ... "

ตามทฤษฎีแล้ว sVirt ควรสนับสนุน AppArmor แต่เรายังไม่ได้ลองใช้งาน มันเกือบจะ
แน่นอนว่าต้องมีการแพตช์ libvirt และเขียนนโยบาย AppArmor

ลิบเกสต์ มี a จริงๆ ยาว รายการ of การพึ่งพาอาศัยกัน!
ไลบรารีฐานไม่ได้ขึ้นอยู่กับอะไรมากนัก แต่มีสามสาเหตุของรายการยาว
ของการพึ่งพาอื่น ๆ :

1. Libguestfs จะต้องสามารถอ่านและแก้ไขรูปแบบดิสก์ต่างๆ ได้มากมาย ตัวอย่างเช่น,
การสนับสนุน XFS ต้องใช้เครื่องมือ XFS

2. มีการผูกภาษาสำหรับภาษาต่าง ๆ มากมาย ทั้งหมดต้องใช้ภาษาของตัวเอง
เครื่องมือในการพัฒนา การผูกภาษาทั้งหมด (ยกเว้น C) เป็นทางเลือก

3. มีคุณสมบัติห้องสมุดเสริมบางอย่างที่สามารถปิดใช้งานได้

เนื่องจาก libguestfs ≥ 1.26 จึงเป็นไปได้ที่จะแยกการขึ้นต่อกันของอุปกรณ์ (รายการที่ 1 ใน
รายการด้านบน) และมี (เช่น) "libguestfs-xfs" เป็นแพ็คเกจย่อยแยกต่างหากสำหรับ
กำลังประมวลผลอิมเมจดิสก์ XFS เราสนับสนุนให้ผู้ทำแพ็คเกจดาวน์สตรีมเริ่มแยกฐาน
libguestfs ลงในแพ็คเกจย่อยที่เล็กลง

ข้อผิดพลาด ในระหว่าง เปิดตัว on Fedora 18, RHEL 7
ใน Fedora ≥ 18 และ RHEL ≥ 7 libguestfs ใช้ libvirt เพื่อจัดการอุปกรณ์ ก่อนหน้านี้
(และต้นน้ำ) libguestfs รัน qemu โดยตรง:

┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────...
│ libguestfs │
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────...
│ แบ็กเอนด์โดยตรง │ แบ็กเอนด์ libvirt │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────...
↓↓
┌────────┐ ┌───────────┐
│ คิวมู │ │ libvirtd │
└────────┘ └───────────┘

┌───────┐
│ คิวมู │
└───────┘

ต้นน้ำ Fedora 18+
ไม่ใช่ Fedora RHEL 7+
ไม่ใช่ RHEL

แบ็กเอนด์ libvirt นั้นซับซ้อนกว่า รองรับ SELinux/sVirt (ดูด้านบน)
การเสียบปลั๊กร้อนและอื่น ๆ อย่างไรก็ตาม มันซับซ้อนกว่าและแข็งแกร่งน้อยกว่ามาก

หากคุณมีปัญหาสิทธิ์ในการใช้แบ็กเอนด์ libvirt คุณสามารถเปลี่ยนไปใช้ไดเร็กต์
แบ็กเอนด์โดยการตั้งค่าตัวแปรสภาพแวดล้อมนี้:

ส่งออก LIBGUESTFS_BACKEND=direct

ก่อนที่จะรันโปรแกรม libguestfs หรือเครื่องมือ virt ใดๆ

สรุป ความน่าเชื่อถือของ Olymp Trade? สามารถ I สลับ ไปยัง a การแก้ไข / ที่สร้างไว้ล่วงหน้า เครื่องใช้?
การดำเนินการนี้อาจปรับปรุงความเสถียรและประสิทธิภาพของ libguestfs บน Fedora และ RHEL

ทุกครั้งหลังจากติดตั้ง libguestfs ให้รันคำสั่งต่อไปนี้ในฐานะรูท:

mkdir -p /usr/local/lib/guestfs/appliance.mkdir
libguestfs-make-fixed-appliance /usr/local/lib/guestfs/appliance
ls -l /usr/local/lib/guestfs/appliance

ตอนนี้ให้ตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้ก่อนใช้ libguestfs หรือเครื่องมือ virt ใดๆ:

ส่งออก LIBGUESTFS_PATH=/usr/local/lib/guestfs/appliance

แน่นอน คุณสามารถเปลี่ยนเส้นทางไปยังไดเร็กทอรีใดก็ได้ที่คุณต้องการ คุณสามารถแบ่งปันอุปกรณ์
ในเครื่องที่มีสถาปัตยกรรมเดียวกัน (เช่น x86-64 ทั้งหมด) แต่โปรดทราบว่าlibvirt
จะป้องกันไม่ให้คุณแชร์อุปกรณ์ข้าม NFS เนื่องจากปัญหาการอนุญาต (so
เปลี่ยนไปใช้แบ็กเอนด์โดยตรงหรือไม่ใช้ NFS)

สรุป ความน่าเชื่อถือของ Olymp Trade? สามารถ I ความเร็ว up libguestfs สร้าง?
สิ่งที่สำคัญที่สุดคือการติดตั้งและกำหนดค่า Squid อย่างเหมาะสม
โปรดทราบว่าการกำหนดค่าเริ่มต้นที่มาพร้อมกับ Squid นั้นเป็นขยะ ดังนั้นการกำหนดค่าจึงเป็น
ไม่จำเป็น

จุดเริ่มต้นที่ดีในการกำหนดค่า Squid คือ:
https://fedoraproject.org/wiki/Extras/MockTricks#Using_Squid_to_Speed_Up_Mock_package_downloads

ตรวจสอบให้แน่ใจว่า Squid กำลังทำงาน และตัวแปรสภาพแวดล้อม $http_proxy และ $ftp_proxy
กำลังชี้ไปที่มัน

เมื่อ Squid ทำงานและกำหนดค่าอย่างถูกต้อง บิลด์อุปกรณ์ควรลดลงเหลือเพียงเล็กน้อย
นาที

สรุป ความน่าเชื่อถือของ Olymp Trade? สามารถ I ความเร็ว up libguestfs สร้าง (เดเบียน)?

Hilko Bengen แนะนำให้ใช้ "ประมาณ" ซึ่งเป็น Debian archive proxy
(http://packages.debian.org/approx). เครื่องมือนี้ได้รับการบันทึกไว้ใน Debian ใน ประมาณ(8)
หน้าคู่มือ

ความเร็ว, ดิสก์ SPACE ที่ใช้แล้ว BY LIBGUESTFS


หมายเหตุ ข้อมูลส่วนใหญ่ในส่วนนี้ได้ถูกย้าย: guestfs-การแสดง(1)

อัพโหลด or เขียน ดูเหมือน มาก ช้า.
หากดิสก์ต้นแบบไม่ได้รับการจัดสรรทั้งหมด (เช่น sparse raw หรือ qcow2) การเขียนก็สามารถทำได้
ช้าเพราะระบบปฏิบัติการโฮสต์ต้องจัดสรรดิสก์ราคาแพงในขณะที่คุณอยู่
การเขียน. วิธีแก้ไขคือใช้รูปแบบที่ได้รับการจัดสรรอย่างเต็มที่แทน กล่าวคือ ไม่เบาบางดิบหรือ
qcow2 พร้อมตัวเลือก "preallocation=metadata"

ลิบเกสต์ ใช้ เกินไป มาก ดิสก์ อวกาศ!
libguestfs แคชอุปกรณ์ขนาดใหญ่ใน:

/var/tmp/.guestfs-

หากกำหนดตัวแปรสภาพแวดล้อม "TMPDIR" แล้ว $TMPDIR/.guestfs- ถูกนำมาใช้
แทน.

การลบไดเร็กทอรีนี้ปลอดภัยเมื่อคุณไม่ได้ใช้ libguestfs

virt-กระจัดกระจาย ดูเหมือนว่า ไปยัง ทำ ภาพ ขึ้น ไปยัง เต็ม ขนาด of เสมือน ดิสก์
หากอินพุตไปที่ virt-กระจัดกระจาย(1) เป็น raw แล้วเอาท์พุตจะเบาบาง มั่นใจ
คุณกำลังวัดผลลัพธ์ด้วยเครื่องมือที่เข้าใจความกระจัดกระจาย เช่น "du -sh"
สามารถสร้างความแตกต่างอย่างมาก:

$ ls -lh ทดสอบ 1.img
-rw-rw-r--. 1 rjones rjones 100M 8 ส.ค. 08:08 test1.img
$ ดู -sh test1.img
3.6M ทดสอบ1.img

(เทียบขนาดที่เห็นชัด 100M เทียบกับขนาดจริง 3.6M)

หากทั้งหมดนี้ทำให้คุณสับสน ให้ใช้รูปแบบเอาต์พุตที่ไม่กระจายโดยการระบุ --แปลง
ตัวเลือก เช่น

virt-sparsify -- แปลง qcow2 disk.raw disk.qcow2

Why ไม่ virt-ปรับขนาด งาน on ดิสก์ ภาพ ในสถานที่?
การปรับขนาดภาพดิสก์นั้นยุ่งยากมาก โดยเฉพาะอย่างยิ่งการตรวจสอบให้แน่ใจว่าคุณจะไม่สูญเสียข้อมูลหรือ
ทำลาย bootloader วิธีการปัจจุบันสร้างดิสก์อิมเมจและสำเนาใหม่อย่างมีประสิทธิภาพ
data plus bootloader จากตัวเก่า มีอะไรผิดพลาดก็ไปได้ตลอด
กลับมาที่เดิม

หากเราต้องทำให้ virt-resize ทำงานแทนที่ จะต้องมีข้อจำกัด: for
ตัวอย่าง คุณจะไม่ได้รับอนุญาตให้ย้ายพาร์ติชั่นที่มีอยู่ (เพราะย้ายข้อมูลข้าม
ดิสก์เดียวกันมักจะทำให้ข้อมูลเสียหายในกรณีที่ไฟฟ้าขัดข้องหรือขัดข้อง)
และ LVM จะรองรับได้ยากมาก (เนื่องจากการทำแผนที่โดยพลการเกือบทั้งหมด
ระหว่างเนื้อหา LV และบล็อกดิสก์พื้นฐาน)

อีกวิธีหนึ่งที่เราพิจารณาแล้วคือการวางสแน็ปช็อตบนดิสก์อิมเมจดั้งเดิม ดังนั้น
ว่าข้อมูลเดิมไม่ถูกแตะต้องและบันทึกเฉพาะความแตกต่างในสแนปชอตเท่านั้น
คุณสามารถทำได้วันนี้โดยใช้ "qemu-img create" + "virt-resize" แต่ปัจจุบัน qemu ไม่ใช่
ฉลาดพอที่จะรับรู้เมื่อบล็อกเดียวกันถูกเขียนกลับไปที่สแนปชอตเหมือนเดิม
มีอยู่ในดิสก์สำรอง ดังนั้นคุณจะพบว่าสิ่งนี้ไม่ได้ช่วยให้คุณประหยัดพื้นที่หรือเวลาใดๆ

สรุปว่านี่คือปัญหาที่ยาก และสิ่งที่เรามีอยู่ตอนนี้ส่วนใหญ่ได้ผลเราจึงไม่เต็มใจ
เพื่อเปลี่ยน

Why ไม่ virt-กระจัดกระจาย งาน on ดิสก์ ภาพ ในสถานที่?
ใน libguestfs ≥ 1.26 ขณะนี้ virt-sparsify สามารถทำงานกับอิมเมจของดิสก์ได้ ใช้:

virt-sparsify --in-place disk.img

แต่ก่อนอื่นคุณควรอ่าน "IN-PLACE SPARSIFICATION" ใน virt-กระจัดกระจาย(1)

ปัญหา เปิด ดิสก์ ภาพ


ห่างไกล libvirt แขกผู้เข้าพัก ไม่ได้ be เปิด
ไม่รองรับการเปิดแขก libvirt ระยะไกลในขณะนี้ ตัวอย่างเช่นสิ่งนี้จะไม่ทำงาน:

guestfish -c qemu://remote/system -d แขก

หากต้องการเปิดรีโมตดิสก์ คุณต้องเอ็กซ์พอร์ตก่อน แล้วจึงเชื่อมต่อกับเอ็กซ์พอร์ต สำหรับ
ตัวอย่าง หากคุณตัดสินใจใช้ NBD:

รีโมท$ qemu-nbd -t -p 10809 guest.img
local$ เกสต์ฟิช -a nbd://remote:10809 -i

ความเป็นไปได้อื่น ๆ ได้แก่ ssh (หาก qemu ล่าสุดเพียงพอ), NFS หรือ iSCSI ดู "รีโมท
STORAGE" ใน แขก(3)

สรุป ความน่าเชื่อถือของ Olymp Trade? สามารถ I เปิด นี้ แปลก ดิสก์ แหล่งที่มา?
คุณมีดิสก์อิมเมจอยู่ภายในระบบอื่นที่ต้องการการเข้าถึงผ่านไลบรารี /
HTTP / REST / API ที่เป็นกรรมสิทธิ์หรือถูกบีบอัดหรือเก็บถาวรในบางวิธี (ตัวอย่างหนึ่ง
จะเป็นการเข้าถึงระยะไกลเพื่อเข้าถึงรูปภาพอย่างรวดเร็วของ OpenStack โดยไม่ต้องดาวน์โหลดจริง ๆ )

เรามีโครงการน้องสาวชื่อ nbdkit (https://github.com/libguestfs/nbdkit) นี้
โปรเจ็กต์ให้คุณเปลี่ยนแหล่งดิสก์ใด ๆ ให้เป็นเซิร์ฟเวอร์ NBD Libguestfs สามารถเข้าถึง NBD
เซิร์ฟเวอร์โดยตรง เช่น:

เกสต์ฟิช -a nbd://remote

nbdkit ได้รับอนุญาตอย่างเสรี ดังนั้นคุณจึงสามารถเชื่อมโยงหรือรวมไว้ในไลบรารีที่เป็นกรรมสิทธิ์ได้
และรหัส นอกจากนี้ยังมี API ปลั๊กอินที่เรียบง่ายและเสถียร ดังนั้นคุณจึงสามารถเขียนปลั๊กอินได้อย่างง่ายดาย
API ซึ่งจะยังคงทำงานต่อไปในอนาคต

ความผิดพลาด การเปิด VMDK ดิสก์: "ใช้ a วีเอ็มดีเค ลักษณะ ที่ is ไม่ ได้รับการสนับสนุน by นี้ qemu รุ่น:
VMDK รุ่น 3"
Qemu (และด้วยเหตุนี้ libguestfs) จึงรองรับเฉพาะอิมเมจดิสก์ VMDK เท่านั้น คนอื่นจะไม่ทำงาน
ให้ข้อผิดพลาดนี้หรือคล้ายกัน

เป็นการดีที่ใครบางคนจะแก้ไข qemu เพื่อรองรับคุณสมบัติ VMDK ล่าสุด แต่ในระหว่างนี้
คุณมีสามทางเลือก:

1. หากแขกโฮสต์อยู่บนเซิร์ฟเวอร์สดที่เข้าถึงได้ ESX ให้ค้นหาและดาวน์โหลด
อิมเมจดิสก์ที่เรียกว่า somename-flat.vmdk. แม้ว่าชื่อจะเป็นภาพดิสก์ดิบและ
สามารถเปิดได้โดยอะไรก็ได้

หากคุณมี qemu และ libguestfs เวอร์ชันล่าสุดเพียงพอ คุณอาจสามารถ
เข้าถึงอิมเมจดิสก์นี้จากระยะไกลโดยใช้ HTTPS หรือ ssh ดู "ที่เก็บข้อมูลระยะไกล" ใน
แขก(3)

2. ใช้เครื่องมือ vdiskmanager ที่เป็นกรรมสิทธิ์ของ VMware เพื่อแปลงรูปภาพเป็นรูปแบบดิบ

3. ใช้ nbdkit กับปลั๊กอิน VDDK ที่เป็นกรรมสิทธิ์เพื่อส่งออกภาพดิสก์แบบสดเป็น NBD
แหล่งที่มา. สิ่งนี้จะช่วยให้คุณอ่านและเขียนไฟล์ VMDK ได้

UFS ดิสก์ (เช่น มือสอง by บีเอสดี) ไม่ได้ be เปิด
รูปแบบระบบไฟล์ UFS มีหลายรูปแบบ ซึ่งไม่สามารถระบุตัวตนได้ ดิ
เคอร์เนล Linux ต้องได้รับแจ้งว่าต้องใช้ UFS รุ่นใด ซึ่ง libguestfs ไม่สามารถทำได้
ทราบ

คุณต้องผ่านตัวเลือกการเมานต์ "ufstype" ที่ถูกต้องเมื่อทำการติดตั้งระบบไฟล์เหล่านี้

ดู https://www.kernel.org/doc/Documentation/filesystems/ufs.txt

Windows refs
Windows ReFS คือสำเนา ZFS/Btrfs ของ Microsoft ระบบไฟล์นี้ยังไม่ได้ย้อนกลับ
ออกแบบและใช้งานในเคอร์เนล Linux ดังนั้น libguestfs จึงไม่รองรับ
มัน. ในขณะนี้ดูเหมือนว่าจะหายากมาก "ในป่า"

ไม่ใช่ ASCII อักขระ ทำไม่ได้ ปรากฏ on วฟท ระบบไฟล์
อาการทั่วไปของปัญหานี้:

· คุณได้รับข้อผิดพลาดเมื่อคุณสร้างไฟล์ที่มีชื่อไฟล์ที่ไม่ใช่ ASCII
อักขระ โดยเฉพาะอักขระที่ไม่ใช่ 8 บิตจากภาษาเอเชีย (จีน ญี่ปุ่น
เป็นต้น) ระบบไฟล์คือ VFAT

· เมื่อคุณแสดงรายการไดเร็กทอรีจากระบบไฟล์ VFAT ชื่อไฟล์จะปรากฏเป็นเครื่องหมายคำถาม

นี่เป็นข้อบกพร่องด้านการออกแบบของระบบ GNU/Linux

VFAT เก็บชื่อไฟล์แบบยาวเป็นอักขระ UTF-16 เมื่อเปิดหรือส่งคืนชื่อไฟล์
เคอร์เนล Linux ต้องแปลสิ่งเหล่านี้เป็นสตริง 8 บิตบางรูปแบบ UTF-8 จะเป็น
ทางเลือกที่ชัดเจน ยกเว้นผู้ใช้ Linux ที่ยังคงใช้โลแคลที่ไม่ใช่ UTF-8 (ของผู้ใช้
เคอร์เนลไม่รู้จักสถานที่เนื่องจากเป็นฟังก์ชันของ libc)

ดังนั้นคุณต้องบอกเคอร์เนลว่าคุณต้องการแปลอะไรเมื่อคุณเมานต์
ระบบไฟล์ ทั้งสองวิธีคือพารามิเตอร์ "iocharset" (ซึ่งไม่เกี่ยวข้องกับ
libguestfs) และแฟล็ก "utf8"

ดังนั้นเพื่อใช้ระบบไฟล์ VFAT คุณต้องเพิ่มแฟล็ก "utf8" เมื่อทำการติดตั้ง จาก guestfish,
ใช้:

> ตัวเลือกการเมานต์ utf8 /dev/sda1 /

หรือบนบรรทัดคำสั่ง guestfish:

guestfish [... ] -m /dev/sda1:/:utf8

หรือจาก API:

guestfs_mount_options (g, "utf8", "/dev/sda1", "/");

เคอร์เนลจะแปลชื่อไฟล์เป็นและจากสตริง UTF-8

เราพิจารณาเพิ่มตัวเลือกการเมานต์นี้อย่างโปร่งใส แต่น่าเสียดายที่มีหลายตัวเลือก
ปัญหาในการทำเช่นนั้น:

· ในบางระบบ Linux ตัวเลือกการเมาต์ "utf8" จะไม่ทำงาน เราไม่ได้อย่างแม่นยำ
เข้าใจว่าระบบใดหรือเพราะเหตุใด แต่ผู้ใช้รายหนึ่งรายงานสิ่งนี้อย่างน่าเชื่อถือ

· มันจะป้องกันไม่ให้คุณใช้พารามิเตอร์ "iocharset" เพราะเข้ากันไม่ได้
ด้วย "utf8" อาจไม่ใช่ความคิดที่ดีที่จะใช้พารามิเตอร์นี้ แต่เราไม่ต้องการ
เพื่อป้องกันไม่ให้

ไม่ใช่ ASCII อักขระ ปรากฏ as ขีดเส้นใต้ 🇧🇷 on ISO9660 ระบบไฟล์
ระบบไฟล์ไม่ได้เตรียมอย่างถูกต้องด้วย mkisofs หรือ genisoimage ตรวจสอบให้แน่ใจว่า
ระบบไฟล์ถูกสร้างขึ้นโดยใช้นามสกุล Joliet และ/หรือ Rock Ridge libguestfs ไม่ได้
ต้องการตัวเลือกการเมานต์พิเศษเพื่อจัดการกับระบบไฟล์

ไม่สามารถ เปิด Windows แขกผู้เข้าพัก ที่ ใช้ NTFS
คุณเห็นข้อผิดพลาดเช่น:

เมานต์: ระบบไฟล์ที่ไม่รู้จักประเภท 'ntfs'

บน Red Hat Enterprise Linux หรือ CentOS คุณต้องติดตั้ง libguestfs-winsupport
บรรจุภัณฑ์

ไม่สามารถ เปิด or ตรวจ RHEL 7 แขกผู้เข้าพัก
ไม่สามารถ เปิด ลินุกซ์ แขกผู้เข้าพัก ที่ ใช้ เอ็กซ์เอฟเอส
แขก RHEL 7 คนและแขกคนอื่น ๆ ที่ใช้ XFS สามารถเปิดได้โดย libguestfs แต่คุณ
ต้องติดตั้งแพ็คเกจ "libguestfs-xfs"

ใช้ LIBGUESTFS IN ของคุณ เอง โปรแกรม


พื้นที่ API มี หลายร้อย of วิธีการ ที่ไหน do I เริ่มต้นอย่างไร
เราขอแนะนำให้คุณเริ่มต้นด้วยการอ่านภาพรวม API: "API OVERVIEW" ใน แขก(3)

แม้ว่าภาพรวม API จะครอบคลุม C API แต่ก็ยังคุ้มค่าที่จะอ่านแม้ว่าคุณจะเป็น
จะใช้ภาษาการเขียนโปรแกรมอื่นเพราะ API เหมือนกันเพียงแค่ง่าย
การเปลี่ยนแปลงตรรกะของชื่อการโทร:

C guestfs_ln_sf (g, เป้าหมาย, ชื่อลิงค์);
Python g.ln_sf (เป้าหมาย ชื่อลิงค์);
OCaml g#ln_sf ชื่อลิงก์เป้าหมาย;
Perl $g->ln_sf (เป้าหมาย ชื่อลิงค์);
เชลล์ (guestfish) ln-sf ชื่อลิงค์เป้าหมาย
PHP guestfs_ln_sf ($g, $เป้าหมาย, $ชื่อลิงก์);

เมื่อคุณคุ้นเคยกับภาพรวม API แล้ว คุณควรดูรายการการเริ่มต้นนี้
คะแนนสำหรับการผูกภาษาอื่น: "การใช้ LIBGUESTFS กับภาษาโปรแกรมอื่น" ใน
แขก(3)

สามารถ I ใช้ libguestfs in my เป็นเจ้าของ / ปิด แหล่ง / เชิงพาณิชย์ โปรแกรม?
โดยทั่วไปใช่ อย่างไรก็ตามนี่ไม่ใช่คำแนะนำทางกฎหมาย - อ่านใบอนุญาตที่มาพร้อมกับ
libguestfs และหากคุณมีคำถามเฉพาะ โปรดติดต่อทนายความ

ในแผนผังต้นทาง ใบอนุญาตอยู่ในไฟล์ "COPYING.LIB" (LGPLv2+ สำหรับไลบรารีและ
การผูก) และ "การคัดลอก" (GPLv2+ สำหรับโปรแกรมแบบสแตนด์อโลน)

การดีบัก LIBGUESTFS


ความช่วยเหลือ มัน ไม่ ทำงาน!
หากไม่มีโปรแกรม libguestfs ทำงานเลย ให้รันโปรแกรมด้านล่างแล้ววาง
เสร็จสมบูรณ์แล้ว ไม่ได้แก้ไข ส่งออกไปยังอีเมล "libguestfs" @ "redhat.com":

libguestfs-เครื่องมือทดสอบ

หากการดำเนินการใดล้มเหลว ให้ข้อมูลทั้งหมดในรายการตรวจสอบนี้ในอีเมล
ถึง "libguestfs" @ "redhat.com":

1. คุณพยายามทำอะไร?

2. คุณใช้คำสั่งอะไรกันแน่?

3. ข้อผิดพลาดหรือผลลัพธ์ที่แม่นยำของคำสั่งเหล่านี้คืออะไร?

4. เปิดใช้งานการดีบัก รันคำสั่งอีกครั้ง และจับภาพ สมบูรณ์ เอาท์พุต Do ไม่
แก้ไข เอาท์พุต

ส่งออก LIBGUESTFS_DEBUG=1
ส่งออก LIBGUESTFS_TRACE=1

5. รวมเวอร์ชันของ libguestfs เวอร์ชันระบบปฏิบัติการ และวิธีที่คุณติดตั้ง
libguestfs (เช่น จากแหล่งที่มา "yum install" เป็นต้น)

สรุป ความน่าเชื่อถือของ Olymp Trade? do I การแก้ปัญหา เมื่อ การใช้ ใด libguestfs โครงการ or เครื่องมือ (เช่น. virt-v2v or virt-df)?
มีสองตัวแปรสภาพแวดล้อม "LIBGUESTFS_*" ที่คุณสามารถตั้งค่าเพื่อรับเพิ่มเติม
ข้อมูลจาก libguestfs

"LIBGUESTFS_TRACE"
ตั้งค่านี้เป็น 1 และ libguestfs จะพิมพ์แต่ละคำสั่ง / การเรียก API ในรูปแบบที่
คล้ายกับคำสั่ง guestfish

"LIBGUESTFS_DEBUG"
ตั้งค่านี้เป็น 1 เพื่อเปิดใช้งานข้อความแก้ไขข้อบกพร่องจำนวนมาก ถ้าคุณคิด
มีปัญหาบางอย่างในอุปกรณ์ libguestfs คุณควรใช้สิ่งนี้
ตัวเลือก

หากต้องการตั้งค่าเหล่านี้จากเชลล์ ให้ทำสิ่งนี้ก่อนรันโปรแกรม:

ส่งออก LIBGUESTFS_TRACE=1
ส่งออก LIBGUESTFS_DEBUG=1

สำหรับ csh/tcsh คำสั่งที่เทียบเท่าจะเป็น:

setenv LIBGUESTFS_TRACE 1
setenv LIBGUESTFS_DEBUG 1

สำหรับข้อมูลเพิ่มเติม โปรดดูที่ "ตัวแปรสิ่งแวดล้อม" ใน แขก(3)

สรุป ความน่าเชื่อถือของ Olymp Trade? do I การแก้ปัญหา เมื่อ การใช้ ปลาแขก?
คุณสามารถใช้ตัวแปรสภาพแวดล้อมเดียวกันข้างต้นได้ หรือใช้ตัวเลือก guestfish
-x (เพื่อติดตามคำสั่ง) หรือ -v (เพื่อรับเอาต์พุตการดีบักแบบเต็ม) หรือทั้งสองอย่าง

สำหรับข้อมูลเพิ่มเติม โปรดดูที่: ปลาแขก(1)

สรุป ความน่าเชื่อถือของ Olymp Trade? do I การแก้ปัญหา เมื่อ การใช้ เอพีไอ?
โทร "guestfs_set_trace" ใน แขก(3) เพื่อเปิดใช้งานการติดตามคำสั่ง และ/หรือ
"guestfs_set_verbose" ใน แขก(3) เพื่อเปิดใช้งานข้อความแก้ไขข้อบกพร่อง

เพื่อผลลัพธ์ที่ดีที่สุด ให้เรียกใช้ฟังก์ชันเหล่านี้โดยเร็วที่สุดหลังจากสร้าง
guestfs จัดการถ้าทำได้และแน่นอนก่อนที่จะเปิดตัว

สรุป ความน่าเชื่อถือของ Olymp Trade? do I จับ การแก้ปัญหา เอาท์พุต และ ใส่ it เข้าไป my การเข้าสู่ระบบ ระบบ?
ใช้เหตุการณ์ API สำหรับตัวอย่าง โปรดดู: "การตั้งค่าการเรียกกลับเพื่อจัดการเหตุการณ์" ใน แขก(3)
และ ตัวอย่าง/debug-logging.c โปรแกรมในแหล่ง libguestfs

เหมือง ลึก เข้าไป เครื่องใช้ รองเท้า กระบวนการ
เปิดใช้งานการดีบักแล้วอ่านเอกสารนี้เกี่ยวกับขั้นตอนการบู๊ตอุปกรณ์:
guestfs-ภายใน(1)

libguestfs แฮงค์ or ล้มเหลว ในระหว่าง วิ่ง/เปิดตัว.
เปิดใช้งานการดีบักและดูผลลัพธ์ทั้งหมด หากคุณไม่สามารถหาคำตอบว่าเกิดอะไรขึ้น
ยื่นรายงานข้อบกพร่องรวมถึง สมบูรณ์ เอาต์พุตของ libguestfs-เครื่องมือทดสอบ(1)

การแก้จุดบกพร่อง libvirt
หากคุณกำลังใช้แบ็กเอนด์ libvirt และ libvirt ล้มเหลว คุณสามารถเปิดใช้งาน
แก้จุดบกพร่องโดยการแก้ไข /etc/libvirt/libvirtd.conf.

หากคุณกำลังใช้งานที่ไม่ใช่รูท คุณจะต้องแก้ไขไฟล์อื่น สร้าง
~/.config/libvirt/libvirtd.conf ที่มี:

log_level=1
log_outputs="1:file:/tmp/libvirtd.log"

ฆ่า libvirtd เซสชันใดๆ (ที่ไม่ใช่รูท) ที่กำลังทำงานอยู่ และครั้งต่อไปที่คุณเรียกใช้ libguestfs
คำสั่ง คุณควรเห็นข้อมูลการดีบักที่มีประโยชน์จำนวนมากจาก libvirtd in
/tmp/libvirtd.log

การออกแบบ/ภายใน OF LIBGUESTFS


ดูสิ่งนี้ด้วย guestfs-ภายใน(1)

Why ทำไม่ได้ เธอ do ทุกอย่าง ตลอด ฟิวส์ / ระบบแฟ้ม อินเตอร์เฟซ?
เราเสนอคำสั่งที่เรียกว่า แขกรับเชิญ(1) ซึ่งให้คุณเมานต์ระบบไฟล์แขกบน
เจ้าภาพ. สิ่งนี้ถูกนำมาใช้เป็นโมดูล FUSE ทำไมเราไม่ใช้ทั้ง
libguestfs โดยใช้กลไกนี้ แทนที่จะมี API ที่ใหญ่และค่อนข้างซับซ้อน?

เหตุผลเป็นสองเท่า ประการแรก libguestfs เสนอการเรียก API สำหรับการทำสิ่งต่าง ๆ เช่น
การสร้างและการลบพาร์ติชั่นและโลจิคัลวอลุ่ม ซึ่งไม่เข้ากับระบบไฟล์
โมเดลได้ง่ายมาก หรือมากกว่า คุณสามารถใส่มันเข้าไป: ตัวอย่างเช่น การสร้างพาร์ทิชัน
สามารถแมปกับ "mkdir /fs/hda1" ได้ แต่คุณต้องระบุวิธีการที่จะเลือก
ขนาดของพาร์ติชัน (อาจเป็น "echo 100M > /fs/hda1/.size") และประเภทพาร์ติชัน
เริ่มต้นและสิ้นสุดเซกเตอร์ ฯลฯ แต่เมื่อคุณทำเสร็จแล้ว API ที่อิงตามระบบไฟล์จะเริ่ม
ดูซับซ้อนกว่า call-based API ที่เรามีอยู่ในปัจจุบัน

เหตุผลที่สองคือเพื่อประสิทธิภาพ FUSE นั้นมีประสิทธิภาพพอสมควร แต่ก็ทำได้
โทรออกทีละน้อยๆ จำนวนมากในโมดูล FUSE ใน guestmount เหล่านี้ต้อง
ถูกแปลเป็นข้อความไปยังอุปกรณ์ libguestfs ซึ่งมีค่าใช้จ่ายสูง (ในเวลา
และไป-กลับ) ตัวอย่างเช่น การอ่านไฟล์ในกลุ่ม 64 KB นั้นไม่มีประสิทธิภาพเพราะว่าแต่ละไฟล์
ก้อนจะกลายเป็นเที่ยวเดียว ใน libguestfs API มันมีมากกว่านั้นมาก
มีประสิทธิภาพในการดาวน์โหลดไฟล์ทั้งหมดหรือไดเร็กทอรีผ่านสายสตรีมมิ่งเช่น
"guestfs_download" หรือ "guestfs_tar_out"

Why ทำไม่ได้ เธอ do ทุกอย่าง ตลอด จีวีเอฟเอส?
ปัญหาจะคล้ายกับปัญหาของ FUSE

GVFS เป็นนามธรรมที่ดีกว่า POSIX/FUSE มีแบ็กเอนด์ FTP สำหรับ GVFS ซึ่งก็คือ
สนับสนุนเพราะ FTP มีแนวคิดคล้ายกับ libguestfs API อย่างไรก็ตาม GVFS
แบ็กเอนด์ FTP สร้างการเชื่อมต่อพร้อมกันหลายรายการเพื่อรักษาการโต้ตอบ ซึ่ง
เราไม่สามารถทำอะไรกับ libguestfs ได้ง่ายๆ

Why สามารถ I เขียน ไปยัง ดิสก์, แม้ แม้ I ที่เพิ่ม it อ่านเท่านั้น?
Why ทำ "--โร" ปรากฏ ไปยัง มี ไม่ ผลกระทบ?
เมื่อคุณเพิ่มดิสก์แบบอ่านอย่างเดียว libguestfs จะวางโอเวอร์เลย์ที่เขียนได้ไว้บน
ดิสก์พื้นฐาน การเขียนเข้าไปในโอเวอร์เลย์นี้ และจะถูกละทิ้งเมื่อปิดแฮนเดิล
(หรือ "guestfish" เป็นต้น ออก)

มีเหตุผลสองประการในการทำเช่นนี้: ประการแรก ดิสก์แบบอ่านอย่างเดียวไม่สามารถทำได้ใน
หลายกรณี (เช่น IDE ไม่สนับสนุนพวกเขา ดังนั้นคุณจึงไม่สามารถมี IDE-emulated
ดิสก์แบบอ่านอย่างเดียว แม้ว่าจะไม่ใช่เรื่องปกติในการติดตั้ง libguestfs จริงก็ตาม)

ประการที่สองและที่สำคัญกว่านั้น แม้ว่าดิสก์แบบอ่านอย่างเดียวจะเป็นไปได้ คุณก็ไม่ต้องการ
พวกเขา. การติดตั้งระบบไฟล์ใดๆ ที่มีเจอร์นัล แม้แต่ "mount -o ro" ก็ทำให้เกิดการเขียนถึง
ระบบไฟล์เนื่องจากต้องเล่นเจอร์นัลซ้ำและอัปเดตข้อมูลเมตา ถ้าดิสก์
เป็นแบบอ่านอย่างเดียวอย่างแท้จริง คุณจะไม่สามารถติดตั้งระบบไฟล์ที่สกปรกได้

เพื่อให้ใช้งานได้ เราสร้างโอเวอร์เลย์เป็นที่สำหรับจัดเก็บการเขียนเหล่านี้ชั่วคราว และ
แล้วเราจะทิ้งมันในภายหลัง เพื่อให้แน่ใจว่าไม่มีการแตะต้องดิสก์พื้นฐาน

โปรดทราบว่ามีการทดสอบการถดถอยสำหรับสิ่งนี้เมื่อสร้าง libguestfs (in
"การทดสอบ/qemu") นี่เป็นเหตุผลหนึ่งว่าทำไมผู้จัดแพคเกจจึงควรรันชุดทดสอบ

ไม่ "--โร" ทำ ทั้งหมด ดิสก์ อ่านเท่านั้น?
ไม่มี! ตัวเลือก "--ro" จะมีผลกับดิสก์ที่เพิ่มในบรรทัดคำสั่งเท่านั้น เช่น ใช้ "-a" และ
ตัวเลือก "-d"

ใน guestfish หากคุณใช้คำสั่ง "add" ดิสก์จะถูกเพิ่มแบบอ่าน-เขียน (เว้นแต่คุณจะ
ระบุแฟล็ก "readonly:true" อย่างชัดเจนด้วยคำสั่ง)

สามารถ I ใช้ "ปลาแขก --ro" as a ทาง ไปยัง การสำรองข้อมูล my เสมือน เครื่องจักร?
โดยปกติจะเป็น ไม่ ความคิดที่ดี. คำถามมีคำตอบโดยละเอียดในจดหมายฉบับนี้
รายการโพสต์: https://www.redhat.com/archives/libguestfs/2010-August/msg00024.html

ดูคำถามต่อไป

Why ไม่ได้ I วิ่ง ฟค on a สด ระบบแฟ้ม การใช้ "ปลาแขก --ro"?
คำสั่งนี้มักจะ ไม่ งาน:

guestfish --ro -a /dev/vg/my_root_fs วิ่ง : fsck /dev/sda

เหตุผลก็คือ qemu สร้างสแน็ปช็อตเหนือระบบไฟล์ดั้งเดิม แต่มัน
ไม่สร้างสแน็ปช็อตแบบ point-in-time ที่เข้มงวด บล็อกของข้อมูลพื้นฐาน
ระบบไฟล์ถูกอ่านโดย qemu ในเวลาที่ต่างกันในขณะที่การดำเนินการ fsck ดำเนินไปพร้อมกับhost
เขียนในระหว่าง ผลลัพธ์คือ fsck เห็นการทุจริตครั้งใหญ่ (ในจินตนาการ ไม่ใช่ของจริง!)
และล้มเหลว

สิ่งที่คุณต้องทำคือสร้างสแน็ปช็อตแบบ point-in-time หากเป็นโลจิคัลวอลุ่ม ให้ใช้
สแนปชอต LVM2 หากระบบไฟล์อยู่ภายในบางอย่างเช่นไฟล์ btrfs/ZFS
ใช้สแน็ปช็อต btrfs/ZFS จากนั้นรัน fsck บนสแน็ปช็อต ในทางปฏิบัติคุณไม่
ต้องใช้ libguestfs สำหรับสิ่งนี้ - แค่เรียกใช้ /sbin/fsck โดยตรง.

การสร้างสแน็ปช็อต point-in-time ของอุปกรณ์โฮสต์และไฟล์อยู่นอกขอบเขตของ
libguestfs แม้ว่า libguestfs จะสามารถทำงานได้เมื่อสร้างขึ้น

มีอะไร ความแตกต่าง ระหว่าง ปลาแขก และ virt-กู้ภัย?
หลายคนสับสนกับเครื่องมือสองอย่างนี้ที่คล้ายคลึงกันที่เรามีให้:

$ เกสต์ฟิช --ro -a guest.img
> วิ่ง
> fsck /dev/sda1

$ virt-rescue --ro guest.img
> /sbin/fsck / dev / sda1

และคำถามที่เกี่ยวข้องที่เกิดขึ้นคือ ทำไมคุณพิมพ์คำสั่ง full shell ไม่ได้
ด้วย --options ทั้งหมดใน guestfish (แต่คุณสามารถใน virt-กู้ภัย(พ.ศ. 1)).

ปลาแขก(1) เป็นโปรแกรมที่ให้การเข้าถึงแบบมีโครงสร้างไปยัง แขก(3) เอพีไอ มันเกิดขึ้น
เพื่อเป็นเชลล์แบบโต้ตอบที่ดีเช่นกัน แต่จุดประสงค์หลักของมันคือการเข้าถึงแบบมีโครงสร้างจาก
เชลล์สคริปต์ คิดว่ามันเหมือนกับการโยงภาษามากกว่า เช่น Python และการโยงอื่นๆ
แต่สำหรับเปลือก ปัจจัยสร้างความแตกต่างที่สำคัญของ guestfish (และ libguestfs API ใน
ทั่วไป) คือความสามารถในการเปลี่ยนแปลงอัตโนมัติ

virt-กู้ภัย(1) เป็นวิธีฟรีฟอร์มฟรีสำหรับบูตเครื่อง libguestfs และ make
การเปลี่ยนแปลงโดยพลการใน VM ของคุณ มันไม่ใช่โครงสร้าง คุณไม่สามารถทำให้มันเป็นอัตโนมัติได้ แต่สำหรับการทำ
การแก้ไขเฉพาะกิจอย่างรวดเร็วสำหรับแขกของคุณ มีประโยชน์มากทีเดียว

แต่ libguestfs ยังมี "แบ็คดอร์" ในเครื่องเพื่อให้คุณส่งได้ตามอำเภอใจ
คำสั่งเชลล์ มันไม่ยืดหยุ่นเท่า virt-rescue เพราะคุณไม่สามารถโต้ตอบกับ
คำสั่งเชลล์ แต่นี่คือ:

> ดีบัก sh "cmd arg1 arg2 ..."

โปรดทราบว่าคุณควร ไม่ พึ่งพาสิ่งนี้ สามารถลบหรือเปลี่ยนแปลงได้ในอนาคต ถ้าคุณ
โปรแกรมต้องการการดำเนินการบางอย่าง โปรดเพิ่มลงใน libguestfs API แทน

มีอะไร จัดการ กับ "ปลาแขก -ผม"?
Why ทำ virt-แมว เพียง งาน on a จริง VM ภาพ, แต่ virt-df โรงงาน on ใด ดิสก์ ภาพ?
อะไร ทำ "ไม่ ราก เครื่อง พบ in นี้ การดำเนินงาน ระบบ ภาพ " หมายความว่าอย่างไร
คำถามเหล่านี้ล้วนเกี่ยวข้องกันในระดับพื้นฐานซึ่งอาจจะไม่เกิดขึ้นในทันที
ชัดเจน.

ที่ แขก(3) ระดับ API "ดิสก์อิมเมจ" เป็นเพียงกองพาร์ติชั่นและระบบไฟล์

ในทางตรงกันข้าม เมื่อเครื่องเสมือนบู๊ต เครื่องจะต่อเชื่อมระบบไฟล์เหล่านั้นให้สอดคล้องกัน
ลำดับชั้นเช่น:

/ (/dev/sda2)

├── / boot (/dev/sda1)

├── / หน้าแรก (/dev/vg_external/บ้าน)

├── / usr (/dev/vg_os/lv_usr)

└── / var (/dev/vg_os/lv_var)

(หรืออักษรระบุไดรฟ์ใน Windows)

ก่อนอื่น API จะมองเห็นภาพดิสก์ที่ระดับ "กองของระบบไฟล์" แต่ก็ยัง
มีวิธีตรวจสอบดิสก์อิมเมจเพื่อดูว่ามีระบบปฏิบัติการหรือไม่และ
ดิสก์ถูกเมาต์เมื่อระบบปฏิบัติการบูท: "INSPECTION" ใน แขก(3)

ผู้ใช้คาดหวังเครื่องมือบางอย่าง (เช่น virt-แมว(1)) เพื่อทำงานกับเส้นทาง VM:

virt-cat fedora.img /var/log/messages

virt-cat รู้ได้อย่างไรว่า / var เป็นพาร์ติชั่นแยก? เคล็ดลับก็คือ virt-cat
ทำการตรวจสอบอิมเมจของดิสก์ และใช้เพื่อแปลพาธอย่างถูกต้อง

เครื่องมือบางอย่าง (รวมถึง virt-แมว(1) virt แก้ไข(1) virt-ls(1)) ใช้การตรวจสอบเพื่อแมป VM
เส้นทาง เครื่องมืออื่นๆ เช่น virt-df(1) และ ระบบไฟล์เสมือน(1) ดำเนินการทั้งหมดที่
ระดับ "ระบบไฟล์กองใหญ่" ดิบของ libguestfs API และอย่าใช้การตรวจสอบ

ปลาแขก(1) อยู่ในจุดกลางที่น่าสนใจ หากคุณใช้ -a และ -m บรรทัดคำสั่ง
จากนั้นคุณต้องบอก guestfish อย่างชัดเจนถึงวิธีการเพิ่มอิมเมจของดิสก์และตำแหน่งที่จะเมานต์
พาร์ทิชัน นี่คือระดับ API ดิบ

ถ้าคุณใช้ -i ตัวเลือก libguestfs ทำการตรวจสอบและติดตั้งระบบไฟล์สำหรับ
คุณ

ข้อผิดพลาด "ไม่พบอุปกรณ์รูทในอิมเมจระบบปฏิบัติการนี้" เกี่ยวข้องกับสิ่งนี้ มัน
หมายความว่าการตรวจสอบไม่สามารถระบุตำแหน่งระบบปฏิบัติการภายในภาพดิสก์ที่คุณให้ไว้
มัน. คุณอาจเห็นสิ่งนี้จากโปรแกรมเช่น virt-cat ถ้าคุณพยายามเรียกใช้มันในบางสิ่ง
ซึ่งเป็นเพียงภาพดิสก์ ไม่ใช่ภาพดิสก์ของเครื่องเสมือน

อะไร do เหล่านี้ "ดีบัก*" และ "ภายใน-*" ฟังก์ชั่น ทำ?
มีฟังก์ชันบางอย่างที่ใช้สำหรับการดีบักและวัตถุประสงค์ภายในคือ ไม่
ส่วนหนึ่งของ API ที่เสถียร

ฟังก์ชัน "debug*" (หรือ "guestfs_debug*") ซึ่งส่วนใหญ่เป็น "guestfs_debug" ใน แขก(3) และ
อีกจำนวนหนึ่งใช้สำหรับแก้จุดบกพร่อง libguestfs แม้ว่าพวกเขาจะไม่ได้เป็นส่วนหนึ่งของ
API ที่เสถียรจึงอาจเปลี่ยนแปลงหรือลบออกได้ทุกเมื่อ บางโปรแกรมอาจต้องการเรียก
สิ่งเหล่านี้ในขณะที่รอคุณสมบัติที่จะเพิ่มใน libguestfs

libguestfs จะใช้ฟังก์ชัน "internal-*" (หรือ "guestfs_internal_*") เท่านั้น
ตัวเอง. ไม่มีเหตุผลใดที่โปรแกรมจะเรียกมัน และโปรแกรมต่างๆ ไม่ควรพยายามใช้
พวกเขา. การใช้สิ่งเหล่านี้มักจะทำให้เกิดสิ่งเลวร้าย และไม่เป็นส่วนหนึ่งของ
เอกสาร API ที่เสถียร

นักพัฒนา


ที่ไหน do I ส่ง แพทช์?
โปรดส่งแพตช์ไปที่รายชื่อผู้รับจดหมาย libguestfs
https://www.redhat.com/mailman/listinfo/libguestfs. You don't have to be subscribed, but
จะมีความล่าช้าจนกว่าการโพสต์ของคุณจะได้รับการอนุมัติด้วยตนเอง

กรุณา ทำไม่ได้ ใช้ GitHub ดึง การร้องขอ - พวกเขา จะ be ละเว้น. เหตุผลคือ (ก) เราต้องการ
เพื่อหารือและวิเคราะห์แพตช์ในรายชื่อผู้รับจดหมาย และ (b) คำขอดึง github กลายเป็น
ผสานคอมมิต แต่เราต้องการมีประวัติเชิงเส้น

สรุป ความน่าเชื่อถือของ Olymp Trade? do I เสนอ a คุณลักษณะ?
คุณสมบัติใหม่ขนาดใหญ่ที่คุณตั้งใจจะมีส่วนร่วมควรกล่าวถึงในรายชื่อส่งเมล
ก่อน (https://www.redhat.com/mailman/listinfo/libguestfs) สิ่งนี้หลีกเลี่ยงความผิดหวัง
และงานเสียเปล่าถ้าเราไม่คิดว่าคุณลักษณะนี้จะเข้ากับโปรเจ็กต์ libguestfs

หากคุณต้องการแนะนำคุณสมบัติที่มีประโยชน์แต่ไม่ต้องการเขียนโค้ด คุณสามารถยื่น a
ข้อผิดพลาด (ดู "การรับความช่วยเหลือและการรายงานข้อบกพร่อง") ด้วย "RFE: " ที่จุดเริ่มต้นของบทสรุป
เส้น

ใคร สามารถ ผูกมัด ไปยัง libguestfs จิ๊กซอว์?
ผู้คนประมาณ 5 คนมีสิทธิ์เข้าถึง GitHub แพทช์ควรจะโพสต์ในรายการก่อน
และ ACKed นโยบายสำหรับ ACKing และ pushing patch มีการระบุไว้ที่นี่:

https://www.redhat.com/archives/libguestfs/2012-January/msg00023.html

สามารถ I ส้อม libguestfs?
แน่นอนคุณสามารถ. Git ทำให้ง่ายต่อการแยก libguestfs Github ทำให้ง่ายยิ่งขึ้น
เป็นเรื่องที่ดีถ้าคุณบอกเราในรายชื่อส่งเมลเกี่ยวกับส้อมและเหตุผลของมัน

เบ็ดเตล็ด คำถาม


สามารถ I หน้าจอ สด ดิสก์ อยากทำกิจกรรม of a เสมือน เครื่อง การใช้ libguestfs?
คำขอทั่วไปคือสามารถใช้ libguestfs เพื่อตรวจสอบกิจกรรมดิสก์สดของa
ตัวอย่างเช่น แขกเพื่อรับการแจ้งเตือนทุกครั้งที่แขกสร้างไฟล์ใหม่ Libguestfs
ทำ ไม่ ทำงานในแบบที่บางคนจินตนาการได้ ดังที่คุณเห็นจากแผนภาพนี้:

┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────...
│ ตรวจสอบโปรแกรมโดยใช้ libguestfs │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────...

┌────────────┐ ┌──────────────────────┐
│ VM สด │ │ อุปกรณ์ libguestfs │
├────────────┤ ├──────────────────────┤
│ เคอร์เนล (1)│ │ เคอร์เนลของอุปกรณ์ (2) │
└────────────┘ └──────────────────────┘
↓ ↓ (การเชื่อมต่อ r/o)
┌───────────────────────┐
| ดิสก์อิมเมจ |
└───────────────────────┘

สถานการณ์นี้ปลอดภัย (ตราบใดที่คุณตั้งค่าสถานะ "อ่านอย่างเดียว" เมื่อเพิ่มไดรฟ์)
อย่างไรก็ตามเคอร์เนลของอุปกรณ์ libguestfs (2) ไม่เห็นการเปลี่ยนแปลงทั้งหมดที่ทำกับdisk
ภาพด้วยเหตุผลสองประการ:

ผม. เคอร์เนล VM (1) สามารถแคชข้อมูลในหน่วยความจำ จึงไม่ปรากฏในภาพดิสก์

ii เคอร์เนลของอุปกรณ์ libguestfs (2) ไม่คาดหวังว่าภาพดิสก์จะเปลี่ยนไป
อยู่ข้างใต้ ดังนั้นแคชของตัวเองจึงไม่ได้รับการอัพเดตอย่างน่าอัศจรรย์แม้ในขณะที่เคอร์เนล VM (1)
อัปเดตภาพดิสก์หรือไม่

ทางออกเดียวที่ได้รับการสนับสนุนคือรีสตาร์ทอุปกรณ์ libguestfs ทั้งหมดทุกครั้งที่คุณ
ต้องการดูการเปลี่ยนแปลงในดิสก์อิมเมจ ที่ระดับ API ที่สอดคล้องกับการโทร
"guestfs_shutdown" ตามด้วย "guestfs_launch" ซึ่งเป็นการดำเนินการรุ่นหนา (ดู
ด้วย guestfs-การแสดง(พ.ศ. 3)).

มีแฮ็กที่ไม่ได้รับการสนับสนุนอยู่บ้างที่คุณสามารถลองได้หากการเปิดใช้อุปกรณ์อีกครั้งเป็นเช่นเดียวกัน
ราคาแพง:

· โทร "guestfs_drop_caches (g, 3)" สิ่งนี้ทำให้ข้อมูลแคชทั้งหมดช่วยโดยlibguestfs
เคอร์เนลของอุปกรณ์ (2) จะถูกละทิ้ง ดังนั้นมันจะกลับไปที่ดิสก์อิมเมจ

อย่างไรก็ตามสิ่งนี้ไม่เพียงพอเพราะ qemu ยังแคชข้อมูลบางส่วน คุณ
จะต้องแก้ไข libguestfs เพื่อ (อีกครั้ง) เพื่อเปิดใช้งานโหมด "cache=unsafe" ดู:
https://rwmj.wordpress.com/2013/09/02/new-in-libguestfs-allow-cache-mode-to-be-selected/

· ใช้เครื่องมือเช่น virt-bmap แทน

·เรียกใช้ตัวแทนภายในแขก

ไม่มีอะไรช่วยหากแขกทำการเปลี่ยนแปลงพื้นฐานเพิ่มเติม (เช่น การลบระบบไฟล์)
คุณต้องเปิดเครื่องอีกครั้งสำหรับสิ่งเหล่านี้

(โปรดทราบว่ามีปัญหาที่สามที่คุณต้องใช้สแน็ปช็อตที่สอดคล้องกันเพื่อตรวจสอบจริงๆ
อิมเมจดิสก์สด แต่นั่นเป็นปัญหาทั่วไปของการใช้ libguestfs กับดิสก์สดใดๆ
ภาพ.)

ใช้ guestfs-faq ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

คำสั่ง Linux

Ad