Sddm wont load desktop after migrate /home to a new ext4 partition

It seems that i missed some steps when migrating my /home directory to a new partition. but event new user created on the new partition (mounted at /home) wont login to plasma desktop

system version

opensuse tumbleweed

the misbehavior

sddm login

sddm just goes back to the login page, also i got nothing from # journalctl -xeu sddm

tty login

while the tty showes me permission denied, the ssh login seems to be nornal.

to reproduce

The steps on a fresh install to reproduce this issue are here:

localhost:/home/brucekomike # lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda      8:0    0   64G  0 disk
├─sda1   8:1    0    8M  0 part
├─sda2   8:2    0   62G  0 part /var
│                               /usr/local
│                               /srv
│                               /root
│                               /opt
│                               /home
│                               /boot/grub2/x86_64-efi
│                               /boot/grub2/i386-pc
│                               /.snapshots
│                               /
└─sda3   8:3    0    2G  0 part [SWAP]
sdb      8:16   0   32G  0 disk
sr0     11:0    1  1.1G  0 rom
localhost:/home/brucekomike # fdisk /dev/sdb

Welcome to fdisk (util-linux 2.41.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS (MBR) disklabel with disk identifier 0x60830fb7.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-67108863, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-67108863, default 67108863):

Created a new partition 1 of type 'Linux' and of size 32 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

localhost:/home/brucekomike # mkfs.ext4 /dev/sdb1
mke2fs 1.47.2 (1-Jan-2025)
Discarding device blocks: done
Creating filesystem with 8388352 4k blocks and 2097152 inodes
Filesystem UUID: e8df5ad0-90a8-4cae-a014-ebffa96d7e49
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

localhost:/home/brucekomike # lsblk -f
NAME   FSTYPE  FSVER            LABEL                        UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda
├─sda1
├─sda2 btrfs                                                 79056278-9624-4886-af93-60ab97b3c7d7   54.1G    10% /var
│                                                                                                                /usr/local
│                                                                                                                /srv
│                                                                                                                /root
│                                                                                                                /opt
│                                                                                                                /home
│                                                                                                                /boot/grub2/x86_64-efi
│                                                                                                                /boot/grub2/i386-pc
│                                                                                                                /.snapshots
│                                                                                                                /
└─sda3 swap    1                                             aed17cb1-bf08-44fc-8a3e-6f97738d47ec                [SWAP]
sdb
└─sdb1 ext4    1.0                                           e8df5ad0-90a8-4cae-a014-ebffa96d7e49
sr0    iso9660 Joliet Extension openSUSE_Tumbleweed_KDE_Live 2025-09-12-13-31-52-00
localhost:/home/brucekomike # echo UUID=e8df5ad0-90a8-4cae-a014-ebffa96d7e49 ext4 /mnt/opt 0 2 >> /etc/fstab
localhost:/home/brucekomike # mkdir /mnt/opt
localhost:/home/brucekomike # mount /dev/sdb1 /mnt/opt
localhost:/home/brucekomike # cp -r /home/brucekomike/ /mnt/opt/
localhost:/home/brucekomike # chmod 755 /mnt/opt/brucekomike/
localhost:/home/brucekomike # chown -R brucekomike:brucekomike /mnt/opt/brucekomike/
localhost:/home/brucekomike # cat /etc/fstab
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /                       btrfs  defaults                      0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /var                    btrfs  subvol=/@/var                 0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /usr/local              btrfs  subvol=/@/usr/local           0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /srv                    btrfs  subvol=/@/srv                 0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /root                   btrfs  subvol=/@/root                0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /opt                    btrfs  subvol=/@/opt                 0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /home                   btrfs  subvol=/@/home                0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /boot/grub2/x86_64-efi  btrfs  subvol=/@/boot/grub2/x86_64-efi  0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /boot/grub2/i386-pc     btrfs  subvol=/@/boot/grub2/i386-pc  0  0
UUID=aed17cb1-bf08-44fc-8a3e-6f97738d47ec  swap                    swap   defaults                      0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /.snapshots             btrfs  subvol=/@/.snapshots          0  0
UUID=e8df5ad0-90a8-4cae-a014-ebffa96d7e49 ext4 /mnt/opt 0 2
localhost:/home/brucekomike # nono /etc/fstab
localhost:/home/brucekomike # cat /etc/fstab
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /                       btrfs  defaults                      0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /var                    btrfs  subvol=/@/var                 0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /usr/local              btrfs  subvol=/@/usr/local           0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /srv                    btrfs  subvol=/@/srv                 0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /root                   btrfs  subvol=/@/root                0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /opt                    btrfs  subvol=/@/opt                 0  0
#UUID=79056278-9624-4886-af93-60ab97b3c7d7  /home                   btrfs  subvol=/@/home                0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /boot/grub2/x86_64-efi  btrfs  subvol=/@/boot/grub2/x86_64-efi  0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /boot/grub2/i386-pc     btrfs  subvol=/@/boot/grub2/i386-pc  0  0
UUID=aed17cb1-bf08-44fc-8a3e-6f97738d47ec  swap                    swap   defaults                      0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /.snapshots             btrfs  subvol=/@/.snapshots          0  0
UUID=e8df5ad0-90a8-4cae-a014-ebffa96d7e49 /home ext4 defaults 0 2

