Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 1 Feb 2014 15:36:36 GMT
From:      John-Paul Bader <contact@smyck.org>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   misc/186345: FreeBSD 10 Installer creates weird ZFS volume layout for /usr
Message-ID:  <201402011536.s11FaadA043213@oldred.freebsd.org>
Resent-Message-ID: <201402011540.s11Fe0u1076089@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         186345
>Category:       misc
>Synopsis:       FreeBSD 10 Installer creates weird ZFS volume layout for /usr
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat Feb 01 15:40:00 UTC 2014
>Closed-Date:
>Last-Modified:
>Originator:     John-Paul Bader
>Release:        10.0 Release
>Organization:
>Environment:
FreeBSD awesome 10.0-RELEASE FreeBSD 10.0-RELEASE #0 r260789: Thu Jan 16 22:34:59 UTC 2014     root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64

>Description:
After installing a fresh FreeBSD 10.0 Release with ZFS root on my server I created a snapshot with the -r option. Then I created a file in /usr/local and wanted to rollback to the previous state but noticed that nothing happened. 

After a bit of investigation I found out that zfs list claims that /usr is a separate volume which gets its own snapshot entries but in reality it is not mounted and instead located in zroot/ROOT/default 

So in order to rollback /usr/local… I'd have to rollback zroot/Root/default. 

 zfs get all zroot/usr reports that /usr is not mounted and the canmount option is set to off.

This creates a lot of confusion and is counter intuitive. If you carefully compare the output of zfs list and mount you can see the problem maybe a bit better:

$> mount
zroot/ROOT/default on / (zfs, local, noatime, nfsv4acls)
devfs on /dev (devfs, local, multilabel)
zroot/tmp on /tmp (zfs, local, noatime, nosuid, nfsv4acls)
zroot/usr/home on /usr/home (zfs, local, noatime, nfsv4acls)
zroot/usr/ports on /usr/ports (zfs, local, noatime, nosuid, nfsv4acls)
zroot/usr/src on /usr/src (zfs, local, noatime, noexec, nosuid, nfsv4acls)
zroot/var on /var (zfs, local, noatime, nfsv4acls)
zroot/var/crash on /var/crash (zfs, local, noatime, noexec, nosuid, nfsv4acls)
zroot/var/log on /var/log (zfs, local, noatime, noexec, nosuid, nfsv4acls)
zroot/var/mail on /var/mail (zfs, local, nfsv4acls)
zroot/var/tmp on /var/tmp (zfs, local, noatime, nosuid, nfsv4acls)

Mount shows no /usr volume but when you look at zfs list you get:

$> zfs list
NAME                 USED  AVAIL  REFER  MOUNTPOINT
zroot               2.17G   103G   144K  none
zroot/ROOT           857M   103G   144K  none
zroot/ROOT/default   857M   103G   857M  /
zroot/tmp            192K   103G   192K  /tmp
zroot/usr           1.33G   103G   144K  /usr
zroot/usr/home       184K   103G   184K  /usr/home
zroot/usr/ports      813M   103G   813M  /usr/ports
zroot/usr/src        545M   103G   545M  /usr/src
zroot/var           1.27M   103G   644K  /var
zroot/var/crash      148K   103G   148K  /var/crash
zroot/var/log        212K   103G   212K  /var/log
zroot/var/mail       144K   103G   144K  /var/mail
zroot/var/tmp        152K   103G   152K  /var/tmp

when listing the snapshots again you will get an entry for /usr

zfs list -t snapshot
NAME                      USED  AVAIL  REFER  MOUNTPOINT
zroot@eins                   0      -   144K  -
zroot/ROOT@eins              0      -   144K  -
zroot/ROOT/default@eins     8K      -   857M  -
zroot/tmp@eins               0      -   192K  -
zroot/usr@eins               0      -   144K  -
zroot/usr/home@eins          0      -   184K  -
zroot/usr/ports@eins         0      -   813M  -
zroot/usr/src@eins           0      -   545M  -
zroot/var@eins             96K      -   644K  -
zroot/var/crash@eins         0      -   148K  -
zroot/var/log@eins         84K      -   212K  -
zroot/var/mail@eins          0      -   144K  -
zroot/var/tmp@eins           0      -   152K  -

but in reality /usr and all its sub directories which are not a dedicated volume are under zroot/ROOT/default.

Can you please clean up this mess if there are no real reasons to keep it that way?
>How-To-Repeat:
Install a fresh FreeBSD 10 with ZFS root filesystem with bsdinstall. Make a snapshot, create a file in /usr and try to rollback to the snapshot with zfs rollback zroot/usr@snapshot - /usr will remain the same. Instead do zfs rollback zroot/ROOT/default and the file in /usr will disappear.
>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201402011536.s11FaadA043213>