curthooks: tighter application of xenial environment hack.
* Do not rely on the specific path of '/sbin/zfs'
* only apply when target is xenial
* only write to /etc/environment, not /etc/profile.d/
/etc/environment is read anywhere where /etc/profile.d would be.
Unless you know otherwise.
Add zpool, zfs storage command support for ZFS on Root
curtin/block
- Add get_dev_disk_byid() to return a mapping of devname to disk/by-id paths
- Add zfs and zpool to install deps dictionary
curtin/block/clear_holders
- Add modprobe zfs
curtin/block/zfs
- implement zpool_create, zfs_create, zfs_list, zfs_export and zfs_mount
commands
curtin/commands/block_meta
- implement handlers for type: zpool and zfs
- add get_poolname resolver
curtin/commands/curthooks
- For xenial, use apt-mark hold zfs-dkms to prevent installation
- Add an injection of a zfs environment variable required for ZFS on rootfs
to work with grub; allows grub to extract the path to the zfs vdevs full
path rather than just the devname (/dev/disk/by-id/foo vs disk/by-id/foo)
curtin/commands/install
- Export ZPOOL_VDEV_NAME_PATH=1 into environment to allow grub to work with
zfs on root
doc/topics/storage.rst
- Add documentation for zpool, zfs configuration
helpers/common
- Update install_grub to skip block-device check if target mountpoint is zfs.
tests/unittests/test_block
- Add test for disk_byid methods
tests/unittests/test_block_zfs
- Add coverage for block.zfs
tests/unittests/test_clear_holders
- Update test to account for modprobe zfs
tests/vmtests/test_zfsroot
- Add initial zfsroot install and test
The collect-logs command will create a named tarfile containing curtin
configured log_file and post_files as well as relevant system information
such as version, curtin-config, os-release, uname, lshw and network
information.
From source:
./bin/curtin collect-logs or
python -m curtin.commands.main collect-logs
From package:
curtin collect-logs