Enhancements
- new
--assume-image-isflag to override bootiso assessment of image file hybridness. Possible values are "hybrid" and "non-hybrid".
Bugfixes
- CRITICAL New check implementation for assessing image file "hybridness" based on
sfdiskwhich should fix false non-hybrid positives caused by newfileutility behavior. Kudos to anoop142 for pointing that out.
Dependencies
for package maintainers, please rely on install.md#Dependencies
- requires util-linux ≥ 2.27
Enhancements
- Makefile: comply with GNU Make conventions, thanks to Nicolas Boulenguez nicolas@debian.org
- Doc: more accurate dependency table
Bugfixes
- Mark “tput” corresponding packages to be distro-dependent (no auto install)
Enhancements
- implement static analysis to test for missing dependencies, see tests/testdeps.sh
- enhanced feedback when using install mode-specific flags while in automatic mode
- better compliance with Debian Policy Manual
- Makefile integration with dh_make
- full compliance with Filesystem Hierarchy Standard
- compare system and binary architectures when executing syslinux program from kernel.org, and provide user feedback #22
- normalize
$PATHfor systems such as Debian which don't expose system paths by default
Bugfixes
- add compatibility layer for legacy "column" utility shipped with Debian-based distributions, #59
- fix wrong exit status. The exit status 11 (USER ABORTED) was systematically returned, because of previous refactor on process interruption graceful handling. This has now been fixed, and will only be returned when process receives signal INT or TERM.
Dependencies
for package maintainers, please rely on install.md#Dependencies
- remove unnecessary mtools
- add missing binutils and ncurses
Bugfixes
- fix cleanup logic. After successful image installation, a message "user aborted" was displayed. To circumvent the issue, two functions are now registered with trap for cleanup logic. One on EXIT, and an other one on INT or TERM.
In addition to below listed changes, please note that project license has migrated from MIT to GPLv3, see LICENSE.
Features
- Add linux manual
manpages, see manual online version - (experimental) Add
bashandzshcompletion scripts - (experimental) Support
imgfiles, #5 - (experimental) New
--gptmodifier to enforce GPT partition tables (requires--formator--mrsync) - (experimental) New
-D,--data-partmodifier to add a data partition. Requires “Image-Copy” mode, #1. - (experimental) New
--data-part-fs <fstype>modifier to change data partition filesystem - New
--part-typemodifier to set partition table type ID (requires--formator--mrsync). This is especially useful in “Mount-Rsync” mode with GPT partition scheme where the booting system might otherwise refuse to read filesystem. Seesfdisk --list-types --label {gpt|dos}. - New
--dd-bs <block-size>support for “Image-Copy” mode - New
BOOTISO_IMAGES_COMPLETIONS_PATHenvironment to help completion scripts suggest files from a preferred folder. If not set, the completion scripts will still look for files inXDG_DOWNLOAD_DIRor~/Downloads. This behavior only applies when no files are matched in current working directory. - Semantic exit status, see manual#EXIT STATUS
BREAKING
- Semantics for
--mrsyncand--ddhave changed:- Those flags now “assert” rather then “force“ the install mode.
- As a consequence, it is now impossible to use the “Mount-Rsync” with hybrid images and “Image-Copy” with non-hybrid.
- Mode assertion is now required for any modifier which applies specifically to them. For example, to use
--gptduring install action,--mrsyncmust be set.
- Replace
SYSLINUX_LIB_ROOTenv withBOOTISO_SYSLINUX_LIB_ROOT - Deprecate
-t,--typein favor of-F,--fsto avoid confusion with--part-type
Enhancements
Makefileand generic install instructions- Code Style and Conventions document
- Refactor in pseudo-modules
- Sensible default label with format action:
${USER}_${VENDOR}with USER read from SUDO_USER and VENDOR from lsblk VENDOR attribute - Add
--icopyalias for--dd - Support
eopkgpackage manager (Solus) - Rewrite of
--helpaction with text wrapping and columns for better readability - Explicit compliance with ECMA-48 SGR sequences
- Don't assume
sudoorgksuare installed when privilege access is required - Replaced deprecated
mkfsfrom util-linux withmkfs.*counterparts - Allow
--no-mime-checkwith inspect and probe actions
Bugfixes
- Fix a
synccall in background which lead to corrupted image installs, see #48 and #15 - Fix a deadlock bug preventing graceful handling of user interuption (
CTRL+C) during dd or rsync commands run in subshells
Dependencies
for package maintainers, please rely now on install.md#Dependencies
- Dropped unnecessary
parted - Add
jqto read sfdisk partition table reports
Bugfixes
- fix incompatibility with older
sudoversions where--preserve-envdoesn't support passing a list of variables, #47
Features
- check ISO hash automatically, #16, (@SibrenVasse)
- disable automatic ISO hash check with
-H, --no-hash-checkflag (@SibrenVasse) - exit when hash fails with
--force-hash-checkflag (@SibrenVasse) - explicitly set a hash file with
--hash-file <file>flag (@SibrenVasse)
Bugfixes
- fix incompatibility with wimlib <1.13 caused by a bug where wimsplit incorectly handles dots in filnames, #43
- fix a bug where environment variables were not passed to sudo, #29
- fix a minor bug where ISO check was run twice, before and after sudo
- fix typos + rewording messages (@SibrenVasse)
- fix indentation, PR #35
Features
- image size is checked to be smaller than device size, PR #30 (@SibrenVasse)
- image size check can be disabled with
--no-size-checkoption, PR #30 (@SibrenVasse) - automatically split
sources/install.wimfiles in windows ISO's, which would otherwise cause rsync to fail with file too large error; #32 - automatic splitting can be disabled with
--no-wimsplitoption - added
SYSLINUX_LIB_ROOTenvironment variable to set syslinux library root manually, #29 - better message when missing dependecy
Bugfixes
- fix dependency check on
bc, issue #34 ; thanks to @SibrenVasse for the catch
Dependencies
- new dependency to
wimlib-imagex- provided by
wimlibon Archlinux - provided by
wimtoolson debian
- provided by
- remove unecessary debug log
- improved robustness of
checkpkgfunction - fix issue with SYSLINUX and EXTLINUX on Ubuntu and debian-based distros #21
- replaced
findarguments-wholenamewith-pathwhich is more portable - systematic usage the
-print -quitpattern withfindcommand when possible - add explicit dependency to
tar
- add compatibility code for
sfdiskversions older then 2.28 which don't support-Woption
- fixed a bug with
--local-bootloaderwhere C32 BIOS modules were not copied on USB key - better handling of GNU option errors
- minor message improvements
- add
--remote-bootloaderflag to enforce a specific version of SYSLINUX in mount-rsync mode - fix a bug in mount-rsync mode preventing ejection of USB device
- fixed non-working
-M,--no-mime-checkflag
[install-auto]default mode: bootiso chooses the most appropriate copy mode after inspecting ISO file--ddoption now overrides[install-auto]in lieu of[install-mount-rsync]and force image-copy ([install-dd]mode)- added
--mrsyncoption to override[install-auto]and force mounting+rsync ([install-mount-rsync]mode) - securely handle unmounting of target device before altering data, exit when failing
- added
-f,--formatoption to format USB device and quit - added
-L,--labeloption to chose a label - added
-t,--typeoption to chose a FS type amongst vfat, exfat, ntfs, ext2, ext3, ext4 and f2fs - added
-Malias to--no-mime-check - removed
-b,--bootloaderoption since its installation is now automatic - added
-i,--inspectand-p,--probeaction flags to inspect ISO file boot capabilities - fixed bug preventing label to be set with
--no-mime-checkoption - set FAT32-LBA by default instead of FAT32
- removed "noconfirm" or "yes" options to pakage managers install commands
- print bootiso name in log messages to comply with UNIX customs
- refactoring with options map
- exhaustive flags combination tests
- better faulty command line argument option assignments handling
- better user feedback and error reports in many corner cases
- added short device selection with omission of full path prefix (
/dev/) - check the existence of
mkfs.<type>before formatting - removed
-sstrict mime check option - create temporary folders in
/var/tmpinstead of/tmp(some systems mount/tmpin RAM, which can be problematic with large ISO files)
- documentation improvements + call for help from the community
- add
-Malias for--no-mime-check
- allow loose
application/octet-streammime type by default in ISO files - add
-s,--strict-mime-checkoption to disallow looseapplication/octet-streammime type in ISO files - fix bug #3: Provided file argument starting with -- cause bootiso to hang
- better handling of erroneous stacked short options
- better feedback when mime type check fails
- fix test to print spinner if and only if launched from terminal
- light refactoring
- return exit code 2 when appropriate (wrong argument)
- fix a little bug when printing a message during dependency checking
- support for
--POSIX end of options flag - fix bug where no USB device has been found
- auto eject device on success only
- support for stacked options such as
-Jbya
- fix wrong file redirections
- add
-l,--list-usb-drivesoption
- when prompting user to select device, list drives which are of type disk according to
lsblkinstead of using name matching to discard partition and loop devices - add a test to assert installed grep version supports perl regular expressions (
-Poption)
- reintroduce
rsyncwhich handles symlinks better - more robust test to check device is not a partition
- fix unused variable (shellcheck)
- change
cpoptions to prevent ownership errors (--no-preserve) - when selecting device interactively, only list USB devices with option
--no-usb-checkoff - autoselecting USB device when there is exactly one connected drive through USB and
--no-usb-checkoff - adding
--autoselect,-aoption to autoselect in conjunction with-yoption - better feedback (spinning) during copying
- add a version option
- add
--ddoption to useddinstead of mount +cp - drop
rsyncforcp - add
synccall right after copying to guarantee all writes are flushed to USB device before unmounting with progress indicator - call
wipefsbefore partitioning to cleanup device signature - eject device after unmounting (can be disabled with
--no-ejectoption) - checkpkg now called for specific options (you don't need all dependencies installed before running)
- safeguard added to check bash version 4+
- better handling of missing dependencies with separation of command name and package name
- refactoring (better naming)
Breaking changes
- removed
--no-bootloaderin favor of--bootloader(syslinux bootloader disabled by default)
- Refactored security checks in selectDrive function
- Use
[ -b "$selectedDrive" ]to assert device file is of type "block" in selectDrive function - Start using semantic versioning
- Slightly enhanced help message.
- Add a help message when script misses argument.