From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:from:date:message-id:subject:to:content-type :content-transfer-encoding; bh=5tKj0ePx2IVN+DqEnUPi/HBipDZbQHifYZZ6flXAnDM=; b=ypz3EYEkMQPkf1yeINxydS0C4tHM3wkFD6zzCfZ/l/PEuxh29coPYWoW0jzYzKZFsG dUv7OC8pg5Ya7t6xL7HqC2PunDBtU7NStSA7Oc41oN1t/CmZY6ptFfyKpjKJsblC05oJ gGO1+6UyHW0OaZ+U6GssAbTgcdPIQBNFNhTdO3VPf8FYeSiJ5FOZ5hteQ/NpYpaM7uS8 UtJ8zL7TVZFujyzV9+rBUvMTNXb1CNH/Q2jlUqLg7zXR0LZ+NDZz5k2jI3U7eKfSYqT+ d37lxiy9J2zg2zaAIb1qewZVbLQIQI/lY7V7CuhzT6jbqLqf4miQErJyZXQU/vg+tK/b y8sw== X-Received: by 10.60.150.200 with SMTP id uk8mr2502634oeb.54.1416325743226; Tue, 18 Nov 2014 07:49:03 -0800 (PST) MIME-Version: 1.0 From: Alexey Shabalin Date: Tue, 18 Nov 2014 19:48:32 +0400 Message-ID: To: ALT Linux Team development discussions , Michael Shigorin , "legion@altlinux.org" , =?KOI8-R?B?98HMxc7Uyc4g8s/TwdfJw8vJyg==?= , Anton Gorlov Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: quoted-printable Subject: [devel] libguestfs X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Nov 2014 15:49:10 -0000 Archived-At: List-Archive: List-Post: =F7=C5=DE=C5=D2 =C4=CF=C2=D2=D9=CA. =EF=D0=C9=DB=D5 =D0=D2=CF=C7=D2=C5=D3=D3 =CE=C1=C4 =C1=C4=C1=D0=D4=C1=C3=C9= =C5=CA libguestfs =C4=CC=D1 ALTLinux. =E9 =D0=D2=CF=DB=D5 =DA=CE=C1=D4=CF=CB=CF=D7 =D0=CF=C4=D3=CB=C1=DA=C1=D4=D8= =C7=C4=C5 =D1 =CD=CF=C7=D5 =CF=DB=C9=C2=C1=D4=D8=D3=D1. =F7 =C4=D7=D5=C8 =D3=CC=CF=D7=C1=C8, =CB=C1=CB =D2=C1=C2=CF=D4=C1=C0=D4 =D5= =D4=C9=CC=C9=D4=D9 =C9=DA =D3=CF=D3=D4=C1=D7=C1 libguestfs. =E4=CC=D1 =D2=C1=C2=CF=D4=D9 =D5=D4=C9=CC=C9=D4, =DA=C1=D0=D5=D3=CB=C1=C5= =D4=D3=D1 =D7=C9=D2=D4=D5=C1=CC=D8=CE=C1=D1 =CD=C1=DB=C9=CE=C1 =D3 =D0=CF= =CD=CF=DD=D8=C0 qemu, =D7 =D0=C1=D2=C1=CD=C5=D4=D2=C1=C8 =CB=CF=D4=CF=D2=CF=CA =D5=CB=C1=DA=D9=D7=C1= =C5=D4=D3=D1 =D1=C4=D2=CF =C9 =CF=C2=D2=C1=DA initrd, =D7=CE=D5=D4=D2=C9 = =CB=CF=D4=CF=D2=CF=C7=CF =D5=D3=D4=C1=CE=CF=D7=CC=C5=CE=C1 =CD=C9=CE=C9=CD=C1=CC=D8=CE=C1=D1 =D3=C9= =D3=D4=C5=CD=C1 =C9 =D5=D4=C9=CC=C9=D4=D9 =C4=CC=D1 =D2=C1=C2=CF=D4=D9 =D3 = =C6=C1=CA=CC=CF=D7=D9=CD=C9 =D3=C9=D3=D4=C5=CD=C1=CD=C9 (fsck.*, resizefs =C9 =D4.=D0.). =F7=CE=D5=D4= =D2=C9 =DC=D4=CF=CA =D7=C9=D2=D4=D5=C1=CC=CB=C9 =D4=C1=CB=D6=C5 =DA=C1=D0=D5=D3=CB=C1=C5=D4=D3=D1 =C4=C5=CD=CF=CE guestfsd =CB=CF=D4=CF=D2= =D9=CA =D0=D2=C9=CE=C9=CD=C1=C5=D4 =D5=CB=C1=DA=C1=CE=C9=D1 =D3=CE=C1=D2=D5= =D6=C9 =CF=D4 =D5=D4=C9=CC=C9=D4 =C9 =D7=D9=D0=CF=CC=CE=D1=C5=D4 =CE=C5=CF=C2=C8=CF=C4=C9= =CD=D9=C5 =C4=C5=CA=D3=D4=D7=C9=D1. =EF=D3=CE=CF=D7=CE=C1=D1 =D0=D2=CF=C2=CC=C5=CD=C1 - =D0=CF=C4=C7=CF=D4=CF= =D7=C9=D4=D8 =DC=D4=CF=D4 =D3=C1=CD=D9=CA initrd (appliance). =F7 fedora =C4=CC=D1 =C9=DA=C7=CF=D4=CF=D7=CC=C5=CE=C9=D1 appliance =C9=D3= =D0=CF=CC=D8=DA=D5=C5=D4=D3=D1 =D0=D2=CF=C5=CB=D4 supermin (=C2=D9=D7=DB=C9=CA febootstrap). =F7 =D0=D2=C9=CE=C3=C9=D0=C5 =D1 =C1=C4= =C1=D0=D4=C9=D2=CF=D7=C1=CC supermin =C4=CC=D1 =D2=C1=C2=CF=D4=D9 =D3 apt-rpm, =CE=CF =D2=C5=DB=C9=CC =CF=D4=CB=C1=DA=C1=D4=D8=D3=D1 =CF=D4 =DC= =D4=CF=C7=CF. =ED=CE=C5 =C2=CF=CC=D8=DB=C5 =D0=CF=CE=D2=C1=D7=C9=CC=D3=D1 = =D0=CF=C4=C8=CF=C4 opensuse, =C7=C4=C5 initrd (appliance) =C7=C5=CE=C5=D2=C9=D2=D5=C5=D4=D3=D1= =D3 =D0=CF=CD=CF=DD=D8=C0 mkinitrd(=D0=D2=C1=D7=C4=C1 =CD=CF=C4=C9=C6=C9=C3=C9=D2=CF=D7=C1=CE=CE=D9= =C8). =FE=D4=CF =D3=C4=C5=CC=C1=CE=CF: - =C9=D3=D0=CF=CC=D8=DA=D5=C5=D4=D3=D1 make-initrd =C9=DA master git://git.altlinux.org/people/legion/packages/make-initrd.git - =C4=CC=D1 =CE=CF=D7=CF=C7=CF make-initrd =D4=C1=CB=D6=C5 =CE=D5=D6=C5=CE= =C9 =CE=CF=D7=D9=CA sysvinit-initramfs =C9=DA master git://git.altlinux.org/people/legion/packages/sysvinit.git - =CB=CF=D0=C9=D2=D5=C5=CD =D4=C5=CB=D5=DD=C5=C5 =D1=C4=D2=CF =D7 /usr/lib6= 4/guestfs/vmlinuz.x86_64 - chmod 644 /usr/lib64/guestfs/vmlinuz.x86_64 - =C9=DA=C7=CF=D4=C1=D7=CC=C9=D7=C1=C5=CD initrd: =D7 /etc/initrd.mk.d/guestfs.mk -------- IMAGEFILE =3D /usr/$(LIBNAME)/guestfs/initramfs.$(ARCH).img FEATURES +=3D guestfs -------- =D7 /usr/share/make-initrd/features/guestfs/config.mk -------- DISABLE_FEATURES +=3D plymouth FEATURES +=3D devmapper qemu # =D7 =C4=C1=CC=D8=CE=C5=CA=DB=C5=CD =D4=C1=CB= =D6=C5 =D0=CF=CE=C1=C4=CF=C2=D1=D4=D3=D1 mdadm lvm btrfs GUESTFS_DATADIR =3D \ $(FEATURESDIR)/guestfs/data GUESTFS_FILES =3D \ /usr/sbin/guestfsd \ /usr/sbin/parted \ $(wildcard /sbin/mount*) \ $(wildcard /sbin/fsck*) \ $(wildcard /sbin/mkfs*) \ $(wildcard /sbin/*resize*) \ $(wildcard /sbin/*disk) -------- =D7 /usr/share/make-initrd/features/guestfs/rules.mk -------- MODULES_ADD +=3D drivers/scsi/ drivers/ata/ fs/ guestfs: @echo "Adding guestfs support ..." @put-tree "$(ROOTDIR)" $(GUESTFS_DATADIR) @put-file "$(ROOTDIR)" $(GUESTFS_FILES) pack: guestfs -------- =D7 /usr/share/make-initrd/features/guestfs/data/etc/rc.d/init.d/guestfsd -------- #!/bin/sh ### BEGIN INIT INFO # Provides: guestfsd # Required-Start: uevent # Should-Start: # Required-Stop: # Should-Stop: # Default-Start: 3 4 5 # Default-Stop: # Short-Description: guestfsd daemon ### END INIT INFO . /etc/init.d/template NAME=3Dguestfsd PIDFILE=3D/var/run/$NAME.pid LOCKFILE=3D/var/lock/subsys/$NAME start() { # start_daemon --lockfile "$LOCKFILE" --pidfile "$PIDFILE" --displayname "$NAME" -- $NAME start_daemon --displayname "$NAME" -- $NAME RETVAL=3D$? return $RETVAL } stop() { stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --no-announce -- $NAME RETVAL=3D$? return $RETVAL } restart() { stop start } switch "${1-}" -------- =D7 /usr/share/make-initrd/features/guestfs/data/etc/udev/rules.d ----------- # For libguestfs, create /dev/disk/guestfs/ # and /dev/disk/guestfs/ KERNEL=3D=3D"sd*[!0-9]", ENV{DEVTYPE}=3D=3D"disk", ENV{ID_SCSI_SERIAL}=3D= =3D"?*", \ SYMLINK+=3D"disk/guestfs/$env{ID_SCSI_SERIAL}" KERNEL=3D=3D"sd*", ENV{DEVTYPE}=3D=3D"partition", ENV{ID_SCSI_SERIAL}=3D=3D= "?*", \ SYMLINK+=3D"disk/guestfs/$env{ID_SCSI_SERIAL}%n" # As written, it's likely the above only works with virtio-scsi # because ID_SCSI_SERIAL is specific to the output of the 'scsi_id' # program. The following will not work because ID_SERIAL contains # some unwanted text. #KERNEL=3D=3D"vd*[!0-9]", ATTRS{serial}=3D=3D"?*", ENV{ID_SERIAL}=3D"$attr{= serial}", \ # SYMLINK+=3D"disk/guestfs/$env{ID_SERIAL}" #KERNEL=3D=3D"vd*[0-9]", ATTRS{serial}=3D=3D"?*", ENV{ID_SERIAL}=3D"$attr{s= erial}", \ # SYMLINK+=3D"disk/guestfs/$env{ID_SERIAL}%n" ----------- - make-initrd - chmod 644 /usr/lib64/guestfs/initramfs.x86_64.img initrd (appliance) =C7=CF=D4=CF=D7. =D0=D2=C9=D3=D4=D5=D0=C1=C5=CD =CB =D4= =C5=D3=D4=C9=D2=CF=D7=C1=CE=C9=C0. export LIBGUESTFS_BACKEND=3Ddirect libguestfs-test-tool =C9 =DA=C1=C7=D2=D5=DA=CB=C1 =D7=C9=D2=D4=D5=C1=CC=CB=C9 =DA=C1=CD=C5=D2=DA= =C1=C5=D4 =CE=C1 =DC=D4=C1=D0=C5 =D3=D4=C1=D2=D4=C1 udev: INIT: version 2.88 booting INIT: Entering runlevel: 3 Mounting filesystem [/dev]: \x1b[72G[ \x1b[1m\x1b[32mDONE\x1b[39;49m\x1b[0;= 10m ] Mounting filesystem [/proc]: \x1b[72G[ \x1b[1m\x1b[32mDONE\x1b[39;49m\x1b[0;10m ] Mounting filesystem [/sys]: \x1b[72G[ \x1b[1m\x1b[32mDONE\x1b[39;49m\x1b[0;= 10m ] Mounting filesystem [/run]: \x1b[72G[ \x1b[1m\x1b[32mDONE\x1b[39;49m\x1b[0;= 10m ] Mounting filesystem [/dev/pts]: \x1b[72G[ \x1b[1m\x1b[32mDONE\x1b[39;49m\x1b[0;10m ] Parsing cmdline arguments: \x1b[72G[ \x1b[1m\x1b[32mDONE\x1b[39;49m\x1b[0;1= 0m ] Creating /etc/fstab: S30fstab: Root device unspecified. \x1b[72G[\x1b[1m\x1b[31mFAILED\x1b[39;49m\x1b[0;10m] Starting lo interface: \x1b[72G[ \x1b[1m\x1b[32mDONE\x1b[39;49m\x1b[0;10m ] Starting timerd service: \x1b[72G[ \x1b[1m\x1b[32mDONE\x1b[39;49m\x1b[0;10m= ] Loading modules before udev: \x1b[72G[\x1b[1m\x1b[31mFAILED\x1b[39;49m\x1b[0;10m] Starting udevd service: =F3=C9=C7=CE=C1=CC =D4=C1=CA=CD=C5=D2=C1 =F7=CF=D4 =D4=D5=D4 =D1 =CE=C5 =D0=CF=CA=CD=D5 =D0=CF=DE=C5=CD=D5 udev =CE= =C5 =D3=D4=C1=D2=D4=D5=C5=D4, =C9 =D0=D2=CF=DB=D5 =D0=CF=C4=D3=CB=C1=DA=CB= =C9, =D3 =DE=C5=CD =DC=D4=CF =CD=CF=D6=C5=D4 =C2=D9=D4=D8 =D3=D7=D1=DA=C1=CE=CF. =E8=CF=DE=C5=D4=D3=D1 =C4=CC=D1 =CE=C1=DE=C1=CC=C1 =C4=CF=C2=C9=D4=D8=D3=D1= =D2=C1=C2=CF=D4=D9 qemu =D3 =D5=CB=C1=DA=C1=CE=C9=C5=CD =D1=C4=D2=C1 =C9 i= nitrd, =C8=CF=D4=D8 =C9 =C2=C5=DA guestfsd. /usr/bin/qemu-kvm \ -global virtio-blk-pci.scsi=3Doff \ -nodefconfig \ -enable-fips \ -nodefaults \ -display none \ -cpu host \ -machine accel=3Dkvm:tcg \ -m 500 \ -no-reboot \ -rtc driftfix=3Dslew \ -no-hpet \ -global kvm-pit.lost_tick_policy=3Ddiscard \ -kernel /usr/lib64/guestfs/vmlinuz.x86_64 \ -initrd /usr/lib64/guestfs/initramfs.x86_64.img \ -device virtio-scsi-pci,id=3Dscsi \ -drive file=3D/tmp/.private/shabalin/libguestfsrjal5E/scratch.1,cache= =3Dunsafe,format=3Draw,id=3Dhd0,if=3Dnone \ -device scsi-hd,drive=3Dhd0 \ -device virtio-serial-pci \ -serial stdio \ -device sga \ -chardev socket,path=3D/tmp/.private/shabalin/libguestfsrjal5E/guestfsd= .sock,id=3Dchannel0 \ -device virtserialport,chardev=3Dchannel0,name=3Dorg.libguestfs.channel= .0 \ -append 'panic=3D1 console=3DttyS0 udevtimeout=3D6000 udev.event-timeout=3D6000 no_timer_check acpi=3Doff printk.time=3D1 cgroup_disable=3Dmemory selinux=3D0 guestfs_verbose=3D1 TERM=3Dxterm' =F0=D2=CF=C2=CC=C5=CD=D9 =D5=D0=C1=CB=CF=D7=CB=C9 =D0=CF=CB=C1 =D4=CF=D6=C5= =D7 =CF=D4=C4=C1=CC=C5=CE=CE=CF=CD =C2=D5=C4=D5=DD=C5=CD. --=20 Alexey Shabalin