Commit Graph

13 Commits

Author SHA1 Message Date
Daniel Golle e20228f16f
uvol: update to version 0.5
Adds '-j' option for 'list' command to generate JSON output.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-09-15 22:33:03 +01:00
Daniel Golle 6276e8b2ae
uvol: update to version 0.4
Create UCI fstab mount sections for existing volumes on firstboot.
Introduce special handling for volumes with non-[:alnum:] prefix:
 - do not create UCI sections for these 'hidden' volumes
 - create UCI section for '.uxc' special volume with target
   /var/state/uxc to be used for uxc config.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-08-15 15:48:17 +01:00
Daniel Golle 27c16a70b1
uvol: lvm: make 'up' call reliable
Changing a volume right after activation doesn't work well due to some
caching or race-condition issue.
Perform activation as last lvchange operation as a work-around.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-30 02:16:55 +01:00
Daniel Golle f4afa4189e
uvol: update to version 0.3
* genrate UCI fstab configs for each volume before first 'up'
 * remove UCI section on volume remove
 * use autofs automounter for read-only volumes
 * try umount on 'down'
 * emulate hotplug events for UBI volume up/down
 * more robust error paths

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-25 00:40:41 +01:00
Daniel Golle 9c59eff456 uvol: adapt to changes in core
* lvm: remove left-over ubus events
* lvm: resolve /dev/dm-* device name
  As block-mount and blockd now use /dev/dm-* names, let uvol also return
  those device names.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-24 00:02:51 +01:00
Daniel Golle ad61196780
uvol: general clean up
* make sure new volumes are in state 'down' until explicitely
   requested to transition to 'up' state. Useful for additional
   verification steps after writing a read-only volume.
 * remove unused ubus events as blockd does that much better now

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-16 22:48:38 +01:00
Daniel Golle 194e7f0286
uvol: fix units with lvm backend
Free and total bytes are now properly returned as bytes by LVM2 as
requested. No longer multiply values.
Fix parameter order of 'create' command in usage output while at it.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-06 05:27:13 +01:00
Daniel Golle c7d1704feb uvol: try to be more shellcheck compliant, fix LVM vol-up
* quotes around all variables
 * always use 'read -r' instead of 'read'
 * some more minor shellcheck fixes
 * reorder LVM ops for 'up' call to allow it to succeed

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-06-13 22:14:20 +01:00
Daniel Golle 1b570f7aad
uvol: improve autopart and lvm scripts, fix F2FS volumes
Use sfdisk to get GPT partition by name as partition names are not
known by the kernel if added via partx.
Make sure physical volume names are unique, if possible correlate
with the disks serial number and/or card's cid.
mkf2fs apparently returns 134 even in case format succeeded, so don't
fail in that case (this fixes rw volumes large enough for F2FS to be
selected by the lvm scripts of uvol).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-04-21 17:32:14 +01:00
Daniel Golle fc01307d7a
uvol: emmit ubus events and bring up volumes on boot
Emmit ubus events when volumes come up/down.
Make sure volume state is always well defined by introducing
additional state 'write-prepare' (wp) during mkfs.
Add init scripts to bring up volumes at boot.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-04-18 00:41:35 +01:00
Daniel Golle 3d4d75c519
uvol: make volume creation atomic
Make sure filesystem is ready when volume becomes available.
Use 'write-once' as initial state for read-only volumes, only allow
writing to volumes in that state and transision to 'read-only' once
write has completed.
Also fix a typo which prevented 'list' command from working with LVM.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-04-15 02:55:10 +01:00
Daniel Golle a4b034cf68
uvol: some improvements
* use lvm --reportformat json
 * add 'list' and 'align' commands
 * add help output

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-04-11 01:42:58 +01:00
Daniel Golle 312594f869
uvol: add new package
uvol is a wrapper-script which allows automated handling of storage
volumes. uvol currently comes with backend support for LVM2 and UBI,
covering practically all options for storage large enough to be
managed (NAND, SPI-NAND, eMMC, SATA, NVME, virtio-blk, ...).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-04-10 12:02:23 +01:00