Re: perform_initrd_injections does not work

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Finally it seems the xen toolstack is not able to handle concaticated gzip files at all, is there any way to push the modified cpio archive unzipped to the VM?


Am 21.12.2017 um 15:32 schrieb Claus Rosenberger:
Changing the code from

   cpio_proc.wait()
   find_proc.wait()
   gzip_proc.wait()

to

   find_proc.wait()
   cpio_proc.wait()
   gzip_proc.wait()

did it, the file is injected now. But the VM still prevents to start, because of the concatted gzip files?

Am 21.12.2017 um 12:09 schrieb Claus Rosenberger:
Hi,

i figured out the function perform_initrd_injections does extend the
existing initrd with a few bytes, but the file to be injected is not inside of the new generated initrd. Further it's not possible to boot the VM with
the new generated initrd. But both files are still a gzipped ASCII cpio
archive (SVR4 with no CRC). I can deflate the new generated file manually.

Do you have any clue what could be the issue? virt-install is working
without injecting the preseed.cfg file.

-rw-------  1 root root 133426176 Dec 19 18:29 initrd-new
-rw-------  1 root root 133425664 Dec 19 18:29 initrd-old

root@ /tmp # hexdump -s 133425664 -C initrd-new
07f3ea00  30 37 30 37 30 31 30 30  30 30 30 30 30 30 30 30 |0707010000000000| 07f3ea10  30 30 30 30 30 30 30 30  30 30 30 30 30 30 30 30 |0000000000000000| 07f3ea20  30 30 30 30 30 30 30 30  30 30 30 30 30 31 30 30 |0000000000000100| 07f3ea30  30 30 30 30 30 30 30 30  30 30 30 30 30 30 30 30 |0000000000000000|
*
07f3ea60  30 30 30 30 30 42 30 30  30 30 30 30 30 30 54 52 |00000B00000000TR| 07f3ea70  41 49 4c 45 52 21 21 21  00 00 00 00 00 00 00 00 |AILER!!!........| 07f3ea80  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 |................|
*
07f3ec00


Kind regards
Claus


def perform_initrd_injections(initrd, injections, scratchdir):
    """
    Insert files into the root directory of the initial ram disk
    """
    if not injections:
        return

    if _rhel4_initrd_inject(initrd, injections):
        return

    tempdir = tempfile.mkdtemp(dir=scratchdir)
    os.chmod(tempdir, 0775)
    shutil.copy(initrd, '/tmp/initrd-old.gz')     # <------ this file works to boot the VM

    for filename in injections:
        logging.debug("Copying %s to the initrd.", filename)
        shutil.copy(filename, tempdir)

    logging.debug("Appending to the initrd.")
    find_proc = subprocess.Popen(['find', '.', '-print0'],
                                 stdout=subprocess.PIPE,
                                 stderr=subprocess.PIPE,
                                 cwd=tempdir)
    logging.debug("Found file %s with find_proc.", find_proc.stdout.read())     cpio_proc = subprocess.Popen(['cpio', '-o', '--null', '-Hnewc','--quiet'],
                                 stdin=find_proc.stdout,
                                 stdout=subprocess.PIPE,
                                 stderr=subprocess.PIPE,
                                 cwd=tempdir)
    f = open(initrd, 'ab')
    gzip_proc = subprocess.Popen(['gzip'], stdin=cpio_proc.stdout,
                                 stdout=f, stderr=subprocess.PIPE)
    cpio_proc.wait()
    find_proc.wait()
    gzip_proc.wait()
    f.close()
    shutil.rmtree(tempdir)
    # copy injected initrd
    shutil.copy(initrd, '/tmp/initrd-new.gz')     # <------ this file doesn't work to boot the VM


    finderr = find_proc.stderr.read()
    cpioerr = cpio_proc.stderr.read()
    gziperr = gzip_proc.stderr.read()
    if finderr:
        logging.debug("find stderr=%s", finderr)
    if cpioerr:
        logging.debug("cpio stderr=%s", cpioerr)
    if gziperr:
        logging.debug("gzip stderr=%s", gziperr)

_______________________________________________
virt-tools-list mailing list
virt-tools-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/virt-tools-list

_______________________________________________
virt-tools-list mailing list
virt-tools-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/virt-tools-list

_______________________________________________
virt-tools-list mailing list
virt-tools-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/virt-tools-list




[Index of Archives]     [Linux Virtualization]     [KVM Development]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux