no tmpfs for TW?

Never until now have I tried /tmp on tmpfs. Tonight I added the exact same

tmpfs /tmp tmpfs noatime,mode=1777 0 0

to fstabs on TW, 15.3b91 & 15.2 on what seems to be my slowest 64bit PC, a 2.67GHz Core2Duo with 4GB RAM and a 3.5" Toshiba 1TB HDD. 15.3 & 15.2 on EXT4 work fine this way, while TW on EXT3 refused to mount / RW until I removed it. Does TW require different tmpfs mount syntax? Can tmpfs not be used with EXT3?

The syntax looks OK to me (I have slight ly different on 15.2, but that is only option details).
So when it does not work on TW, that is a bug IMHO.

In any case, this has nothing whatsoever to do with the file system types of other file systems you have on the system. How could it? A utterance like “Can tmpfs not be used with EXT3 /” is very strange. There is no relation between the two.

“tmpfs” for “/tmp” is the default for Tumbleweed. That’s what you should get with a new install.

For an older system, you probably just need:

systemctl unmask tmp.mount

Do that from the command line when X isn’t running, because it may take effect immediately and not wait for reboot.

Does this mean that the way he used to do this (and as I use this on 15.2) is depricated on TW now?

When I switched /tmp from disk to tmpfs on Tumbleweed I removed the corresponding line from /etc/fstab. systemd uses:

[FONT=monospace]**erlangen:~ #** systemctl cat tmp.mount 
**# /usr/lib/systemd/system/tmp.mount**
#  SPDX-License-Identifier: LGPL-2.1+ 
# 
#  This file is part of systemd. 
# 
#  systemd is free software; you can redistribute it and/or modify it 
#  under the terms of the GNU Lesser General Public License as published by 
#  the Free Software Foundation; either version 2.1 of the License, or 
#  (at your option) any later version. 

[Unit] 
Description=Temporary Directory (/tmp) 
Documentation=https://systemd.io/TEMPORARY_DIRECTORIES 
Documentation=man:file-hierarchy(7) 
Documentation=https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems 
ConditionPathIsSymbolicLink=!/tmp 
DefaultDependencies=no 
Conflicts=umount.target 
Before=local-fs.target umount.target 
After=swap.target 

[Mount] 
What=tmpfs 
Where=/tmp 
Type=tmpfs 
Options=mode=1777,strictatime,nosuid,nodev,size=50%,nr_inodes=400k 
**erlangen:~ #**



[/FONT]

Probably. I haven’t tried that, but there might be a bad interaction.

I seem to recall that the change in Tumbleweed did break my “tmpfs” mount on one system.

I converted TW’s EXT3 filesystem to EXT4, and /tmp on tmpfs seems good, I think.

With a tmpfs entry in /etc/fstab:

# head -n4 /etc/fstab
tmpfs	/tmp	tmpfs	noatime,mode=1777 0 0
#tmpfs	/tmp	tmpfs	noatime,mode=1777 0 0

/dev/sda1	/disks/C	vfat	noatime,noauto,users,gid=1000,dmask=0000,fmask=0111,utf8=true	0 0
# mount | grep tmp | sort
devtmpfs on /dev type devtmpfs (rw,nosuid,noexec,size=1957392k,nr_inodes=489348,mode=755,inode64)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,inode64)
tmpfs on /run type tmpfs (rw,nosuid,nodev,size=786980k,nr_inodes=819200,mode=755,inode64)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=393488k,nr_inodes=98372,mode=700,inode64)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,size=4096k,nr_inodes=1024,mode=755,inode64)
tmpfs on /tmp type tmpfs (rw,noatime,inode64)
# ls -l /tmp
total 0
drwxrwxrwt 2 root root 40 Mar 19 03:20 .ICE-unix
drwxrwxrwt 2 root root 40 Mar 19 03:20 .Test-unix
drwxrwxrwt 2 root root 40 Mar 19 03:20 .X11-unix
drwxrwxrwt 2 root root 40 Mar 19 03:20 .XIM-unix
drwxrwxrwt 2 root root 40 Mar 19 03:20 .font-unix
drwx------ 3 root root 60 Mar 19 03:20 systemd-private-df39c0bd341e45aba42cfa2ee5536b4f-systemd-logind.service-bnK2CM
drwx------ 3 root root 60 Mar 19 03:20 systemd-private-df39c0bd341e45aba42cfa2ee5536b4f-systemd-timesyncd.service-3NOWje
# grep ostw /etc/fstab
LABEL=11ostw		/	ext4	noatime	0 1
# systemctl status tmp.mount
● tmp.mount - /tmp
     Loaded: loaded (/etc/fstab; generated)
     Active: active (mounted) since Fri 2021-03-19 03:20:02 EDT; 4min 8s ago
      Where: /tmp
       What: tmpfs
       Docs: man:fstab(5)
             man:systemd-fstab-generator(8)
      Tasks: 0 (limit: 4587)
     CGroup: /system.slice/tmp.mount