How did you migrate? All the steps please.

Oh, btw, welcome

thanks for your reply.

here is a more readable version:

steps

  • create a new partition (on a new disk)
  • mkfs.ext4
  • mount the partition on /mnt/opt
  • copy the user home using cp as root
  • solve ownership and permission issue manually
  • edit fstab
    • comment out the line about that home subvolume
    • add the ext4 partition at /home

the fstab

the fstab can be found in the to reproduce section i suddenly realized this sentence might be offensive, sorry about that.

localhost:/home/brucekomike # cat /etc/fstab
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /                       btrfs  defaults                      0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /var                    btrfs  subvol=/@/var                 0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /usr/local              btrfs  subvol=/@/usr/local           0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /srv                    btrfs  subvol=/@/srv                 0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /root                   btrfs  subvol=/@/root                0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /opt                    btrfs  subvol=/@/opt                 0  0
#UUID=79056278-9624-4886-af93-60ab97b3c7d7  /home                   btrfs  subvol=/@/home                0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /boot/grub2/x86_64-efi  btrfs  subvol=/@/boot/grub2/x86_64-efi  0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /boot/grub2/i386-pc     btrfs  subvol=/@/boot/grub2/i386-pc  0  0
UUID=aed17cb1-bf08-44fc-8a3e-6f97738d47ec  swap                    swap   defaults                      0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /.snapshots             btrfs  subvol=/@/.snapshots          0  0
UUID=e8df5ad0-90a8-4cae-a014-ebffa96d7e49 /home ext4 defaults 0 2

my wondering

  • if both partitions are ext4, this seperated /home setup works.

if ‘all’ means start from the installation.

installation media

  • openSUSE-Tumbleweed-KDE-Live-x86_64-Current.iso

fs structure at the start

i used the “suggested partitioning”

  • sda1 - boot or efi
  • sda2 - / (btrfs)
  • sda3 - swap

what partition i tried to config

  • sdb1 - /home (ext4)

other layout i tried

  • use usermod to change the home dir
    • mount sdb1 to /mnt/opt (also configured in fstab)
    • usermod --home /mnt/opt/brucekomike brucekomike

my temperary solution

currently i’m using this method.

  • revert the fstab
  • sdb1 mounted at /mnt/opt
  • use soft-link to link some folders to my home folder
    • Desktop, Documents, Downloads etc.

Just mount it as /home You don’t need to remove the original the new will replace it

Here’s how I would have done it, in a console:

  • mount /dev/sdb1 on /mnt
  • rsync -avz /home/ /mntas root
  • remove the @home subvolume from /etc/fstab
  • mount /dev/sdb1 /home

i’m still getting the same error message.

  • i removed the home folder and copy it once again
  • login immediately or after a reboot have the same result

i found some log to describe the sddm crash

