You are not logged in.

#1 2024-03-13 02:32:09

donaastor
Member
Registered: 2022-03-14
Posts: 68

How to add noatime to fstab, initially?

Background:
The creation of partitions and their mounting commands (in fstab) during a typical installation, chronologically, looks like this:
    1. we format a partition: mkfs.ext4 /dev/x
    2. we mount it: mount /dev/x /mnt
    3. we genfstab: genfstab -U /mnt >> /mnt/etc/fstab
After all that, in fstab we do see some options listed. Investigating the genfstab script on github, I see that genfstab mainly reads the options of the currently mounted mountpoint and simply copies them into the fstab file. This means that the options could only be made in step 2, when we mount the partition for the first time. The man page for mount does not say anything about how the default options are derived when only the device and mountpoint are given as arguments. My question is, how does the "-o" command-line option affect the default options?

Concrete question:
The current default options for my / mountpoint (ext4) are: rw,relatime. I want to replace relatime with noatime and keep the rest of default options. How do I do it in the most safe way?

Comment:
I already have a functional system installed. I am asking this for my installation script/tutorial, so that I know what to do when I need to install the system again.

Last edited by donaastor (2024-03-13 02:35:09)

Offline

#2 2024-03-13 02:51:13

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,885

Re: How to add noatime to fstab, initially?

If you pick an option that conflicts with a default your option takes precedence. You can just try and see the effect.

As for the manpage not mentioning anything in this regard the header of the filesystem-independent mount options mentions the following

man mount wrote:

FILESYSTEM-INDEPENDENT MOUNT OPTIONS
       Some of these options are only useful when they appear in the /etc/fstab file.

       Some of these options could be enabled or disabled by default in the system kernel. To check the current setting
       see the options in /proc/mounts. Note that filesystems also have per-filesystem specific default mount options
       (see for example tune2fs -l output for extN filesystems).

       The options nosuid, noexec, nodiratime, relatime, noatime, strictatime, and nosymfollow are interpreted only by
       the abstract VFS kernel layer and applied to the mountpoint node rather than to the filesystem itself. Try:

              findmnt -o TARGET,VFS-OPTIONS,FS-OPTIONS

       to get a complete overview of filesystems and VFS options.

       The read-only setting (ro or rw) is interpreted by VFS and the filesystem and depends on how the option is
       specified on the mount(8) command line. The default is to interpret it on the filesystem level. The operation
       "-o bind,remount,ro" is applied only to the VFS mountpoint, and operation "-o remount,ro" is applied to VFS and
       filesystem superblock. This semantic allows create a read-only mountpoint but keeps the filesystem writable from
       another mountpoint.

       Since v2.39 libmount can use a new kernel mount interface to set the VFS options recursive. For backward
       compatibility, this feature is not enabled by default, although recursive operation (e.g. rbind) has been
       requested. The new option argument "recursive" could be specified, for example:

              mount -orbind,ro=recursive,noexec=recursive,nosuid /foo /bar

       recursively binds filesystems from /foo to /bar, /bar, and all submounts will be read-only and noexec, but only
       /bar itself will be "nosuid". The "recursive" optional argument for VFS mount options is an EXPERIMENTAL
       feature.

Last edited by V1del (2024-03-13 03:01:22)

Offline

#3 2024-03-13 03:27:52

donaastor
Member
Registered: 2022-03-14
Posts: 68

Re: How to add noatime to fstab, initially?

Thank you, V1del, for pointing out to some details of the manual page. Unfortunately, I didn't find much use of it, here are the details:

V1del wrote:

If you pick an option that conflicts with a default your option takes precedence.

I already knew that, I just don't know what the defaults are.

V1del wrote:

You can just try and see the effect.

If I could do this easily, it would be great. However, I don't yet want to download and burn arch installation usb. (Let's search online first)

man mount wrote:

Some of these options are only useful when they appear in the /etc/fstab file.

man mount wrote:

To check the current setting see the options in /proc/mounts.

Since the mount happens for the first time right after the formatting, there is nothing in these two files.

man mount wrote:

Note that filesystems also have per-filesystem specific default mount options (see for example tune2fs -l output for extN filesystems).

I checked this, it doesn't list any of the options that end up in fstab.

man mount wrote:

Some of these options could be enabled or disabled by default in the system kernel.

Seems like this is the only place to look at (ugh).

After all, I think the only option left is to test these two lines on a real system and see what happens:

mount -o noatime /dev/... /mnt
mount -o defaults,noatime /dev/... /mnt

Offline

#4 2024-03-13 09:54:14

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,885

Re: How to add noatime to fstab, initially?

The defaults are defined on a per filesysterm basis and dependant on kernel config/version/how you formatted. For ext4 it's rw,relatime in "most" cases. The only way you can be sure is running the kernel, formatting something and seeing what happens, or reading through source code and then  combining all possible combinations depending on the source you're looking at...

FWIW sicne noatime is filesystem agnostic, that's one you can always add.

Offline

Board footer

Powered by FluxBB