Mar 19 03:20:02 gx745 systemd[1]: Mounting /tmp...
Mar 19 03:20:02 gx745 systemd[1]: Mounted /tmp.

Without a tmpfs entry in /etc/fstab:

# head -n4 /etc/fstab
#tmpfs	/tmp	tmpfs	noatime,mode=1777 0 0

/dev/sda1	/disks/C	vfat	noatime,noauto,users,gid=1000,dmask=0000,fmask=0111,utf8=true	0 0
LABEL=03realboot /disks/boot	ext2	noatime,noacl	0 2
# mount | grep tmp | sort
devtmpfs on /dev type devtmpfs (rw,nosuid,noexec,size=1957384k,nr_inodes=489346,mode=755,inode64)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,inode64)
tmpfs on /run type tmpfs (rw,nosuid,nodev,size=786976k,nr_inodes=819200,mode=755,inode64)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=393488k,nr_inodes=98372,mode=700,inode64)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,size=4096k,nr_inodes=1024,mode=755,inode64)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,nr_inodes=409600,inode64)
# ls -l /tmp
total 0
drwxrwxrwt 2 root root 40 Mar 19 03:11 .ICE-unix
drwxrwxrwt 2 root root 40 Mar 19 03:11 .Test-unix
drwxrwxrwt 2 root root 40 Mar 19 03:11 .X11-unix
drwxrwxrwt 2 root root 40 Mar 19 03:11 .XIM-unix
drwxrwxrwt 2 root root 40 Mar 19 03:11 .font-unix
drwx------ 3 root root 60 Mar 19 03:11 systemd-private-bfdd6e65d79344eeaab22b7cd59276f5-systemd-logind.service-SkMDgN
drwx------ 3 root root 60 Mar 19 03:11 systemd-private-bfdd6e65d79344eeaab22b7cd59276f5-systemd-timesyncd.service-qlOZ12
# grep ostw /etc/fstab
LABEL=11ostw		/	ext4	noatime	0 1
# systemctl status tmp.mount
● tmp.mount - Temporary Directory (/tmp)
     Loaded: loaded (/usr/lib/systemd/system/tmp.mount; static)
     Active: active (mounted) since Fri 2021-03-19 03:10:51 EDT; 5min ago
      Where: /tmp
       What: tmpfs
       Docs: https://systemd.io/TEMPORARY_DIRECTORIES
             man:file-hierarchy(7)
             https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
      Tasks: 0 (limit: 4587)
     CGroup: /system.slice/tmp.mount

Mar 19 03:10:51 gx745 systemd[1]: Mounting Temporary Directory (/tmp)...
Mar 19 03:10:51 gx745 systemd[1]: Mounted Temporary Directory (/tmp).

Other than timestamps, the only significant differences I see, other than the inconsequentially different heads, are the Docs sections. In short, it doesn’t seem to make any difference with or without an fstab entry. Either way, when I visit TW’s /tmp while booted to Leap, it’s empty, but the timestamp has incremented.

