You are not logged in.

#1 2023-08-28 21:06:57

mitch_feaster
Member
From: San Diego, CA
Registered: 2011-02-27
Posts: 55
Website

[SOLVED] Unmounting the drive that contains my home directory fails

I'm using a non-standard path for my home directory. I have a large SSD mounted at `/fast` where I've created a `/fast/home` directory to contain my system's home directories.

For example, my `/etc/passwd` entry looks like this:

mgalgs:x:1000:1000::/fast/home/mgalgs:/bin/zsh

Here is the relevant section from my system journal during shutdown showing the unmount failure:

Aug 28 13:31:55 grinchel systemd[1]: Stopped Session 3 of User mgalgs.
Aug 28 13:31:55 grinchel systemd[1]: session-3.scope: Consumed 7.626s CPU time.
Aug 28 13:31:55 grinchel systemd[1670]: redshift-gtk.service: Main process exited, code=dumped, status=11/SEGV
Aug 28 13:31:55 grinchel systemd[1]: Unmounting /fast...
Aug 28 13:31:55 grinchel systemd[1670]: redshift-gtk.service: Failed with result 'core-dump'.
Aug 28 13:31:55 grinchel systemd[1]: Stopping User Login Management...
Aug 28 13:31:55 grinchel systemd[1]: Stopping User Manager for UID 1000...
Aug 28 13:31:55 grinchel systemd-logind[785]: Removed session 3.
Aug 28 13:31:55 grinchel systemd[1670]: Activating special unit Exit the Session...
Aug 28 13:31:55 grinchel systemd[1670]: Stopped GNOME Session Manager (session: gnome).
Aug 28 13:31:55 grinchel systemd[1670]: Stopping Application launched by gnome-session-binary...
Aug 28 13:31:55 grinchel systemd[1670]: Removed slice Slice /app/gnome-session-manager.
Aug 28 13:31:55 grinchel systemd[1670]: Removed slice Slice /app/org.gnome.Terminal.
Aug 28 13:31:55 grinchel systemd[1670]: Stopped target Main User Target.
Aug 28 13:31:55 grinchel systemd[1670]: Stopped target Tasks to be run before GNOME Session starts.
Aug 28 13:31:55 grinchel systemd[1670]: Stopped target Session services which should run early before the graphical session is brought up.
Aug 28 13:31:55 grinchel systemd[1670]: Reached target Shutdown running GNOME Session.
Aug 28 13:31:55 grinchel umount[30210]: umount: /fast: target is busy.
Aug 28 13:31:55 grinchel systemd[1670]: Stopping D-Bus User Message Bus...
Aug 28 13:31:55 grinchel systemd[1670]: Stopping User preferences database...
Aug 28 13:31:55 grinchel systemd[1670]: Stopping Evolution address book service...
Aug 28 13:31:55 grinchel systemd[1670]: Stopping Evolution calendar service...
Aug 28 13:31:55 grinchel systemd[1670]: Stopping Evolution source registry...
Aug 28 13:31:55 grinchel systemd[1670]: Stopping GNOME Keyring daemon...
Aug 28 13:31:55 grinchel systemd[1]: fast.mount: Mount process exited, code=exited, status=32/n/a
Aug 28 13:31:55 grinchel systemd[1]: Failed unmounting /fast.
[...]
Aug 28 13:31:55 grinchel systemd[1670]: Closed Sound System.
Aug 28 13:31:55 grinchel systemd[1670]: Removed slice User Application Slice.
Aug 28 13:31:55 grinchel systemd[1670]: app.slice: Consumed 3min 17.190s CPU time.
Aug 28 13:31:55 grinchel systemd[1670]: Reached target Shutdown.
Aug 28 13:31:55 grinchel systemd[1670]: Finished Exit the Session.
Aug 28 13:31:55 grinchel systemd[1670]: Reached target Exit the Session.
Aug 28 13:31:55 grinchel systemd[1]: systemd-logind.service: Deactivated successfully.
Aug 28 13:31:55 grinchel systemd[1]: Stopped User Login Management.
Aug 28 13:31:55 grinchel (sd-pam)[1672]: pam_warn(systemd-user:setcred): function=[pam_sm_setcred] flags=0x8004 service=[systemd-user] terminal=[] user=[mgalgs] ruser=[<unknown>] rhost=[<unknown>]
Aug 28 13:31:55 grinchel systemd[1]: user@1000.service: Deactivated successfully.
Aug 28 13:31:55 grinchel systemd[1]: Stopped User Manager for UID 1000.
Aug 28 13:31:55 grinchel systemd[1]: user@1000.service: Consumed 4min 22.703s CPU time.
Aug 28 13:31:55 grinchel systemd[1]: Stopping Permit User Sessions...
Aug 28 13:31:55 grinchel systemd[1]: Stopping User Runtime Directory /run/user/1000...
Aug 28 13:31:55 grinchel systemd[1]: systemd-user-sessions.service: Deactivated successfully.
Aug 28 13:31:55 grinchel systemd[1]: Stopped Permit User Sessions.
Aug 28 13:31:55 grinchel systemd[1]: run-user-1000.mount: Deactivated successfully.
Aug 28 13:31:55 grinchel systemd[1]: Unmounted /run/user/1000.
Aug 28 13:31:55 grinchel systemd[1]: user-runtime-dir@1000.service: Deactivated successfully.
Aug 28 13:31:55 grinchel systemd[1]: Stopped User Runtime Directory /run/user/1000.
Aug 28 13:31:55 grinchel systemd[1]: Removed slice User Slice of UID 1000.
Aug 28 13:31:55 grinchel systemd[1]: user-1000.slice: Consumed 4min 30.339s CPU time.
Aug 28 13:31:55 grinchel systemd[1]: Stopped target User and Group Name Lookups.
Aug 28 13:31:55 grinchel systemd[1]: Stopped target Remote File Systems.

