@@ -666,6 +666,9 @@ func (d *Driver) generateDiskImage(size int) error {
666666
667667 // magicString first so the automount script knows to format the disk
668668 file := & tar.Header {Name : magicString , Size : int64 (len (magicString ))}
669+
670+ log .Debug ("Writing magic tar header" )
671+
669672 if err := tw .WriteHeader (file ); err != nil {
670673 return err
671674 }
@@ -677,6 +680,9 @@ func (d *Driver) generateDiskImage(size int) error {
677680 if err := tw .WriteHeader (file ); err != nil {
678681 return err
679682 }
683+
684+ log .Debug ("Writing SSH key tar header" )
685+
680686 pubKey , err := ioutil .ReadFile (d .publicSSHKeyPath ())
681687 if err != nil {
682688 return err
@@ -699,6 +705,9 @@ func (d *Driver) generateDiskImage(size int) error {
699705 return err
700706 }
701707 raw := bytes .NewReader (buf .Bytes ())
708+
709+ log .Debug ("Calling inner createDiskImage" )
710+
702711 return createDiskImage (d .diskPath (), size , raw )
703712}
704713
@@ -770,6 +779,8 @@ func createDiskImage(dest string, size int, r io.Reader) error {
770779 cmd := exec .Command (vboxManageCmd , "convertfromraw" , "stdin" , dest ,
771780 fmt .Sprintf ("%d" , sizeBytes ), "--format" , "VMDK" )
772781
782+ log .Debug (cmd )
783+
773784 if os .Getenv ("MACHINE_DEBUG" ) != "" {
774785 cmd .Stdout = os .Stdout
775786 cmd .Stderr = os .Stderr
@@ -779,15 +790,22 @@ func createDiskImage(dest string, size int, r io.Reader) error {
779790 if err != nil {
780791 return err
781792 }
793+
794+ log .Debug ("Starting command" )
795+
782796 if err := cmd .Start (); err != nil {
783797 return err
784798 }
785799
800+ log .Debug ("Copying to stdin" )
801+
786802 n , err := io .Copy (stdin , r )
787803 if err != nil {
788804 return err
789805 }
790806
807+ log .Debug ("Filling zeroes" )
808+
791809 // The total number of bytes written to stdin must match sizeBytes, or
792810 // VBoxManage.exe on Windows will fail. Fill remaining with zeros.
793811 if left := sizeBytes - n ; left > 0 {
@@ -796,11 +814,15 @@ func createDiskImage(dest string, size int, r io.Reader) error {
796814 }
797815 }
798816
817+ log .Debug ("Closing STDIN" )
818+
799819 // cmd won't exit until the stdin is closed.
800820 if err := stdin .Close (); err != nil {
801821 return err
802822 }
803823
824+ log .Debug ("Waiting on cmd" )
825+
804826 return cmd .Wait ()
805827}
806828
0 commit comments