I am puzzled at what looks like four Xorg-related entries in /tmp while booted to TW, even though only booted into multi-user.target. :confused:

Yes, I see those. But I haven’t been puzzling over it.

Bless you for writing this. I just tried switching /tmp to tmpfs on a TW installation >7 months old while zypper dup was running. I wasted quite a bit of time puzzling over why / was subsequent to dup mounting RO until I removed the tmpfs line from fstab. That minor success made me find and reread this thread, which didn’t turn up while I was searching for a problem related to dup’ing an old TW after finding no clues in dmesg, journal or boot.msg.

Reading post #5 and performing actions suggested (remove from fstab, run ‘systemctl cat tmp.mount’) would have revealed this months ago. Ignoring systemd is an option, but this comes with side effects.

I wasn’t trying to convert /tmp to tmpfs months ago.

Ignoring systemd is an option, but this comes with side effects.
Systemd is a megalith. A normal person doesn’t absorb it all on first exposure, if ever. Nothing about fstab suggests to me any connection to systemd. There were no messages I found to suggest involvement with mounting /tmp:

# dmesg | grep fail
    0.270699] acpi PNP0A08:00: _OSC failed (AE_NOT_FOUND); disabling ASPM
# journalctl -b | grep fail
May 31 21:07:21 hp945 kernel: acpi PNP0A08:00: _OSC failed (AE_NOT_FOUND); disabling ASPM
Jun 01 01:07:49 hp945 nscd[597]: 597 stat failed for file `/etc/services'; will try again later: No such file or directory
Jun 01 01:07:49 hp945 nscd[605]: 605 stat failed for file `/etc/services'; will try again later: No such file or directory
Jun 01 01:07:49 hp945 nscd[611]: 611 stat failed for file `/etc/services'; will try again later: No such file or directory
Jun 01 01:07:49 hp945 nscd[625]: 625 stat failed for file `/etc/services'; will try again later: No such file or directory
Jun 01 01:07:49 hp945 nscd[628]: 628 stat failed for file `/etc/services'; will try again later: No such file or directory
Jun 01 01:07:50 hp945 smartd[595]: Device: /dev/sda [SAT], SMART Prefailure Attribute: 1 Raw_Read_Error_Rate changed from 101 to 100
Jun 01 01:07:50 hp945 avahi-daemon[583]: socket() failed: Address family not supported by protocol
Jun 01 01:07:50 hp945 avahi-daemon[583]: socket() failed: Address family not supported by protocol
Jun 01 01:07:50 hp945 wickedd-nanny[640]: device eth0: call to org.opensuse.Network.Firewall.firewallUp() failed: Invalid arguments
Jun 01 01:07:50 hp945 wickedd-nanny[640]: eth0: failed to bring up device, still continuing
Jun 01 01:07:50 hp945 wickedd[636]: disabling generic batch updater action 'netconfig batch': test failure, update to sysconfig-netconfig >= 0.84
https://paste.opensuse.org/49409342

Yes, it is rather hidden, but nowadays all mounting at boot is done by systemd. It uses /etc/fstab as configuration. For this to work, one could configure everything from /etc/fstab in systemd. But the last time (a few years ago?) that I stumbled into this in the systemd documentation, it advised not to do so, but to configure /etc/fstab (as always) and leave it to systemd to come to it’s own conclusions. (I did not take the trouble now to try and find that statement again, sorry).

What is more, there are now dedicated systemd parameters that can be configured in /etc/fstab like x-systemd.automount.

It’s a comprehensive project implementing consistent procedures and helps to confine linux fragmentation. To me it resembles an assortion of LEGO bricks.

There were no messages I found to suggest involvement with mounting /tmp:

With tmp.mount being masked this is expected behavior.

Nothing about fstab suggests to me any connection to systemd.

You may proceed top down:

**3400G:~ #** zypper if systemd 
Loading repository data... 
Reading installed packages... 


Information for package systemd: 
-------------------------------- 
Repository     : Haupt-Repository (OSS) 
Name           : systemd 
Version        : 246.13-1.2 
Arch           : x86_64 
Vendor         : openSUSE 
Installed Size : 11.0 MiB 
Installed      : Yes 
Status         : up-to-date 
Source package : systemd-246.13-1.2.src 
Summary        : A System and Session Manager 
Description    :  
    Systemd is a system and service manager, compatible with SysV and LSB 
    init scripts for Linux. systemd provides aggressive parallelization 
    capabilities, uses socket and D-Bus activation for starting services, 
    offers on-demand starting of daemons, keeps track of processes using 
    Linux cgroups, supports snapshotting and restoring of the system state, 
    **maintains mount and automount points** and implements an elaborate 
    transactional dependency-based service control logic. It can work as a 
    drop-in replacement for sysvinit. 

**3400G:~ #**

systemd mount - Google Suche yields systemd.mount which has comprehensive information on fstab.

Some useful commands:

3400G:~ # systemctl list-units --type mount
  UNIT                           LOAD   ACTIVE SUB     DESCRIPTION                     
  -.mount                        loaded active mounted Root Mount                      
  \x2esnapshots.mount            loaded active mounted /.snapshots                     
  boot-efi.mount                 loaded active mounted /boot/efi                       
  boot-grub2-i386\x2dpc.mount    loaded active mounted /boot/grub2/i386-pc             
  boot-grub2-x86_64\x2defi.mount loaded active mounted /boot/grub2/x86_64-efi          
  dev-hugepages.mount            loaded active mounted Huge Pages File System          
  dev-mqueue.mount               loaded active mounted POSIX Message Queue File System 
  HDD.mount                      loaded active mounted /HDD                            
  home.mount                     loaded active mounted /home                           
  opt.mount                      loaded active mounted /opt                            
  root.mount                     loaded active mounted /root                           
  run-user-1000-gvfs.mount       loaded active mounted /run/user/1000/gvfs             
  run-user-1000.mount            loaded active mounted /run/user/1000                  
  srv.mount                      loaded active mounted /srv                            
  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-tracing.mount loaded active mounted /sys/kernel/debug/tracing       
  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 Temporary Directory (/tmp)**
  usr-local.mount                loaded active mounted /usr/local                      
  var.mount                      loaded active mounted /var                            

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.

22 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.
3400G:~ # 
**3400G:~ #** systemctl cat tmp.mount    
**# /usr/lib/systemd/system/tmp.mount**
#  SPDX-License-Identifier: LGPL-2.1+ 
# 
#  This file is part of systemd. 
# 
#  systemd is free software; you can redistribute it and/or modify it 
#  under the terms of the GNU Lesser General Public License as published by 
#  the Free Software Foundation; either version 2.1 of the License, or 
#  (at your option) any later version. 

[Unit] 
Description=Temporary Directory (/tmp) 
Documentation=https://systemd.io/TEMPORARY_DIRECTORIES 
Documentation=man:file-hierarchy(7) 
Documentation=https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems 
ConditionPathIsSymbolicLink=!/tmp 
DefaultDependencies=no 
Conflicts=umount.target 
Before=local-fs.target umount.target 
After=swap.target 

[Mount] 
What=tmpfs 
Where=/tmp 
Type=tmpfs 
Options=mode=1777,strictatime,nosuid,nodev,size=50%,nr_inodes=400k 
**3400G:~ #**
**3400G:~ #** systemctl status tmp.mount 
**●** tmp.mount - Temporary Directory (/tmp) 
     Loaded: loaded (/proc/self/mountinfo; static) 
     Active: **active (mounted)** since Mon 2021-05-31 14:35:56 CEST; 22h ago 
      Where: /tmp 
       What: tmpfs 
       Docs: https://systemd.io/TEMPORARY_DIRECTORIES 
             man:file-hierarchy(7) 
             https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems 
      Tasks: 0 (limit: 4915) 
        CPU: 1ms 
     CGroup: /system.slice/tmp.mount 
**3400G:~ #**