Date: Mon, 1 Dec 2008 19:48:49 -0600 From: Dan Nelson <dnelson@allantgroup.com> To: Reinis Ivanovs <dabas@untu.ms> Cc: freebsd-questions@freebsd.org Subject: Re: Reversing a ZFS mistake Message-ID: <20081202014849.GA22076@dan.emsphone.com> In-Reply-To: <5b826e210812011636l71dc6d05n25a14acdd24b396d@mail.gmail.com> References: <5b826e210812011636l71dc6d05n25a14acdd24b396d@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
In the last episode (Dec 02), Reinis Ivanovs said: > It seems I've made a mistake using ZFS, and now my /usr/local/ is > empty. I wanted to create a snapshot of a directory inside of it, so > I ran "zfs create tank/usr/local" and "zfs create tank/usr/local/www" > as I had seen in the guides I'd been using. That worked, but the > filesystems created were empty. As I found out later, doing what I > did on Solaris would have created the filesystems but not mounted > them, but on FreeBSD they were mounted automatically, and the > previous contents hidden. The question now is, how do I get my files > back? The system is crippled without /usr/local/ and I can't unmount > or destroy it, because it says that the device is busy. Any help > would be appreciated. Solaris should have automatically mounted them too, unless you had "zfs set" canmount=noauto or mountpoint=legacy on an upper filesystem. If you intend to copy/move the existing contents into these new filesystems, you can just umount them and manually mount them somewhere else ( mount -t zfs tank/usr/local /tmp/local ) while you do the copy, then remount them in their final locations. umount -f should let you force-dismount them even if processes have open filehandles on them. If it doesn't, run "fstat -f /usr/local" and kill any processes that show up, then try umounting again. -- Dan Nelson dnelson@allantgroup.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20081202014849.GA22076>