Back to the news overview

LXD 2.0.3 release announcement

28th of June 2016
This is the third bugfix release for LXD 2.0.

The changes since LXD 2.0.2 are


  • The "unsquashfs" command is now a LXD requirement as it is needed to
    unpack the newer Ubuntu images.
  • The REST API will now return a 201 code accompanied with a Location
    header following a POST to an endpoint returning an Sync response. It
    used to be sometimes returning a 200 without the Location header.
  • Containers now get a /dev/fuse device by default.

Minor improvements:

  • extras: Better bash completion coverage
  • client/delete: Allow -f as a shortcut of --force
  • client/info: Include the certificate fingerprint in server info (Issue #2098)
  • client/info: Show remote in the --show-log example provided on error
  • core: Add squashfs support as needed by newer Ubuntu images
  • core: Tweak TLS cipher list a bit to allow browsers to talk to LXD (Issue #2034)
  • daemon/container: Setup /dev/fuse by default


  • client: Better handle connection errors
  • client: Check all alias args to support subcommand aliases (Issue #2095)
  • client/file: Don't modify file permissions on edit
  • client/image: Use the daemon provided fingerprint on image copy (Issue #2162)
  • client: Normalize the URLs in the client (Issue #2112)
  • client/remote: Fix a panic in 'remote add' (Issue #2089)
  • client/remote: Fix parsing of <FQDN>:<PORT>
  • core: Better handle PEM decoding errors (Issue #2119)
  • core: Check for zero byte send in ReaderToChannel (Issue #2072)
  • core: Fix a concurrent websocket write crash
  • core: Use default buffer size for WebsocketUpgrader
  • daemon: Add missing linebreak to lxd help
  • daemon/api: Set Location on sync POST requests (Issue #2092)
  • daemon/btrfs: Fix failure to restore on btrfs (Issue #2058)
  • daemon/certificate: Fail to add an existing certificate
  • daemon/config: Allow "none" as compression algorithm (regression fix)
  • daemon/container: Add target path to rootfs tarball in image export (Issue #1980)
  • daemon/container: Better handle bind mounts
  • daemon/container: GET of a nonexistent file now 404s (Issue #2059)
  • daemon/container: Make devices cgroup config more readable
  • daemon/container: Improve error message on disk setup failure
  • daemon/container: Use defer to undo changes on failed update
  • daemon/db: Don't try to chmod zfs.img when testing db upgrades
  • daemon/db: Don't try to update /var/lib/lxd/containers in go tests
  • daemon/init: Actually unset the storage keys
  • daemon/lvm: Don't call lvextend with recent LVM versions
  • daemon/migration: Setup some buffering for zfs/btrfs send
  • daemon/migration: Simplify checkpoint/restore code everywhere
  • daemon/migration: switch to the new LXC migrate API
  • daemon/zfs: Improve block device detection
  • daemon/zfs: Mount if not mounted (Issue #1888)
  • doc: Clarify ZFS snapshot shortcomings (Issue #2055)
  • doc: Drop JSON example from
  • doc: Fix certificates JSON examples to cover all fields
  • doc: Fix typo in "unix-block" description
  • doc: Improve shared folder documentation (README) (Issue #2123)
  • lxd/patches: Add support for one-time patches (separate from DB schema updates)
  • Makefile: go get has become worse, now need 3 runs
  • Makefile: Update repository URL for xgettext-go
  • migration: Consolidate error handling
  • test: 201 is a valid return code for alias creation
  • test: Add a test for ReaderToChannel
  • test: Add test for "lxc file edit" target file owner and permission


The release tarballs can be found on our download page.