1. 24 Jun, 2015 5 commits
    • Vangelis Koukis's avatar
      Move DisableRemoteDesktopConnections to prio 41 · 83cd6ea0
      Vangelis Koukis authored
      Move DisableRemoteDesktopConnections from priority 40
      to priority 41, ensuring it runs after 40InstalUnattend.in.
      
      This makes the dependency between the installed answer file and
      the DisableRemoteDesktopConnections task explicit:
      The task assumes that RDP connections will be re-enabled via
      an appropriate <RunSynchronousCommand> entry in the answer file,
      which must already exist.
      
      Making the dependency explicit, allows making the process more robust
      in the future: The DisableRemoteDesktopConnections task should not
      blindly assume that a potentially Image-specific unattend.xml file
      contains the specific <RunSynchronousCommand> entry it requires,
      but may insert it explicitly, since the answer file is bound to have
      been detected or installed via the the previously executed
      40InstallUnattend task.
      83cd6ea0
    • Vangelis Koukis's avatar
      Introduce support for offline NTFS resize · 88406207
      Vangelis Koukis authored
      snf-image already supports online resizing of NTFS; it creates
      an appopriate DISKPART script inside the target NTFS and assumes
      it will be called by SYSPREP via a pre-existing <RunSynchronousCommand>
      entry in the unattend.xml answer file. This is generally the safest
      option, since it uses native Windows code, but has two drawbacks:
      a) It is only supported by Windows Vista and later,
      b) It is possible the Image will fail before SYSPREP has a chance
      to run the DISKPART script, because it does not have enough free space.
      
      Extend snf-image to also support offline resize of NTFS via ntfsresize,
      before the Image is booted. This works with all Windows versions and
      ensures the Image is resized to the right size even before booting.
      
      To be on the safe side, offline NTFS resize is not the default:
      
      The user must set the OFFLINE_NTFSRESIZE property explicitly.
      Running ntfsresize leaves the filesystem dirty, i.e., a CHKDSK is
      performed during the next boot. The user may set the
      OFFLINE_NTFSRESIZE_NOCHECK property to skip this.
      88406207
    • Vangelis Koukis's avatar
      Make mounting NTFS more robust · 8a9f78eb
      Vangelis Koukis authored
      Use lowntfs-3g with appropriate options when mounting NTFS-based Images:
          * ensure path lookup is case-insensitive,
          * prevent the creation of files with names which are not allowed
            under Windows,
          * complain loudly if the filesystem is dirty or needs recovery.
      
      Mounting the filesystem in a case-insensitive way can simplify task code
      significantly; there is no reason to perform case-insensitive lookups
      explicitly ("Unattend.xml" vs. "unattend.xml"). It also ensures
      attempting to inject "filea" in the image will overwrite "fileA", if it
      already exists, as it would under Windows, instead of leading to a
      situation where both "fileA" and "filea" exist, causing all sorts of
      problems later on.
      
      Finally, complain loudly when attempting to mount an NTFS marked dirty
      (requiring a disk check on next boot), or with an unclean journal.
      NTFS-3G code seems to wipe the NTFS journal instead of replaying it, and
      may lead to data corruption. Images should not contain dirty
      filesystems.
      
      See
      http://tuxera.com/forum/viewtopic.php?f=2&t=30562:
      "Actually the journal is simply wiped out. This is to prevent the
      journal to be applied at next mounting on Windows to data which may have
      been changed in the meantime.", and
      "So far, nobody has been able to understand how the journal is
      organized, so there is no real recovery in ntfs-3g, just wiping the
      journal."
      
      Also:
      http://www.tuxera.com/community/ntfs-3g-manual/
      "recover: Recover and try to mount a partition which was not unmounted
      properly by Windows. The Windows logfile is cleared, which may cause
      inconsistencies. Currently this is the default option."
      
      In the future, it would be best to reject the Image outright,
      instead of continuing.
      8a9f78eb
    • Vangelis Koukis's avatar
      Make umounting NTFS and shutting down more robust · 66bb79c4
      Vangelis Koukis authored
      Umounting filesystems mounted via NTFS-3G is not synchronous.
      It is possible that NTFS-3g mount processes remain, and continue
      writing to the underlying block device, even after umount has completed
      successfully. To solve this, wait explicitly for all NTFS-3G mount
      processes to terminate, before continuing.
      
      Similarly, there is no guarantee that all of the cached data have
      been flushed to disk when shutting down the system abruptly using
      the 'o' sysrq key to shut off the system immediately.
      To solve this, run "sync" explicitly before shutting system off,
      assuming no other process is currently writing to the disk (see above).
      
      The combination of these two issues could lead to data loss.
      66bb79c4
    • Vangelis Koukis's avatar
      Implement HELPER_DEBUG mode for KVM · ac60d8f8
      Vangelis Koukis authored
      Implement HELPER_DEBUG mode. When enabled, the helper VM will drop to a
      root shell whenever a task fails. This allows the administrator or a
      developer to examine its internal state for debugging purposes.
      
      Also add missing CONTRIBUTORS files.
      ac60d8f8
  2. 13 Mar, 2015 5 commits
  3. 04 Mar, 2015 1 commit
  4. 03 Mar, 2015 2 commits
  5. 12 Feb, 2015 1 commit
  6. 11 Feb, 2015 5 commits
  7. 10 Feb, 2015 6 commits
  8. 09 Feb, 2015 4 commits
  9. 16 Jan, 2015 1 commit
  10. 15 Jan, 2015 3 commits
  11. 09 Jan, 2015 2 commits
  12. 08 Dec, 2014 1 commit
  13. 05 Dec, 2014 3 commits
  14. 31 Oct, 2014 1 commit