1. 03 Jul, 2014 4 commits
  2. 02 Jul, 2014 1 commit
  3. 27 Jun, 2014 1 commit
    • Mike Hibler's avatar
      Resurrect/enhance delta image code. Another multi-day "one hour hack"! · 49d2f488
      Mike Hibler authored
      Resurrect: get the basic signature matching code working again.
      
      Enhance: add -U option to have imagezip update (or create) the
      signature file. Previously, the signature file was created off-line
      on boss with the imagehash command (that would be Mike's "imagehash"
      (/usr/testbed/bin/imagehash) and not Leigh's "imagehash"
      (/usr/testbed/sbin/imagehash)). Creating it as we create the image
      makes a lot of sense...except for how we do it. We actually read and
      create the hashes as a separate pass before we re-read, compress, and
      create the image--so we read the disk twice. [This is primarily because we
      are mooching off of the existing hash checking code (-H option). Doing
      this right will require re-writing The Big Loop which makes a single
      pass through the data, simultaneously dealing with disk IO, allocated
      ranges, and compression blocks all of which have different size/alignment
      criteria. But I digress...] Anyway, reading the disk data twice sucks,
      but at least it is on the client and not on boss. The take away is:
      don't create your images on pc600s.
      
      Note that -U will always create a signature file for the complete disk
      or partition even when you are creating a delta image (i.e., when combined
      with -H).
      
      Enhance: add "-P <pct>" option, used with -H, which tells imagezip that if
      a resulting delta image would be over <pct> percent the size (where size
      is number of uncompressed sectors in the image) of a full image, then just
      create a full image instead. So "-P 50" says if it would be over half the
      size, "-P 200" says if it was over twice the size, etc. If you always want
      a delta image to be produced, use -H without -P. If you always want a full
      image, don't use -H.
      
      This is part 2 of supporting images. Part 1 is the DB and user interface
      changes that Leigh is working on. Part 3 is next up and involves modifying
      the image creation MFS to download and use signatures along with the
      new imagezip when creating images. Stay tuned.
      49d2f488
  4. 01 May, 2014 1 commit
  5. 16 Apr, 2014 1 commit
  6. 15 Apr, 2014 1 commit
  7. 10 Feb, 2014 1 commit
  8. 06 Feb, 2014 1 commit
    • Mike Hibler's avatar
      Make sure we don't do a partial sector write when using O_DIRECT. · 7e260e9a
      Mike Hibler authored
      Will cause a write error. This would only happen for the final range of
      an image created with -f. We now pad out any partial last sector if direct
      IO is specified (-f on imageunzip/frisbee) and write that to the file.
      
      If the padding causes any problems in the future, we can always get rid of
      it by truncating the file to the correct size when we are done...I think.
      7e260e9a
  9. 18 Jun, 2013 1 commit
    • Mike Hibler's avatar
      Check that fsync is supported on output file of imagezip. · 75b72804
      Mike Hibler authored
      Part of our hack strategy to detect and correct transient NFS errors
      is to fsync after every file write and check for errors. However, some
      devices don't support fsync. So, for example, if you were trying to
      imagezip to /dev/null (to benchmark or check the resulting image size)
      fsync would always fail and we would keep retrying the write forever.
      
      There is already a "-N" option to avoid such checks and retries, but
      Mike can never remember that!
      75b72804
  10. 29 Apr, 2013 1 commit
  11. 07 Feb, 2013 1 commit
  12. 05 Feb, 2013 4 commits
  13. 30 Oct, 2012 1 commit
  14. 24 Oct, 2012 1 commit
    • Mike Hibler's avatar
      Add the -x "exclude non-FS" option to imagezip. · 1e5717a8
      Mike Hibler authored
      This option says to ignore any blocks which are outside of a Linux or FreeBSD
      filesystem but still in the containing partition; i.e., in the case where the
      filesystem is smaller than the partition it is in. By default, such space is
      (and always has been) considered "allocated."
      
      This should be extended to cover space that is outside of any FreeBSD or
      DOS partition as well (though we have to be careful not to exclude the MBR
      in that case). It should also be made to work with FAT and NTFS.
      1e5717a8
  15. 24 Sep, 2012 1 commit
    • Eric Eide's avatar
      Replace license symbols with {{{ }}}-enclosed license blocks. · 6df609a9
      Eric Eide authored
      This commit is intended to makes the license status of Emulab and
      ProtoGENI source files more clear.  It replaces license symbols like
      "EMULAB-COPYRIGHT" and "GENIPUBLIC-COPYRIGHT" with {{{ }}}-delimited
      blocks that contain actual license statements.
      
      This change was driven by the fact that today, most people acquire and
      track Emulab and ProtoGENI sources via git.
      
      Before the Emulab source code was kept in git, the Flux Research Group
      at the University of Utah would roll distributions by making tar
      files.  As part of that process, the Flux Group would replace the
      license symbols in the source files with actual license statements.
      
      When the Flux Group moved to git, people outside of the group started
      to see the source files with the "unexpanded" symbols.  This meant
      that people acquired source files without actual license statements in
      them.  All the relevant files had Utah *copyright* statements in them,
      but without the expanded *license* statements, the licensing status of
      the source files was unclear.
      
      This commit is intended to clear up that confusion.
      
      Most Utah-copyrighted files in the Emulab source tree are distributed
      under the terms of the Affero GNU General Public License, version 3
      (AGPLv3).
      
      Most Utah-copyrighted files related to ProtoGENI are distributed under
      the terms of the GENI Public License, which is a BSD-like open-source
      license.
      
      Some Utah-copyrighted files in the Emulab source tree are distributed
      under the terms of the GNU Lesser General Public License, version 2.1
      (LGPL).
      6df609a9
  16. 21 Aug, 2012 1 commit
  17. 08 Aug, 2012 1 commit
    • Mike Hibler's avatar
      Bug Fix: fix incorrect usage of "sizeof(blockhdr_t)". · 9f5bed29
      Mike Hibler authored
      The size of the block header differs depending on the version of the image.
      sizeof(blockhdr_t) gives the size of the current version of the header when
      the binary was built (V4 currently). This only mattered in two places:
      
      In imagezip, it would have prevented us from creating a backward compatible
      V1 image. Probably nobody has done this in 10 years.
      
      In imageunzip, it could prevent relocations from being processed. This only
      affected recent builds (V4 format) when attempting to unzip an older
      single-partition FreeBSD image (FBSD5 or before). This is unlikely to occur
      outside of Utah and only very rarely here.
      9f5bed29
  18. 22 Jun, 2012 2 commits
  19. 01 May, 2012 1 commit
  20. 19 Apr, 2012 1 commit
  21. 20 Mar, 2012 1 commit