Date: Sun, 14 Mar 2021 23:44:08 -0700 From: David Christensen <dpchrist@holgerdanske.com> To: freebsd-questions@freebsd.org Subject: Re: Disappearing files in FreeBSD 13.0-R2 Message-ID: <dd9b9d46-7334-b4a6-9db4-2f4504c89436@holgerdanske.com> In-Reply-To: <CAFuo_fzRtrpkXkrBfPCj5byWNKCtjLKw6sE43puOm2vE%2Bryn_Q@mail.gmail.com> References: <CAFuo_fzQFbap5T9S3OBV-f18FM=UxFXX3YWF5rOq-zP%2B-cuAYQ@mail.gmail.com> <e22f9728-de71-5990-795a-81fd9d91f832@holgerdanske.com> <CAFuo_fz1Mgb7nJ_BewG_2PPuPUQqnWJ7YhebZmLcuLch-00YaA@mail.gmail.com> <CAFuo_fzRtrpkXkrBfPCj5byWNKCtjLKw6sE43puOm2vE%2Bryn_Q@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 3/14/21 6:22 PM, Waitman Gobble wrote: > On Sun, Mar 14, 2021 at 9:20 PM Waitman Gobble <gobble.wa@gmail.com> wrote: >> >> On Sun, Mar 14, 2021 at 8:00 PM David Christensen >> <dpchrist@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@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@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@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@ayo:/home # zfs list -r -t all home >> NAME USED AVAIL REFER MOUNTPOINT >> home 294G 156G 294G /home >> root@ayo:/home # ls /usr/home/ >> [nada] >> root@ayo:/home # >> >> > > oops, missed a couple. sorry. > > root@ayo:/home # zfs list -r -t all home > NAME USED AVAIL REFER MOUNTPOINT > home 294G 156G 294G /home > > root@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@SNAPNAME home@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?dd9b9d46-7334-b4a6-9db4-2f4504c89436>