Disappearing files in FreeBSD 13.0-R2
Waitman Gobble
gobble.wa at gmail.com
Mon Mar 15 15:35:17 UTC 2021
On Mon, Mar 15, 2021 at 2:44 AM David Christensen
<dpchrist at holgerdanske.com> wrote:
>
> On 3/14/21 6:22 PM, Waitman Gobble wrote:
> > On Sun, Mar 14, 2021 at 9:20 PM Waitman Gobble <gobble.wa at gmail.com> wrote:
> >>
> >> On Sun, Mar 14, 2021 at 8:00 PM David Christensen
> >> <dpchrist at holgerdanske.com> wrote:
> >>>
> >>> On 3/14/21 4:03 PM, Waitman Gobble wrote:
> >>>> I did a fresh install using ZFS with encryption. I copied the files on a
> >>>> second drive (UFS) to /usr/home/backup (ZFS). I reformatted the second
> >>>> drive ZFS and created a new pool "home" for that drive. It decided to mount
> >>>> the drive as /home. AFAIK i never told the system to do that. But /home and
> >>>> /usr/home are different, there is no link.
> >>>>
> >>>> I can only see /usr/home/backup if i boot into single user mode. If i mount
> >>>> read write or boot normally then /usr/home is empty.
> >>>>
> >>>> I copied the files to a usb drive.
> >>>>
> >>>> How do i delete the backup? Its taking up 100 gb. I can see them read only
> >>>> and copy to usb drive, but as soon as i mount read write they disappear. I
> >>>> did not import the home pool, it does not show up in the status command.
> >>>
> >>>
> >>> Please run the following commands and post your console session:
> >>>
> >>> # gpart show
> >>>
> >>> # zpool list
> >>>
> >>> # zfs list -d 1
> >>>
> >>> # zfs list -r -t all home
> >>>
> >>>
> >>> David
> >>
> >> Thanks for the reply.
> >>
> >> Ok, Here's the info from multi-user mode.
> >>
> >> In single user mode the 'home' pool (second drive) doesn't show up in
> >> status or list or anything, which is fine.
> >> When I boot into single user mode / read only then /usr/home has 100gb
> >> of backup. If I reboot to multi-user or mount read-write in single
> >> user then the files in /usr/home disappear. (even if the second drive
> >> isn't mounted). The 80 GB avail should be like 180GB I think, it's a
> >> 250GB drive. The usage stats don't change if the files in /usr/home
> >> appear or not.
> >>
> >> The home directory for the second drive is /home which isn't a link to
> >> /usr/home or vice-versa AFAIK. in multi-user mode /home has my files,
> >> /usr/home is empty. in single-user read only , /home is empty and
> >> /usr/home has the backup files.
> >>
> >> root at ayo:/home # gpart show
> >> => 40 488397088 ada0 GPT (233G)
> >> 40 532480 1 efi (260M)
> >> 532520 1024 2 freebsd-boot (512K)
> >> 533544 984 - free - (492K)
> >> 534528 4194304 3 freebsd-swap (2.0G)
> >> 4728832 483667968 4 freebsd-zfs (231G)
> >> 488396800 328 - free - (164K)
> >>
> >> => 40 976773088 ada1 GPT (466G)
> >> 40 976773088 1 freebsd-zfs (466G)
> >>
> >> => 40 976773088 da0 GPT (466G)
> >> 40 2008 - free - (1.0M)
> >> 2048 976771072 1 freebsd-ufs (466G)
> >> 976773120 8 - free - (4.0K)
> >>
> >> => 40 976773088 da1 GPT (466G)
> >> 40 2008 - free - (1.0M)
> >> 2048 976771072 1 freebsd-ufs (466G)
> >> 976773120 8 - free - (4.0K)
> >>
> >> root at ayo:/home # zpool list
> >> NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP
> >> HEALTH ALTROOT
> >> home 464G 294G 170G - - 0% 63% 1.00x ONLINE -
> >> zroot 230G 142G 87.6G - - 0% 61% 1.00x ONLINE -
> >> root at ayo:/home # zfs list -d 1
> >> NAME USED AVAIL REFER MOUNTPOINT
> >> home 294G 156G 294G /home
> >> zroot 142G 80.4G 96K /zroot
> >> zroot/ROOT 140G 80.4G 96K none
> >> zroot/tmp 184K 80.4G 184K /tmp
> >> zroot/usr 1.38G 80.4G 96K /usr
> >> zroot/var 877M 80.4G 96K /var
> >> root at ayo:/home # zfs list -r -t all home
> >> NAME USED AVAIL REFER MOUNTPOINT
> >> home 294G 156G 294G /home
> >> root at ayo:/home # ls /usr/home/
> >> [nada]
> >> root at ayo:/home #
> >>
> >>
> >
> > oops, missed a couple. sorry.
> >
> > root at ayo:/home # zfs list -r -t all home
> > NAME USED AVAIL REFER MOUNTPOINT
> > home 294G 156G 294G /home
> >
> > root at ayo:/home # zfs list -d 1
> > NAME USED AVAIL REFER MOUNTPOINT
> > home 294G 156G 294G /home
> > zroot 142G 80.4G 96K /zroot
> > zroot/ROOT 140G 80.4G 96K none
> > zroot/tmp 184K 80.4G 184K /tmp
> > zroot/usr 1.38G 80.4G 96K /usr
> > zroot/var 877M 80.4G 96K /var
>
>
> It looks like 'ada0' is a 250 GB drive with GPT and your system
> partitions. ada0p4 should be your root partition with the ZFS pool
> 'zroot', containing the root filesystem. 'zroot/usr/home' should be a
> ZFS filesystem mounted at /usr/home. These commands will confirm:
>
> # zfs list -d 1 zroot/usr
>
> # zfs list -r -t all zroot/usr/home
>
>
> '/home' should be a symbolic link to '/usr/home'. These commands will
> confirm:
>
> # ls -l /home
>
> # ls -l /usr
>
>
> It looks like 'ada1' is a 500 GB drive with the ZFS pool 'home'. ZFS
> mounts this at '/home' by default. This mount overlays the root
> filesystem symbolic link '/home', but I do not understand why
> '/usr/home/backup' disappears.
>
>
> I would do the following as root in single-user mode:
>
> 1. Record your console session with script(1). Exact details will be
> useful later; sooner if something goes wrong.
>
> 2. Take a recursive snapshot of the 'zroot' and 'home' ZFS filesystems.
> Pick a meaningful SNAPNAME (I do date/ time strings):
>
> # zfs snapshot -r zroot at SNAPNAME home at SNAPNAME
>
> 3. Unmount the ZFS filesystem 'zroot/usr/home', make it read-only,
> change its mountpoint, and mount it::
>
> # zfs unmount zroot/usr/home
>
> # zfs set readonly=on zroot/usr/home
>
> # zfs set mountpoint=/usr/oldhome zroot/usr/home
>
> # zfs mount zroot/usr/home
>
> /usr/oldhome and /usr/oldhome/backup should now be visible.
>
> (If you previously created a ZFS filesystem
> 'zroot/usr/home/backup', repeat the first, second, and fourth steps
> above; adjusting the filesystem name. The 'mountpoint' property should
> be inherited.)
>
> 4. Set the mountpoint of the ZFS pool 'home' and mount it:
>
> # zfs set mountpoint=/usr/home home
>
> # zfs mount home
>
> /usr/home should now be visible.
>
> 5. It is recommended practice not to put files and directories into the
> base filesystem of a ZFS pool (e.g. '/usr/home') -- it is better to
> create ZFS filesystems at the base level of a pool and put files,
> directories, and/or additional ZFS filesystems into those. Assuming
> '/usr/oldhome/backup' represents your old home directory, create a ZFS
> filesystem for your new home directory:
>
> # zfs create home/username
>
> Do the same when adding more accounts in the future.
>
> 6. Assuming '/usr/oldhome/backup' represents one user account, copy its
> contents to '/usr/home/username'.
>
> 7. Reboot and check everything.
>
> 8. Wait a while (hours, days, weeks). When you are certain everything
> is okay, destroy the old home filesystem:
>
> # zfs destroy -r zroot/usr/home
>
> This should reclaim space in the 'zroot' pool and filesystem.
>
>
> David
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"
Thanks for everyone's help. It seems my problem was that /home was an
actual directory. I don't recall creating that, normally I would not
do that. This was a fresh install but I rsynched some files from the
old drive to the new one, like most of /etc, /root, /usr/local, /var.
Anyhow, when I deleted /home and created a symlink, the backup
directory magically appeared in /usr/home. So I deleted that and
reclaimed 100G of drive space. Then I mounted the home pool and it
mounted to /usr/home instead of /home. Everything seems to work.
So in summary, for some reason there was a /home directory. and if you
create a pool named "home" it does magic stuff like it knows it's
supposed to be home i guess. If /home is a directory then it acts
crazy. Deleting /home makes it sane again.
--
Waitman Gobble
More information about the freebsd-questions
mailing list