Sep 29 01:04:10 localhost.localdomain systemd[1532]: Startup finished in 982ms.
Sep 29 01:04:10 localhost.localdomain systemd[1]: Started Session 1 of User brucekomike.
Sep 29 01:04:10 localhost.localdomain systemd[1]: Startup finished in 1.833s (kernel) + 1min 11.574s (initrd) + 31.783s (userspace) = 1min 45.192s.
Sep 29 01:04:10 localhost.localdomain sddm-helper[1505]: Writing cookie to "/tmp/xauth_jwBjLQ"
Sep 29 01:04:10 localhost.localdomain sddm-helper[1505]: Starting X11 session: "" "/usr/etc/X11/xdm/Xsession \"/usr/bin/startplasma-x11\""
Sep 29 01:04:10 localhost.localdomain sddm[1140]: Session started true
Sep 29 01:04:10 localhost.localdomain sddm-helper[1505]: Failed to write utmpx:  No such file or directory
Sep 29 01:04:11 localhost.localdomain systemd[1532]: Created slice User Core Session Slice.
Sep 29 01:04:11 localhost.localdomain systemd[1532]: Starting D-Bus User Message Bus...
Sep 29 01:04:11 localhost.localdomain dbus-broker-launch[1620]: Service file '/usr/share//dbus-1/services/org.jackaudio.service' is not named after the D-Bus name 'org.jackaudio.service'.
Sep 29 01:04:11 localhost.localdomain dbus-broker-launch[1620]: Service file '/usr/share//dbus-1/services/org.kde.dolphin.FileManager1.service' is not named after the D-Bus name 'org.freedesktop.FileManager1'.
Sep 29 01:04:11 localhost.localdomain dbus-broker-launch[1620]: Service file '/usr/share//dbus-1/services/org.kde.kscreen.service' is not named after the D-Bus name 'org.kde.KScreen'.
Sep 29 01:04:11 localhost.localdomain dbus-broker-launch[1620]: Service file '/usr/share//dbus-1/services/org.kde.plasma.Notifications.service' is not named after the D-Bus name 'org.freedesktop.Notifications'.
Sep 29 01:04:11 localhost.localdomain systemd[1532]: Started D-Bus User Message Bus.
Sep 29 01:04:11 localhost.localdomain dbus-broker-launch[1620]: Policy to allow eavesdropping in /usr/share/dbus-1/session.conf +31: Eavesdropping is deprecated and ignored
Sep 29 01:04:11 localhost.localdomain dbus-broker-launch[1620]: Policy to allow eavesdropping in /usr/share/dbus-1/session.conf +33: Eavesdropping is deprecated and ignored
Sep 29 01:04:11 localhost.localdomain dbus-broker-launch[1620]: Ready
Sep 29 01:04:13 localhost.localdomain startplasma-x11[1608]: QIODevice::readLineInto (QFile, "/home/brucekomike/.config/kdedefaults/package"): device not open
Sep 29 01:04:15 localhost.localdomain startplasma-x11[1608]: QPixmap: QGuiApplication must be created before calling defaultDepth().
Sep 29 01:04:15 localhost.localdomain startplasma-x11[1608]: QPixmap: QGuiApplication must be created before calling defaultDepth().
Sep 29 01:04:16 localhost.localdomain systemd[1532]: Reload requested from client PID 1608 ('startplasma-x11')...
Sep 29 01:04:16 localhost.localdomain systemd[1532]: Reloading...
Sep 29 01:04:16 localhost.localdomain systemd[1532]: Reloading finished in 525 ms.
Sep 29 01:04:16 localhost.localdomain systemd[1532]: Created slice Slice /app/dbus-:1.2-org.kde.KSplash.
Sep 29 01:04:16 localhost.localdomain systemd[1532]: Created slice User Background Tasks Slice.
Sep 29 01:04:16 localhost.localdomain systemd[1532]: Submitting pending crash events was skipped because of an unmet condition check (ConditionPathExistsGlob=/home/brucekomike/.cache/drkonqi/sentry-envelopes/*).
Sep 29 01:04:16 localhost.localdomain systemd[1532]: Started dbus-:1.2-org.kde.KSplash@0.service.
Sep 29 01:04:16 localhost.localdomain systemd[1532]: Starting KDE Config Module Initialization...
Sep 29 01:04:16 localhost.localdomain systemd[1532]: Starting KDE Global Shortcuts Server...
Sep 29 01:04:16 localhost.localdomain systemd[1532]: Starting User folders update...
Sep 29 01:04:16 localhost.localdomain systemd[1532]: Starting Baloo File Indexer Daemon...
Sep 29 01:04:16 localhost.localdomain systemd[1532]: Finished User folders update.

steps

localhost:/ # lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda      8:0    0   64G  0 disk
├─sda1   8:1    0    8M  0 part
├─sda2   8:2    0   62G  0 part /root
│                               /usr/local
│                               /var
│                               /srv
│                               /opt
│                               /boot/grub2/i386-pc
│                               /boot/grub2/x86_64-efi
│                               /.snapshots
│                               /
└─sda3   8:3    0    2G  0 part [SWAP]
sdb      8:16   0   32G  0 disk
└─sdb1   8:17   0   32G  0 part /home
sr0     11:0    1  1.1G  0 rom
localhost:/ # umount /home
localhost:/ # mount /dev/sdb1 /mnt/opt/
localhost:/ # mount /dev/sda2 -o subvol=/@/home /home
localhost:/ # rm -rf /mnt/opt/brucekomike/
localhost:/ # rsync -avz /home/ /mnt/opt
#( then a file list )
localhost:/ # umount /mnt/opt
localhost:/ # umount /home
localhost:/ # mount /home/
localhost:/ # lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda      8:0    0   64G  0 disk
├─sda1   8:1    0    8M  0 part
├─sda2   8:2    0   62G  0 part /root
│                               /usr/local
│                               /var
│                               /srv
│                               /opt
│                               /boot/grub2/i386-pc
│                               /boot/grub2/x86_64-efi
│                               /.snapshots
│                               /
└─sda3   8:3    0    2G  0 part [SWAP]
sdb      8:16   0   32G  0 disk
└─sdb1   8:17   0   32G  0 part /home
sr0     11:0    1  1.1G  0 rom

the fstab seems correct

brucekomike@localhost:~> cat /etc/fstab
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /                       btrfs  defaults                      0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /var                    btrfs  subvol=/@/var                 0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /usr/local              btrfs  subvol=/@/usr/local           0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /srv                    btrfs  subvol=/@/srv                 0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /root                   btrfs  subvol=/@/root                0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /opt                    btrfs  subvol=/@/opt                 0  0
#UUID=79056278-9624-4886-af93-60ab97b3c7d7  /home                   btrfs  subvol=/@/home                0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /boot/grub2/x86_64-efi  btrfs  subvol=/@/boot/grub2/x86_64-efi  0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /boot/grub2/i386-pc     btrfs  subvol=/@/boot/grub2/i386-pc  0  0
UUID=aed17cb1-bf08-44fc-8a3e-6f97738d47ec  swap                    swap   defaults                      0  0
UUID=79056278-9624-4886-af93-60ab97b3c7d7  /.snapshots             btrfs  subvol=/@/.snapshots          0  0
UUID=e8df5ad0-90a8-4cae-a014-ebffa96d7e49 /home                    ext4   defaults                      0  2
brucekomike@localhost:~> lsblk -f
NAME   FSTYPE  FSVER            LABEL                        UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda
├─sda1
├─sda2 btrfs                                                 79056278-9624-4886-af93-60ab97b3c7d7     54G    11% /var
│                                                                                                                /usr/local
│                                                                                                                /srv
│                                                                                                                /root
│                                                                                                                /opt
│                                                                                                                /boot/grub2/x86_64-efi
│                                                                                                                /boot/grub2/i386-pc
│                                                                                                                /.snapshots
│                                                                                                                /
└─sda3 swap    1                                             aed17cb1-bf08-44fc-8a3e-6f97738d47ec                [SWAP]
sdb
└─sdb1 ext4    1.0                                           e8df5ad0-90a8-4cae-a014-ebffa96d7e49   29.7G     0% /home
sr0    iso9660 Joliet Extension openSUSE_Tumbleweed_KDE_Live 2025-09-12-13-31-52-00

os-release

brucekomike@localhost:~> cat /etc/os-release
NAME="openSUSE Tumbleweed"
# VERSION="20250925"
ID="opensuse-tumbleweed"
ID_LIKE="opensuse suse"
VERSION_ID="20250925"
PRETTY_NAME="openSUSE Tumbleweed"
ANSI_COLOR="0;32"
# CPE 2.3 format, boo#1217921
CPE_NAME="cpe:2.3:o:opensuse:tumbleweed:20250925:*:*:*:*:*:*:*"
#CPE 2.2 format
#CPE_NAME="cpe:/o:opensuse:tumbleweed:20250925"
BUG_REPORT_URL="https://bugzilla.opensuse.org"
SUPPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Tumbleweed"
LOGO="distributor-logo-Tumbleweed"

i am going to install a new instantce with seperated /home in the beginning and to see what the installer would config.

Show

ausearch -m avc -ts boot
localhost:/home/brucekomike # ausearch -m avc -ts boot
<no matches>

the new vm works well

on both VMs

  • the vm with default partitioning replace the /home partition
  • the vm with manual partitioning using seperated /home in the beginning
localhost:/home/brucekomike # ausearch -m avc -ts boot
<no matches>

Well, find out agetty PID, run

strace -f -o /tmp/strace.out -p PID-of-agetty

log on and upload /tmp/strace.out to the https://paste.opensuse.org/. You may want to edit out password in this file.

the result is short…

950   pselect6(7, [0 4 6], NULL, NULL, NULL, NULL

with that command listening on tty3(root),

i’ve tried to log-in through:

  • sddm (both)
  • tty4 (both)

Of course you need to strace the agetty which you will be using to login.

found the correct agetty…

steps

  • tty3 pstree -p | grep agetty
  • open tty4
  • tty3 pstree -p | grep agetty
  • start the strace
  • tty4 login
  • tty4 cat /tmp/strace.out
  • tty4 ^C
  • tty3 ^C

the output file (extremely long, to be kept for a day)

https://paste.opensuse.org/pastes/b1ae82f2472e

https://paste.opensuse.org/pastes/b1ae82f2472e

i searched for permission, and i still dont now how another partiton cause this kind permission denied issue.

1568  openat(AT_FDCWD, "/etc/shadow", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied)
1579  chdir("/home/brucekomike")        = -1 EACCES (Permission denied)

Just a stab in the dark, but let us see the owners and permissions of your new /home

ls -la /home

Well, strace output including cd ~ would certainly be interesting for comparison.

Show

ls -ldZ /
ls -ldZ /home
ls -ldZ /home/brucekomike

as well as id -a when logged in as brucekomike.