for i in $(zfs list -H -o name); do zfs diff "$i@beadm-test"; done
mount | grep gentoo-1
mount | grep tmp # for autonamed mountpoints
mount | grep upgraded
mount | grep zfs
touch /mnt/upgraded/var/tmp/portage/test
ls -la /var/tmp/portage
zfs list -r -t all
zfs list -r -t all -o name,origin
zfs list -o name,origin
zfs get all ci/ROOT/gentoo-2 | grep local
zpool get bootfs
```
# Test results
# Test results
## `beadm list`
## `beadm list`
...
@@ -9,7 +31,59 @@ Working
...
@@ -9,7 +31,59 @@ Working
## `beadm {,u,un}mount`
## `beadm {,u,un}mount`
Unexpected:
Unexpected:
-`beadm mount gentoo-4 /mnt/upgraded; beadm mount gentoo-5 /mnt/upgraded` overlays `gentoo-5`'s mounts on top of `gentoo-4`'s. Then `beadm unmount gentoo-5` unmounts only the children, but fails to unmount the root. It also fails to unmount `gentoo-4` or any of its children. Running `unmount /mnt/upgraded` makes `beadm unmount gentoo-4` work again.
```
localhost ~ # beadm mount gentoo-4 /mnt/upgraded
Mounted successfully on: '/mnt/upgraded'
localhost ~ # beadm mount gentoo-5 /mnt/upgraded
Mounted successfully on: '/mnt/upgraded'
localhost ~ # mount | grep upgraded
ci/ROOT/gentoo-4 on /mnt/upgraded type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-4/usr on /mnt/upgraded/usr type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-4/usr/portage on /mnt/upgraded/usr/portage type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-4/usr/portage/distfiles on /mnt/upgraded/usr/portage/distfiles type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-4/usr/portage/packages on /mnt/upgraded/usr/portage/packages type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-5 on /mnt/upgraded type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-5/usr on /mnt/upgraded/usr type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-5/usr/portage on /mnt/upgraded/usr/portage type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-5/usr/portage/distfiles on /mnt/upgraded/usr/portage/distfiles type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-5/usr/portage/packages on /mnt/upgraded/usr/portage/packages type zfs (rw,relatime,xattr,noacl)
localhost ~ # beadm umount gentoo-5
Unable to unmount gentoo-5.
Doesn't exist.
localhost ~ # mount | grep upgraded
ci/ROOT/gentoo-4 on /mnt/upgraded type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-4/usr on /mnt/upgraded/usr type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-4/usr/portage on /mnt/upgraded/usr/portage type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-4/usr/portage/distfiles on /mnt/upgraded/usr/portage/distfiles type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-4/usr/portage/packages on /mnt/upgraded/usr/portage/packages type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-5 on /mnt/upgraded type zfs (rw,relatime,xattr,noacl)
localhost ~ # beadm umount gentoo-4
Unable to unmount gentoo-4.
Doesn't exist.
localhost ~ # mount | grep upgraded
ci/ROOT/gentoo-4 on /mnt/upgraded type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-4/usr on /mnt/upgraded/usr type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-4/usr/portage on /mnt/upgraded/usr/portage type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-4/usr/portage/distfiles on /mnt/upgraded/usr/portage/distfiles type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-4/usr/portage/packages on /mnt/upgraded/usr/portage/packages type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-5 on /mnt/upgraded type zfs (rw,relatime,xattr,noacl)
localhost ~ # umount /mnt/upgraded
localhost ~ # umount /mnt/upgraded
umount: /mnt/upgraded: target is busy.
localhost ~ # mount | grep upgraded
ci/ROOT/gentoo-4 on /mnt/upgraded type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-4/usr on /mnt/upgraded/usr type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-4/usr/portage on /mnt/upgraded/usr/portage type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-4/usr/portage/distfiles on /mnt/upgraded/usr/portage/distfiles type zfs (rw,relatime,xattr,noacl)
ci/ROOT/gentoo-4/usr/portage/packages on /mnt/upgraded/usr/portage/packages type zfs (rw,relatime,xattr,noacl)
localhost ~ # beadm umount gentoo-4
Unmounted successfully
localhost ~ # mount | grep upgraded
```
- mounting shared filesystems using `-s ro` mounts them read-write instead (a TODO created during porting mentions this - fixable).
- mounting shared filesystems using `-s ro` mounts them read-write instead (a TODO created during porting mentions this - fixable).
- doesn't mount shared filesystems (when `-s rw|ro` is passed) if the BE doesn't have the mountpoint directory
- doesn't remove the temporary mountpoints (e.g. `/tmp/tmp.KDkhs5`) (not implemented in illumos as well?).
- doesn't remove the temporary mountpoints (e.g. `/tmp/tmp.KDkhs5`) (not implemented in illumos as well?).
- prints a warning about UUID when called with `-v` on a manually created BE:
- prints a warning about UUID when called with `-v` on a manually created BE: