mirror of
				https://github.com/linuxkit/linuxkit.git
				synced 2025-10-31 18:53:05 +00:00 
			
		
		
		
	Corrected naming from vmware->vmdk and fixed Makfile Fixed mistake outputting a vhd instead of a vmdk in output.go Build vmdk image and added to Docker Hub, corrected link in output.go Modified directories to confirm to standard mkimage-<imgType> Signed-off-by: Dan Finneran <dan@thebsdbox.co.uk>
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| set -e
 | |
| 
 | |
| mkdir -p /tmp/image
 | |
| cd /tmp/image
 | |
| 
 | |
| # input is a tarball of vmlinuz64 and initrd.img on stdin
 | |
| # output is a vmdk on stdout
 | |
| 
 | |
| mkdir -p files
 | |
| 
 | |
| cd files
 | |
| 
 | |
| # extract. As guestfs base is currently Debian, no compression support
 | |
| # only if stdin is a tty, if so need files volume mounted...
 | |
| [ -t 0 ] || tar xf -
 | |
| 
 | |
| INITRD="$(find . -name '*.img')"
 | |
| KERNEL="$(find . -name vmlinuz64 -or -name '*bzImage')"
 | |
| CMDLINE="$*"
 | |
| 
 | |
| [ "$KERNEL" = "./vmlinuz64" ] || mv "$KERNEL" vmlinuz64
 | |
| [ "$INITRD" = "./initrd.img" ] || mv "$INITRD" initrd.img
 | |
| 
 | |
| # clean up subdirectories
 | |
| find . -mindepth 1 -maxdepth 1 -type d | xargs rm -rf
 | |
| 
 | |
| CFG="DEFAULT linux
 | |
| LABEL linux
 | |
|     KERNEL /vmlinuz64
 | |
|     INITRD /initrd.img
 | |
|     APPEND ${CMDLINE}
 | |
| "
 | |
| 
 | |
| printf "$CFG" > syslinux.cfg
 | |
| 
 | |
| cd ..
 | |
| 
 | |
| tar cf files.tar -C files .
 | |
| 
 | |
| # Disk is created in qcow format, testing needed to see if raw->vmdk conversion makes any efficency gains
 | |
| virt-make-fs --size=1G --type=ext4 --partition files.tar --format=qcow2 disk.qcow
 | |
| 
 | |
| guestfish -a disk.qcow -m /dev/sda1 <<EOF
 | |
|   upload /usr/lib/SYSLINUX/mbr.bin /mbr.bin
 | |
|   copy-file-to-device /mbr.bin /dev/sda size:440
 | |
|   rm /mbr.bin
 | |
|   extlinux /
 | |
|   part-set-bootable /dev/sda 1 true
 | |
| EOF
 | |
| 
 | |
| # compress qcow image to VMware Disk format
 | |
| qemu-img convert -f qcow2 -O vmdk -o adapter_type=lsilogic,subformat=streamOptimized,compat6 -c disk.qcow disk.vmdk 1>&2
 | |
| 
 | |
| cat disk.vmdk
 |