-
Mike Hibler authored
add -Wall to CFLAGS and clean up lint update the TODO file explicitly size the header fields (e.g., int32_t not int) imagezip: Version 2. Adds two ints to the header to help track free space. Each chunk now has a first and last sector number which can describe any free block before or after the data contained in the chunk. This is needed in order to properly zero all free space when laying down an image. In practice: the first chunk describes any free space before the first allocated range and any free space after its contained ranges and before the first allocated range in the second chunk. Every other chunk then describes just free space following itself (since the previous chunk has already described the space before this chunk). The point being, we only describe each free range once. Added "relocation" information. Relocation entries go in the chunk header along with region descriptors. This allows us to identify chunks of data which need to be absolute disk blocks instead of offsets from the containing partition. This is now used for BSD-slice partition tables which contain absolute disk blocks. We can now create an image in one slice and reload it into another slice. Allow zlib compression level 0 (no compression). This might be useful on machines that have slow CPUs: do just FS-compression and transfer the image elsewhere faster where it could be re-zipped with regular compression. Fix goof. Previously we were not saving any DOS partition with an unrecognized type. We should be naively compressing it instead. This is what we now do. We continue to skip partitions of type 0 ("unused"). mikeism: add handler for SIGINFO (^T) to report progress of a zip-age. Added everybody's favorite "dots" mode for reporting progress. Eliminate some excess copies left over from the conversion from write-every-little-piece to buffer-up-a-full-chunk-and-then-write. Eliminaged the special case handling of no skips (ranges) in compress_image by creating a single allocated range describing the whole disk/partition in this case. For NTFS, make the behavior of calling missing unicode routines be to return an error rather than exit. These calls happen, but their failing doesn't seem to be fatal. Lots of typical mike-pissing on everything else. imageunzip: Modify to handle both V1 and V2 images. In slice mode, make sure we don't write past the bounds of the slice. ES&D if we try. Make output to unseekable devices work again (broken when pwrite was added) Add debug -F (Frisbee) option to randomize the presentation of chunks to the unzip/write threads. Used to simulate frisbee. Add "-T DOS-type" option to tell imageunzip, when in slice mode, to set the type of the slice in the DOS partition table. This is useful if you are dropping say a BSD filesystem into an unused slice, you don't have to go back later and set this with fdisk. Considered making this info part of the image itself (recorded by imagezip when creating a slice image), but decided against it. writezero takes an off_t for the size, we can be asked to write many gigabytes of zero at the end of a disk. Turn off dots mode by default. Ya wanna see spots? Ya gotta turn it on! Lots of typical mike-pissing on everything else. imagedump: New tool for checking/dumping the structure of an image and reporting stats about it.
a6a648e9