I've elided a bunch of messages but notice how it's trying to unmount `/fast` well before my user session has been fully closed. So it makes sense that unmounting `/fast` will fail since there's still user session stuff going on.

Do I need to do something to tell systemd that my home directory lives on this drive so that it will wait to unmount it until my user session is closed?

Here are some additional relevant bits of information:

> cat /etc/fstab
# Static information about the filesystems.
# See fstab(5) for details.

# <file system> <dir> <type> <options> <dump> <pass>
# /dev/sda2
UUID=814e5d36-a548-48a7-b292-26781753b667       /               ext4            rw,relatime     0 1

# /dev/sda1
UUID=C9A5-5A56          /boot           vfat            rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro   0 2

tmpfs                                     /tmp           tmpfs   defaults,noatime,mode=1777 0 0
UUID=0a4919f1-424b-48cc-aa4d-d488db2b7ced /fast btrfs defaults,nofail,compress=lzo,noatime 0 0
> systemctl cat fast.mount
# /run/systemd/generator/fast.mount
# Automatically generated by systemd-fstab-generator

[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
After=blockdev@dev-disk-by\x2duuid-0a4919f1\x2d424b\x2d48cc\x2daa4d\x2dd488db2b7ced.target

[Mount]
What=/dev/disk/by-uuid/0a4919f1-424b-48cc-aa4d-d488db2b7ced
Where=/fast
Type=btrfs
Options=defaults,nofail,compress=lzo,noatime
> systemctl cat home.mount
No files found for home.mount.
> systemctl list-units -t mount --all
  UNIT                                                              LOAD      ACTIVE   SUB     DESCRIPTION
  -.mount                                                           loaded    active   mounted Root Mount
  boot.mount                                                        loaded    active   mounted /boot
  data.mount                                                        loaded    active   mounted /data
  dev-hugepages.mount                                               loaded    active   mounted Huge Pages File System
  dev-mqueue.mount                                                  loaded    active   mounted POSIX Message Queue File System
  fast-docker-btrfs.mount                                           loaded    active   mounted /fast/docker/btrfs
  fast.mount                                                        loaded    active   mounted /fast
● home.mount                                                        not-found inactive dead    home.mount
  keybase.mount                                                     loaded    active   mounted /keybase
  proc-sys-fs-binfmt_misc.mount                                     loaded    inactive dead    Arbitrary Executable File Formats File System
● run-credentials-systemd\x2dresolved.service.mount                 not-found inactive dead    run-credentials-systemd\x2dresolved.service.mount
● run-credentials-systemd\x2dsysctl.service.mount                   not-found inactive dead    run-credentials-systemd\x2dsysctl.service.mount
● run-credentials-systemd\x2dsysusers.service.mount                 not-found inactive dead    run-credentials-systemd\x2dsysusers.service.mount
● run-credentials-systemd\x2dtmpfiles\x2dclean.service.mount        not-found inactive dead    run-credentials-systemd\x2dtmpfiles\x2dclean.service.mount
● run-credentials-systemd\x2dtmpfiles\x2dsetup.service.mount        not-found inactive dead    run-credentials-systemd\x2dtmpfiles\x2dsetup.service.mount
● run-credentials-systemd\x2dtmpfiles\x2dsetup\x2ddev.service.mount not-found inactive dead    run-credentials-systemd\x2dtmpfiles\x2dsetup\x2ddev.service.mount
● run-credentials-systemd\x2dvconsole\x2dsetup.service.mount        not-found inactive dead    run-credentials-systemd\x2dvconsole\x2dsetup.service.mount
  run-docker-netns-e3610b5b1dfd.mount                               loaded    active   mounted /run/docker/netns/e3610b5b1dfd
  run-user-1000-doc.mount                                           loaded    active   mounted /run/user/1000/doc
  run-user-1000-gvfs.mount                                          loaded    active   mounted /run/user/1000/gvfs
  run-user-1000-keybase-kbfs.mount                                  loaded    active   mounted /run/user/1000/keybase/kbfs
  run-user-1000.mount                                               loaded    active   mounted /run/user/1000
  space.mount                                                       loaded    active   mounted /space
  sys-fs-fuse-connections.mount                                     loaded    active   mounted FUSE Control File System
  sys-kernel-config.mount                                           loaded    active   mounted Kernel Configuration File System
  sys-kernel-debug.mount                                            loaded    active   mounted Kernel Debug File System
  sys-kernel-tracing.mount                                          loaded    active   mounted Kernel Trace File System
  tmp.mount                                                         loaded    active   mounted /tmp
  var-lib-machines.mount                                            loaded    inactive dead    Virtual Machine and Container Storage (Compatibility)

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.
29 loaded units listed.
To show all installed unit files use 'systemctl list-unit-files'.

Last edited by mitch_feaster (2023-08-29 20:10:24)

Offline

#2 2023-08-29 06:47:40

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 75,472

Re: [SOLVED] Unmounting the drive that contains my home directory fails

Have you tried to side-step this by bind-mounting /home to /fast/home ?

Offline

#3 2023-08-29 20:09:51

mitch_feaster
Member
From: San Diego, CA
Registered: 2011-02-27
Posts: 55
Website

Re: [SOLVED] Unmounting the drive that contains my home directory fails

Well I'll be damned, that seems to have done the trick.

For some reason when I set this system up I didn't want to do the bind mount... I don't remember my thinking on that but can't think of a good reason anymore!  ¯\_(ツ)_/¯  Bind mount it is!

Thanks!

Offline

Board footer

Powered by FluxBB