Keresztes Péter-Zoltán
2017-Mar-14 13:45 UTC
Re: [Libguestfs] virt-customize fail to inject firstboot script when running it from script.
I am running libguestfs version 1.34.2 The issue is the following. When I start the vm with virt-log I see this: Mar 13 17:33:30 multi6 firstboot.sh[358]: /usr/lib/virt-sysprep/firstboot.sh start Mar 13 17:33:30 multi6 cron[359]: (CRON) INFO (Running @reboot jobs) Mar 13 17:33:30 multi6 firstboot.sh[358]: Scripts dir: /usr/lib/virt-sysprep/scripts Mar 13 17:33:30 multi6 firstboot.sh[358]: === Running /usr/lib/virt-sysprep/scripts/0001--utilities-1041-startup-sh ==Mar 13 17:33:30 multi6 firstboot.sh[358]: /usr/lib/virt-sysprep/firstboot.sh: 35: /usr/lib/virt-sysprep/firstboot.sh: /usr/lib/virt-sysprep/scripts-done/0001--utilities-1041-startup-sh: not found The host OS is Debian jessie we have tried with multiple distributions of guests they are had the same issue. Regards, Peter> On 14 Mar 2017, at 10:58, Richard W.M. Jones <rjones@redhat.com> wrote: > > On Mon, Mar 13, 2017 at 11:48:05PM +0200, Keresztes Péter-Zoltán wrote: >> Hello, >> >> We have a nodejs app which is injecting first boot scripts using virt-customize however the exact same commands are working when triggered manually. >> >> Here is the debug output of the commands > > Which version of virt-customize? A number of bugs were fixed in this > part of the code in the last year. Furthermore we now have a > regression test which should ensure that this keeps working on Debian 8 > guests. > > Also I'm not clear about what the problem is. It looks as if > virt-customize is OK. Do you mean the script doesn't run at first > boot? > > Rich. > >> Regards, >> Peter >> >> [ 0.0] Examining the guest ... >> libguestfs: trace: set_network true >> libguestfs: trace: set_network = 0 >> libguestfs: trace: add_drive "/var/lib/vz/images/1041/vm-1041-disk-1.qcow2" "readonly:false" "protocol:file" "discard:besteffort" >> libguestfs: trace: add_drive = 0 >> libguestfs: trace: launch >> libguestfs: trace: get_tmpdir >> libguestfs: trace: get_tmpdir = "/tmp" >> libguestfs: trace: get_backend_setting "force_tcg" >> libguestfs: trace: get_backend_setting = NULL (error) >> libguestfs: trace: get_cachedir >> libguestfs: trace: get_cachedir = "/var/tmp" >> libguestfs: trace: get_cachedir >> libguestfs: trace: get_cachedir = "/var/tmp" >> libguestfs: trace: get_sockdir >> libguestfs: trace: get_sockdir = "/tmp" >> libguestfs: trace: get_backend_setting "gdb" >> libguestfs: trace: get_backend_setting = NULL (error) >> libguestfs: trace: launch = 0 >> libguestfs: trace: inspect_os >> libguestfs: trace: umount_all >> libguestfs: trace: umount_all = 0 >> libguestfs: trace: list_filesystems >> libguestfs: trace: feature_available "lvm2" >> libguestfs: trace: internal_feature_available "lvm2" >> libguestfs: trace: internal_feature_available = 0 >> libguestfs: trace: feature_available = 1 >> libguestfs: trace: feature_available "ldm" >> libguestfs: trace: internal_feature_available "ldm" >> libguestfs: trace: internal_feature_available = 1 >> libguestfs: trace: feature_available = 0 >> libguestfs: trace: list_devices >> libguestfs: trace: list_devices = ["/dev/sda"] >> libguestfs: trace: list_partitions >> libguestfs: trace: list_partitions = ["/dev/sda1", "/dev/sda2"] >> libguestfs: trace: list_md_devices >> libguestfs: trace: list_md_devices = [] >> libguestfs: trace: part_to_dev "/dev/sda1" >> libguestfs: trace: part_to_dev = "/dev/sda" >> libguestfs: trace: part_to_dev "/dev/sda2" >> libguestfs: trace: part_to_dev = "/dev/sda" >> libguestfs: trace: vfs_type "/dev/sda1" >> libguestfs: trace: vfs_type = "ext4" >> libguestfs: trace: vfs_type "/dev/sda2" >> libguestfs: trace: vfs_type = "ext4" >> libguestfs: trace: lvs >> libguestfs: trace: lvs = [] >> libguestfs: trace: list_filesystems = ["/dev/sda1", "ext4", "/dev/sda2", "ext4"] >> libguestfs: trace: vfs_type "/dev/sda1" >> libguestfs: trace: vfs_type = "ext4" >> libguestfs: trace: internal_parse_mountable "/dev/sda1" >> libguestfs: trace: internal_parse_mountable = <struct guestfs_internal_mountable = im_type: 0, im_device: /dev/sda1, im_volume: , > >> libguestfs: trace: is_whole_device "/dev/sda1" >> libguestfs: trace: is_whole_device = 0 >> libguestfs: trace: mount_ro "/dev/sda1" "/" >> libguestfs: trace: mount_ro = 0 >> libguestfs: trace: part_to_dev "/dev/sda1" >> libguestfs: trace: part_to_dev = "/dev/sda" >> libguestfs: trace: device_index "/dev/sda" >> libguestfs: trace: device_index = 0 >> libguestfs: trace: part_to_partnum "/dev/sda1" >> libguestfs: trace: part_to_partnum = 1 >> libguestfs: trace: part_to_dev "/dev/sda1" >> libguestfs: trace: part_to_dev = "/dev/sda" >> libguestfs: trace: part_list "/dev/sda" >> libguestfs: trace: part_list = <struct guestfs_partition_list(2) = [0]{part_num: 1, part_start: 1048576, part_end: 500170751, part_size: 499122176, } [1]{part_num: 2, part_start: 500170752, part_end: 10736369663, part_size: 10236198912, }> >> libguestfs: trace: is_dir "/etc" >> libguestfs: trace: is_dir = 0 >> libguestfs: trace: is_dir "/bin" >> libguestfs: trace: is_dir = 0 >> libguestfs: trace: is_dir "/share" >> libguestfs: trace: is_dir = 0 >> libguestfs: trace: is_file "/grub/menu.lst" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: is_file "/grub/grub.conf" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: is_file "/grub2/grub.cfg" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: is_file "/hurd/console" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: is_dir "/log" >> libguestfs: trace: is_dir = 0 >> libguestfs: trace: case_sensitive_path "/windows" >> libguestfs: trace: case_sensitive_path = "/windows" >> libguestfs: trace: case_sensitive_path "/windows/system32" >> libguestfs: trace: case_sensitive_path = NULL (error) >> libguestfs: trace: case_sensitive_path "/winnt" >> libguestfs: trace: case_sensitive_path = "/winnt" >> libguestfs: trace: case_sensitive_path "/winnt/system32" >> libguestfs: trace: >> case_sensitive_path = NULL (error) >> libguestfs: trace: >> case_sensitive_path "/win32" >> libguestfs: trace: case_sensitive_path = "/win32" >> libguestfs: trace: case_sensitive_path "/win32/system32" >> libguestfs: trace: case_sensitive_path = NULL (error) >> libguestfs: trace: case_sensitive_path "/win" >> libguestfs: trace: case_sensitive_path = "/win" >> libguestfs: trace: case_sensitive_path "/win/system32" >> libguestfs: trace: case_sensitive_path = NULL (error) >> libguestfs: >> trace: case_sensitive_path "/reactos" >> libguestfs: trace: case_sensitive_path = "/reactos" >> libguestfs: trace: case_sensitive_path "/reactos/system32" >> libguestfs: trace: case_sensitive_path = NULL (error) >> libguestfs: trace: case_sensitive_path "/boot.ini" >> libguestfs: trace: case_sensitive_path = "/boot.ini" >> libguestfs: trace: is_file "/boot.ini" >> libguestfs: trace: is_file = 0 >> libguestfs: >> trace: case_sensitive_path "/System Volume Information" >> libguestfs: trace: case_sensitive_path = "/System Volume Information" >> libguestfs: trace: is_dir "/System Volume Information" >> libguestfs: trace: is_dir = 0 >> libguestfs: trace: >> case_sensitive_path "/System Volume Information" >> libguestfs: trace: case_sensitive_path = "/System Volume Information" >> libguestfs: trace: is_dir "/System Volume Information" >> libguestfs: trace: is_dir = 0 >> libguestfs: trace: case_sensitive_path "/FDOS" >> libguestfs: trace: case_sensitive_path = "/FDOS" >> libguestfs: trace: is_dir "/FDOS" >> libguestfs: trace: is_dir = 0 >> libguestfs: trace: umount_all >> libguestfs: trace: umount_all = 0 >> libguestfs: trace: vfs_type "/dev/sda2" >> libguestfs: trace: vfs_type = "ext4" >> libguestfs: trace: internal_parse_mountable "/dev/sda2" >> libguestfs: trace: internal_parse_mountable = <struct guestfs_internal_mountable = im_type: 0, im_device: /dev/sda2, im_volume: , > >> libguestfs: trace: is_whole_device "/dev/sda2" >> libguestfs: trace: is_whole_device = 0 >> libguestfs: trace: mount_ro "/dev/sda2" "/" >> libguestfs: trace: mount_ro = 0 >> libguestfs: trace: part_to_dev "/dev/sda2" >> libguestfs: trace: part_to_dev = "/dev/sda" >> libguestfs: trace: device_index "/dev/sda" >> libguestfs: trace: device_index = 0 >> libguestfs: trace: part_to_partnum "/dev/sda2" >> libguestfs: trace: part_to_partnum = 2 >> libguestfs: trace: part_to_dev "/dev/sda2" >> libguestfs: trace: part_to_dev = "/dev/sda" >> libguestfs: trace: part_list "/dev/sda" >> libguestfs: trace: part_list = <struct guestfs_partition_list(2) = [0]{part_num: 1, part_start: 1048576, part_end: 500170751, part_size: 499122176, } [1]{part_num: 2, part_start: 500170752, part_end: 10736369663, part_size: 10236198912, }> >> libguestfs: trace: is_dir "/etc" >> libguestfs: trace: is_dir = 1 >> libguestfs: trace: is_dir "/bin" >> libguestfs: trace: is_dir = 1 >> libguestfs: trace: is_dir "/share" >> libguestfs: trace: is_dir = 0 >> libguestfs: trace: is_file "/grub/menu.lst" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: is_file "/grub/grub.conf" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: is_file "/grub2/grub.cfg" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: is_file "/etc/freebsd-update.conf" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: is_file "/netbsd" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: is_file "/bsd" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: is_file "/hurd/console" >> libguestfs: trace: is_file = 0 >> libguestfs: >> trace: is_file "/service/vm" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: is_file "/etc/fstab" >> libguestfs: trace: is_file = 1 >> libguestfs: trace: is_file "/etc/os-release" "followsymlinks:true" >> libguestfs: trace: is_file = 1 >> libguestfs: trace: filesize "/etc/os-release" >> libguestfs: trace: filesize = 233 >> libguestfs: trace: read_lines "/etc/os-release" >> libguestfs: trace: read_file "/etc/os-release" >> libguestfs: trace: download "/etc/os-release" "/tmp/libguestfsTQwKl0/cat1" >> libguestfs: trace: download = 0 >> libguestfs: trace: read_file = "PRETTY_NAME="Debian GNU/Linux 8 (jessie)"\x0aNAME="Debian GNU/Linux"\x0aVERSION_ID="8"\x0aVERSION="8 (jessie)"\x0aID=debian\x0aHOME_URL="http://www.debian.org/"\x0aSUPPORT_URL="http://www.debian.org/support/"\x0aBUG_REPORT_URL="https://bugs.debian.org/"\x0a" >> libguestfs: trace: read_lines = ["PRETTY_NAME="Debian GNU/Linux 8 (jessie)"", "NAME="Debian GNU/Linux"", "VERSION_ID="8"", "VERSION="8 (jessie)"", "ID=debian", "HOME_URL="http://www.debian.org/"", "SUPPORT_URL="http://www.debian.org/support/"", "BUG_REPORT_URL="https://bugs.debian.org/""] >> libguestfs: trace: is_file "/etc/lsb-release" "followsymlinks:true" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: is_file "/etc/oracle-release" "followsymlinks:true" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: is_file "/etc/centos-release" "followsymlinks:true" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: is_file "/etc/altlinux-release" "followsymlinks:true" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: is_file "/etc/redhat-release" "followsymlinks:true" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: is_file "/etc/debian_version" "followsymlinks:true" >> libguestfs: trace: is_file = 1 >> libguestfs: trace: filesize "/etc/debian_version" >> libguestfs: trace: filesize = 4 >> libguestfs: trace: head_n 1 "/etc/debian_version" >> libguestfs: trace: head_n = ["8.1"] >> libguestfs: trace: is_file "/bin/bash" "followsymlinks:true" >> libguestfs: trace: is_file = 1 >> libguestfs: trace: realpath "/bin/bash" >> libguestfs: trace: realpath = "/bin/bash" >> libguestfs: trace: file_architecture "/bin/bash" >> libguestfs: trace: file "/bin/bash" >> libguestfs: trace: file = "ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=a8ff57737fe60fba639d91d603253f4cdc6eb9f7, stripped" >> libguestfs: trace: file_architecture = "x86_64" >> libguestfs: trace: is_file "/etc/fstab" "followsymlinks:true" >> libguestfs: trace: is_file = 1 >> libguestfs: trace: filesize "/etc/fstab" >> libguestfs: trace: filesize = 665 >> libguestfs: trace: is_file "/etc/mdadm.conf" "followsymlinks:true" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: aug_init "/" 48 >> libguestfs: trace: aug_init = 0 >> libguestfs: trace: aug_rm "/augeas/load/*[ "/etc/fstab/" !~ regexp('^') + glob(incl) + regexp('/.*') and "/etc/mdadm.conf/" !~ regexp('^') + glob(incl) + regexp('/.*') ]" >> libguestfs: trace: aug_rm = 1191 >> libguestfs: trace: aug_load >> libguestfs: trace: aug_load = 0 >> libguestfs: trace: aug_match "/augeas/files//error" >> libguestfs: trace: aug_match = [] >> libguestfs: trace: list_md_devices >> libguestfs: trace: list_md_devices = [] >> libguestfs: trace: aug_match "/files/etc/fstab/*[label() != '#comment']" >> libguestfs: trace: aug_match = ["/files/etc/fstab/1", "/files/etc/fstab/2", "/files/etc/fstab/3"] >> libguestfs: trace: aug_get "/files/etc/fstab/1/spec" >> libguestfs: trace: aug_get = "UUID=a1d1d2db-71f3-4354-95ba-fc582e84c26e" >> libguestfs: trace: aug_get "/files/etc/fstab/1/file" >> libguestfs: trace: aug_get = "/" >> libguestfs: trace: findfs_uuid "a1d1d2db-71f3-4354-95ba-fc582e84c26e" >> libguestfs: trace: findfs_uuid = "/dev/sda2" >> libguestfs: trace: aug_get "/files/etc/fstab/1/vfstype" >> libguestfs: trace: aug_get = "ext4" >> libguestfs: trace: aug_get "/files/etc/fstab/2/spec" >> libguestfs: trace: aug_get = "UUID=9b14f996-b8a0-4cdc-9dcc-946ebcd8fc5e" >> libguestfs: >> trace: aug_get "/files/etc/fstab/2/file" >> libguestfs: trace: aug_get = "/boot" >> libguestfs: trace: findfs_uuid "9b14f996-b8a0-4cdc-9dcc-946ebcd8fc5e" >> libguestfs: trace: findfs_uuid = "/dev/sda1" >> libguestfs: trace: aug_get "/files/etc/fstab/2/vfstype" >> libguestfs: trace: aug_get = "ext4" >> libguestfs: trace: aug_get "/files/etc/fstab/3/spec" >> libguestfs: trace: aug_get = "/dev/sr0" >> libguestfs: trace: aug_get "/files/etc/fstab/3/file" >> libguestfs: trace: aug_get = "/media/cdrom0" >> libguestfs: trace: aug_close >> libguestfs: trace: aug_close = 0 >> libguestfs: trace: is_file "/etc/HOSTNAME" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: is_file "/etc/hostname" >> libguestfs: trace: is_file = 1 >> libguestfs: trace: filesize "/etc/hostname" >> libguestfs: trace: filesize = 6 >> libguestfs: trace: head_n 1 "/etc/hostname" >> libguestfs: trace: head_n = ["multi6"] >> libguestfs: trace: umount_all >> libguestfs: trace: umount_all = 0 >> libguestfs: trace: inspect_get_roots >> libguestfs: trace: inspect_get_roots = ["/dev/sda2"] >> libguestfs: trace: inspect_os = ["/dev/sda2"] >> libguestfs: trace: inspect_get_mountpoints "/dev/sda2" >> libguestfs: trace: inspect_get_mountpoints = ["/", "/dev/sda2", "/boot", "/dev/sda1"] >> libguestfs: trace: mount "/dev/sda2" "/" >> libguestfs: trace: mount = 0 >> libguestfs: trace: mount "/dev/sda1" "/boot" >> libguestfs: trace: mount = 0 >> libguestfs: trace: inspect_get_arch "/dev/sda2" >> libguestfs: trace: inspect_get_arch = "x86_64" >> libguestfs: trace: inspect_get_type "/dev/sda2" >> libguestfs: trace: inspect_get_type = "linux" >> libguestfs: trace: is_dir "/tmp" "followsymlinks:true" >> libguestfs: trace: is_dir = 1 >> libguestfs: trace: inspect_get_type "/dev/sda2" >> libguestfs: trace: inspect_get_type = "linux" >> libguestfs: trace: is_file "/var/lib/random-seed" >> [ 3.4] Setting a random seed >> libguestfs: trace: is_file = 0 >> libguestfs: >> trace: is_file "/var/lib/systemd/random-seed" >> libguestfs: trace: is_file = 1 >> libguestfs: trace: filesize "/var/lib/systemd/random-seed" >> libguestfs: trace: filesize = 512 >> libguestfs: trace: truncate "/var/lib/systemd/random-seed" >> libguestfs: trace: truncate = 0 >> libguestfs: trace: write_append "/var/lib/systemd/random-seed" "\x9e\x92\xa5\xae\xa3\x13\xb3Qt'\x1fn\x00\xd9\xf6\xcd\x1cYP\x14U\x1b\xfbc\xdd\xa2\x95\xd1\xdf\x0d\x94\xf7\xb8\xba$\x18z \xe2,\xd3\xd0u\xb9F\xd9\x87G\x8c\x16S\x90q\xf12(a\x89\xb1\xab\x8b\xd4\xd4M\xc4\xc6\xb0\x186\xe2A\x09\x99\xd1\xb8;\xee\x9b\xef\xee\x01co$\xfe\xf0I\xd5\x1a\xac{C&:y\xc8\xf2\xf5H\xe116\x97$\x02\xc9\xc0u\xcf7\x094\xb0SM\x8d\x0f\x0b\xc8\xf1\x1e\xae\xe0`\xbe\x87\x97\xc6\xf1\x07E\x99G\x1b\x89\x9c\x14\xfcx\xcd\xaf[[_\xc6%\x99:H\xba,4\xd4~\x0d\xb7\xf03<\xd5\x15\xef/\xa8T\xf6L\xee\xa9A\x8d\xa7\xc48r*\x0c\x9f\xde\x10/\xb0\x1a<@\xa8]2\x94{\xf0\x97S\xd6'\xc4\x1d\xff\xb5Y\x9bV\x0b`\x8d\x8d\xab\xd3\x02\x99z\xf3\x88\xff\xa1\xf7\x9et\xe3\xd0\xa9\xd9x\x19\xa4\x9c)P\x02z\xd7[K|f\x06-U%\x11\xf17\xedha\xb6\xf8f\x1b\xc5\x8fM\xab1;5"<truncated, original size 512 bytes> >> libguestfs: trace: internal_write_append "/var/lib/systemd/random-seed" "\x9e\x92\xa5\xae\xa3\x13\xb3Qt'\x1fn\x00\xd9\xf6\xcd\x1cYP\x14U\x1b\xfbc\xdd\xa2\x95\xd1\xdf\x0d\x94\xf7\xb8\xba$\x18z \xe2,\xd3\xd0u\xb9F\xd9\x87G\x8c\x16S\x90q\xf12(a\x89\xb1\xab\x8b\xd4\xd4M\xc4\xc6\xb0\x186\xe2A\x09\x99\xd1\xb8;\xee\x9b\xef\xee\x01co$\xfe\xf0I\xd5\x1a\xac{C&:y\xc8\xf2\xf5H\xe116\x97$\x02\xc9\xc0u\xcf7\x094\xb0SM\x8d\x0f\x0b\xc8\xf1\x1e\xae\xe0`\xbe\x87\x97\xc6\xf1\x07E\x99G\x1b\x89\x9c\x14\xfcx\xcd\xaf[[_\xc6%\x99:H\xba,4\xd4~\x0d\xb7\xf03<\xd5\x15\xef/\xa8T\xf6L\xee\xa9A\x8d\xa7\xc48r*\x0c\x9f\xde\x10/\xb0\x1a<@\xa8]2\x94{\xf0\x97S\xd6'\xc4\x1d\xff\xb5Y\x9bV\x0b`\x8d\x8d\xab\xd3\x02\x99z\xf3\x88\xff\xa1\xf7\x9et\xe3\xd0\xa9\xd9x\x19\xa4\x9c)P\x02z\xd7[K|f\x06-U%\x11\xf17\xedha\xb6\xf8f\x1b\xc5\x8fM\xab1;5"<truncated, original size 512 bytes> >> libguestfs: trace: internal_write_append = 0 >> libguestfs: trace: write_append = 0 >> libguestfs: trace: is_file "/var/lib/urandom/random-seed" >> libguestfs: trace: is_file = 1 >> libguestfs: trace: filesize "/var/lib/urandom/random-seed" >> libguestfs: trace: filesize = 512 >> libguestfs: trace: truncate "/var/lib/urandom/random-seed" >> libguestfs: trace: truncate = 0 >> libguestfs: trace: write_append "/var/lib/urandom/random-seed" "\x87}\x96\x13\xa73\xd6\xc8\x7f\x93\xd0)\x1d\xcd\xf1\xab\xca?`[u\x80\x0b\xd4\xebIwC\xd2\x94\xfcm\xc9!\x0fj\x04\xe9\x92h\xdc\xf5\x07\xc3\xc5\xd4\xae\x1f\xff\xc9\xb0K%\x9f\xad\xff{Y\xbfT\xb2\x92\x0b\x03\xde<\xb2\xfe\xc7\xeb\x01\xb6\xd4!\xdb\xb1\x18\x1d6\xa9\xb9SO#\xae8\xb80\x1b|\xa4\xc3V\xda\x0e%\x81\xc1\x9a\xbfS\xa5\xeb\x94\xb9\xf0{\xe8 \xcb|\x00\xe8\xe2-\xfa\x87\x15\xbe\x96\xbb\xffW#\\x84\x83\x8c\x06C\xf9\xb7\xb9\xff!\x8c\x18\x17\xd92\x1a\xd6W\xc0\xab\x11\x04\x09G\xacG/\xd7\xe6g9\xd4\xbc\xa2gz\xee\x06s+\x8bn\xb9\xa0\x94&L\xec\x7f\xbde)\xaf\xfa\xd6kt\xa06R&\xd6+-$\x0b\xaa\xf7\xf2i?\x1bnl\x0f8\xb9Kx\x0d\xb3\xf4\x0d\xae\xe0\x8a\x19\x1f\x05d2)\x88\xdb/\x9f\x1a"\x9b \xfc\xcf\xf87\xa5\x82\x18\x1a\x0d\xbf\xc7X7\x17%F\xa3~\xa9\xba^\x80H\xea\x11\xd9\xce\xf0\x98\xd7V"<truncated, original size 512 bytes> >> libguestfs: trace: internal_write_append "/var/lib/urandom/random-seed" "\x87}\x96\x13\xa73\xd6\xc8\x7f\x93\xd0)\x1d\xcd\xf1\xab\xca?`[u\x80\x0b\xd4\xebIwC\xd2\x94\xfcm\xc9!\x0fj\x04\xe9\x92h\xdc\xf5\x07\xc3\xc5\xd4\xae\x1f\xff\xc9\xb0K%\x9f\xad\xff{Y\xbfT\xb2\x92\x0b\x03\xde<\xb2\xfe\xc7\xeb\x01\xb6\xd4!\xdb\xb1\x18\x1d6\xa9\xb9SO#\xae8\xb80\x1b|\xa4\xc3V\xda\x0e%\x81\xc1\x9a\xbfS\xa5\xeb\x94\xb9\xf0{\xe8 \xcb|\x00\xe8\xe2-\xfa\x87\x15\xbe\x96\xbb\xffW#\\x84\x83\x8c\x06C\xf9\xb7\xb9\xff!\x8c\x18\x17\xd92\x1a\xd6W\xc0\xab\x11\x04\x09G\xacG/\xd7\xe6g9\xd4\xbc\xa2gz\xee\x06s+\x8bn\xb9\xa0\x94&L\xec\x7f\xbde)\xaf\xfa\xd6kt\xa06R&\xd6+-$\x0b\xaa\xf7\xf2i?\x1bnl\x0f8\xb9Kx\x0d\xb3\xf4\x0d\xae\xe0\x8a\x19\x1f\x05d2)\x88\xdb/\x9f\x1a"\x9b \xfc\xcf\xf87\xa5\x82\x18\x1a\x0d\xbf\xc7X7\x17%F\xa3~\xa9\xba^\x80H\xea\x11\xd9\xce\xf0\x98\xd7V"<truncated, original size 512 bytes> >> libguestfs: trace: internal_write_append = 0 >> libguestfs: trace: write_append = 0 >> libguestfs: trace: is_file "/var/lib/misc/random-seed" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: is_file "/etc/random-seed" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: inspect_get_type "/dev/sda2" >> libguestfs: trace: inspect_get_type = "linux" >> libguestfs: trace: inspect_get_distro "/dev/sda2" >> libguestfs: trace: inspect_get_distro = "debian" >> libguestfs: trace: inspect_get_major_version "/dev/sda2" >> libguestfs: trace: inspect_get_major_version = 8 >> libguestfs: trace: mkdir_p "/usr/lib/virt-sysprep" >> [ 3.4] Installing firstboot script: /utilities/1041/startup.sh >> libguestfs: trace: mkdir_p = 0 >> libguestfs: trace: mkdir_p "/usr/lib/virt-sysprep/scripts" >> libguestfs: trace: mkdir_p = 0 >> libguestfs: trace: write "/usr/lib/virt-sysprep/firstboot.sh" "#!/bin/sh -\x0a\x0a### BEGIN INIT INFO\x0a# Provides: virt-sysprep\x0a# Required-Start: $null\x0a# Should-Start: $all\x0a# Required-Stop: $null\x0a# Should-Stop: $all\x0a# Default-Start: 2 3 5\x0a# Default-Stop: 0 1 6\x0a# Short-Description: Start sc"<truncated, original size 1099 bytes> >> libguestfs: trace: internal_write "/usr/lib/virt-sysprep/firstboot.sh" "#!/bin/sh -\x0a\x0a### BEGIN INIT INFO\x0a# Provides: virt-sysprep\x0a# Required-Start: $null\x0a# Should-Start: $all\x0a# Required-Stop: $null\x0a# Should-Stop: $all\x0a# Default-Start: 2 3 5\x0a# Default-Stop: 0 1 6\x0a# Short-Description: Start sc"<truncated, original size 1099 bytes> >> libguestfs: trace: internal_write = 0 >> libguestfs: trace: write = 0 >> libguestfs: trace: chmod 493 "/usr/lib/virt-sysprep/firstboot.sh" >> libguestfs: trace: chmod = 0 >> libguestfs: trace: is_dir "/etc/systemd/system" >> libguestfs: trace: is_dir = 1 >> libguestfs: trace: mkdir_p "/usr/lib/systemd/system" >> libguestfs: trace: mkdir_p = 0 >> libguestfs: trace: write "/usr/lib/systemd/system/guestfs-firstboot.service" "[Unit]\x0aDescription=libguestfs firstboot service\x0aAfter=network.target\x0aBefore=prefdm.service\x0a\x0a[Service]\x0aType=oneshot\x0aExecStart=/usr/lib/virt-sysprep/firstboot.sh start\x0aRemainAfterExit=yes\x0aStandardOutput=journal+console\x0aStandardError=inherit\x0a\x0a[Install]\x0aWanted"<truncated, original size 274 bytes> >> libguestfs: trace: internal_write "/usr/lib/systemd/system/guestfs-firstboot.service" "[Unit]\x0aDescription=libguestfs firstboot service\x0aAfter=network.target\x0aBefore=prefdm.service\x0a\x0a[Service]\x0aType=oneshot\x0aExecStart=/usr/lib/virt-sysprep/firstboot.sh start\x0aRemainAfterExit=yes\x0aStandardOutput=journal+console\x0aStandardError=inherit\x0a\x0a[Install]\x0aWanted"<truncated, original size 274 bytes> >> libguestfs: trace: internal_write = 0 >> libguestfs: trace: write = 0 >> libguestfs: trace: mkdir_p "/etc/systemd/system/default.target.wants" >> libguestfs: trace: mkdir_p = 0 >> libguestfs: trace: ln_sf "/usr/lib/systemd/system/guestfs-firstboot.service" "/etc/systemd/system/default.target.wants" >> libguestfs: trace: ln_sf = 0 >> libguestfs: trace: is_file "/usr/lib/systemd/system/firstboot.service" >> libguestfs: trace: is_file = 0 >> libguestfs: trace: is_dir "/etc/rc.d" >> libguestfs: trace: is_dir = 0 >> libguestfs: trace: is_dir "/etc/init.d" >> libguestfs: trace: is_dir = 1 >> libguestfs: trace: mkdir_p "/etc/init.d" >> libguestfs: trace: mkdir_p = 0 >> libguestfs: trace: mkdir_p "/etc/rc2.d" >> libguestfs: trace: mkdir_p = 0 >> libguestfs: trace: mkdir_p "/etc/rc3.d" >> libguestfs: trace: mkdir_p = 0 >> libguestfs: trace: mkdir_p "/etc/rc5.d" >> libguestfs: trace: mkdir_p = 0 >> libguestfs: trace: ln_sf "/usr/lib/virt-sysprep/firstboot.sh" "/etc/init.d/guestfs-firstboot" >> libguestfs: trace: ln_sf = 0 >> libguestfs: trace: ln_sf "../init.d/guestfs-firstboot" "/etc/rc2.d/S99guestfs-firstboot" >> libguestfs: trace: ln_sf = 0 >> libguestfs: trace: ln_sf "../init.d/guestfs-firstboot" "/etc/rc3.d/S99guestfs-firstboot" >> libguestfs: trace: ln_sf = 0 >> libguestfs: trace: ln_sf "../init.d/guestfs-firstboot" "/etc/rc5.d/S99guestfs-firstboot" >> libguestfs: trace: ln_sf = 0 >> libguestfs: trace: rm_f "/etc/init.d/virt-sysprep-firstboot" >> libguestfs: trace: rm_f = 0 >> libguestfs: trace: rm_f "/etc/rc2.d/S99virt-sysprep-firstboot" >> libguestfs: trace: rm_f = 0 >> libguestfs: trace: rm_f "/etc/rc3.d/S99virt-sysprep-firstboot" >> libguestfs: trace: rm_f = 0 >> libguestfs: trace: rm_f "/etc/rc5.d/S99virt-sysprep-firstboot" >> libguestfs: trace: rm_f = 0 >> libguestfs: trace: write "/usr/lib/virt-sysprep/scripts/0001--utilities-1041-startup-sh" "#!/bin/bash\x0d\x0aecho "This is another startup script test" | tee -a /etc/issue\x0d\x0aecho "This is another startup script test" | tee -a /etc/issue.net\x0d\x0aecho "This is a motd startup test" | tee -a /etc/motd" >> libguestfs: trace: internal_write "/usr/lib/virt-sysprep/scripts/0001--utilities-1041-startup-sh" "#!/bin/bash\x0d\x0aecho "This is another startup script test" | tee -a /etc/issue\x0d\x0aecho "This is another startup script test" | tee -a /etc/issue.net\x0d\x0aecho "This is a motd startup test" | tee -a /etc/motd" >> libguestfs: trace: internal_write = 0 >> libguestfs: trace: >> write = 0 >> libguestfs: trace: chmod 493 "/usr/lib/virt-sysprep/scripts/0001--utilities-1041-startup-sh" >> libguestfs: trace: chmod = 0 >> libguestfs: trace: debug "sh" "fuser -k /sysroot" >> libguestfs: trace: debug = NULL (error) >> libguestfs: trace: ping_daemon >> libguestfs: trace: ping_daemon = 0 >> libguestfs: trace: umount_all >> libguestfs: trace: umount_all = 0 >> libguestfs: trace: shutdown >> libguestfs: trace: internal_autosync >> [ 3.4] Finishing off >> libguestfs: trace: internal_autosync = 0 >> libguestfs: trace: shutdown = 0 >> libguestfs: trace: close >> 0 >> Startup Script Exec - virt-customize -x -a /var/lib/vz/images/1041/vm-1041-disk-1.qcow2 --firstboot=/utilities/1041/startup.sh >> Startup Script stdout - [ 0.0] Examining the guest ... >> [ 3.4] Setting a random seed >> [ 3.4] Installing firstboot script: /utilities/1041/startup.sh >> [ 3.4] Finishing off >> >> >> _______________________________________________ >> Libguestfs mailing list >> Libguestfs@redhat.com >> https://www.redhat.com/mailman/listinfo/libguestfs > > -- > Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones > Read my programming and virtualization blog: http://rwmj.wordpress.com > virt-df lists disk usage of guests without needing to install any > software inside the virtual machine. Supports Linux and Windows. > http://people.redhat.com/~rjones/virt-df/
Richard W.M. Jones
2017-Mar-14 14:14 UTC
Re: [Libguestfs] virt-customize fail to inject firstboot script when running it from script.
On Tue, Mar 14, 2017 at 03:45:34PM +0200, Keresztes Péter-Zoltán wrote:> I am running libguestfs version 1.34.2As far as I know, this version should contain all the fixes for Debian firstboot issues, in particular the ones related to https://bugzilla.redhat.com/1019388> The issue is the following. When I start the vm with virt-log I see this: > > Mar 13 17:33:30 multi6 firstboot.sh[358]: /usr/lib/virt-sysprep/firstboot.sh start > Mar 13 17:33:30 multi6 cron[359]: (CRON) INFO (Running @reboot jobs) > Mar 13 17:33:30 multi6 firstboot.sh[358]: Scripts dir: /usr/lib/virt-sysprep/scripts > Mar 13 17:33:30 multi6 firstboot.sh[358]: === Running /usr/lib/virt-sysprep/scripts/0001--utilities-1041-startup-sh ==> Mar 13 17:33:30 multi6 firstboot.sh[358]: /usr/lib/virt-sysprep/firstboot.sh: 35: /usr/lib/virt-sysprep/firstboot.sh: /usr/lib/virt-sysprep/scripts-done/0001--utilities-1041-startup-sh: not foundI wonder if it's because the script contains a hash-bang path to a non-existing interpreter. IOW if the script starts with `#!/bin/bash' then you would have to install bash in the guest. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-builder quickly builds VMs from scratch http://libguestfs.org/virt-builder.1.html
Keresztes Péter-Zoltán
2017-Mar-14 14:46 UTC
Re: [Libguestfs] virt-customize fail to inject firstboot script when running it from script.
We are enforcing #!/bin/bash at the beginning of the scripts and bash is installed in every guest. Regards, Peter 2017. márc. 14. dátummal, 16:14 időpontban Richard W.M. Jones <rjones@redhat.com> írta:>> On Tue, Mar 14, 2017 at 03:45:34PM +0200, Keresztes Péter-Zoltán wrote: >> I am running libguestfs version 1.34.2 > > As far as I know, this version should contain all the fixes for Debian > firstboot issues, in particular the ones related to > https://bugzilla.redhat.com/1019388 > >> The issue is the following. When I start the vm with virt-log I see this: >> >> Mar 13 17:33:30 multi6 firstboot.sh[358]: /usr/lib/virt-sysprep/firstboot.sh start >> Mar 13 17:33:30 multi6 cron[359]: (CRON) INFO (Running @reboot jobs) >> Mar 13 17:33:30 multi6 firstboot.sh[358]: Scripts dir: /usr/lib/virt-sysprep/scripts >> Mar 13 17:33:30 multi6 firstboot.sh[358]: === Running /usr/lib/virt-sysprep/scripts/0001--utilities-1041-startup-sh ==>> Mar 13 17:33:30 multi6 firstboot.sh[358]: /usr/lib/virt-sysprep/firstboot.sh: 35: /usr/lib/virt-sysprep/firstboot.sh: /usr/lib/virt-sysprep/scripts-done/0001--utilities-1041-startup-sh: not found > > I wonder if it's because the script contains a hash-bang path to a > non-existing interpreter. IOW if the script starts with `#!/bin/bash' > then you would have to install bash in the guest. > > Rich. > > -- > Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones > Read my programming and virtualization blog: http://rwmj.wordpress.com > virt-builder quickly builds VMs from scratch > http://libguestfs.org/virt-builder.1.html
Reasonably Related Threads
- Re: virt-customize fail to inject firstboot script when running it from script.
- Re: virt-customize fail to inject firstboot script when running it from script.
- Re: virt-customize fail to inject firstboot script when running it from script.
- Re: virt-customize fail to inject firstboot script when running it from script.
- Re: virt-customize fail to inject firstboot script when running it from script.