What is /etc/mtab in Linux?





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







2















What is /etc/mtab in Linux?



Why is it needed and advantages of having it?










share|improve this question









New contributor




Sathish kumar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





















  • Related: Is there a command to see where a disk is mounted?

    – Kusalananda
    6 hours ago











  • I find it frustrating that man 5 mtab is missing.

    – Weijun Zhou
    6 hours ago











  • Also: unix.stackexchange.com/q/24182/117549

    – Jeff Schaller
    5 hours ago


















2















What is /etc/mtab in Linux?



Why is it needed and advantages of having it?










share|improve this question









New contributor




Sathish kumar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





















  • Related: Is there a command to see where a disk is mounted?

    – Kusalananda
    6 hours ago











  • I find it frustrating that man 5 mtab is missing.

    – Weijun Zhou
    6 hours ago











  • Also: unix.stackexchange.com/q/24182/117549

    – Jeff Schaller
    5 hours ago














2












2








2


1






What is /etc/mtab in Linux?



Why is it needed and advantages of having it?










share|improve this question









New contributor




Sathish kumar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












What is /etc/mtab in Linux?



Why is it needed and advantages of having it?







linux fstab






share|improve this question









New contributor




Sathish kumar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




Sathish kumar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited 6 hours ago









Kusalananda

143k18267444




143k18267444






New contributor




Sathish kumar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 6 hours ago









Sathish kumarSathish kumar

111




111




New contributor




Sathish kumar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Sathish kumar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Sathish kumar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.













  • Related: Is there a command to see where a disk is mounted?

    – Kusalananda
    6 hours ago











  • I find it frustrating that man 5 mtab is missing.

    – Weijun Zhou
    6 hours ago











  • Also: unix.stackexchange.com/q/24182/117549

    – Jeff Schaller
    5 hours ago



















  • Related: Is there a command to see where a disk is mounted?

    – Kusalananda
    6 hours ago











  • I find it frustrating that man 5 mtab is missing.

    – Weijun Zhou
    6 hours ago











  • Also: unix.stackexchange.com/q/24182/117549

    – Jeff Schaller
    5 hours ago

















Related: Is there a command to see where a disk is mounted?

– Kusalananda
6 hours ago





Related: Is there a command to see where a disk is mounted?

– Kusalananda
6 hours ago













I find it frustrating that man 5 mtab is missing.

– Weijun Zhou
6 hours ago





I find it frustrating that man 5 mtab is missing.

– Weijun Zhou
6 hours ago













Also: unix.stackexchange.com/q/24182/117549

– Jeff Schaller
5 hours ago





Also: unix.stackexchange.com/q/24182/117549

– Jeff Schaller
5 hours ago










2 Answers
2






active

oldest

votes


















5














According to man mount:




The programs mount and umount traditionally maintained a list of currently mounted filesystems in the file /etc/mtab. This real mtab file is still supported, but on current Linux systems it is better to make it a symlink to /proc/mounts instead, because a regular mtab file maintained in userspace cannot reliably work with namespaces, containers and other advanced Linux features.




On mounting without recording in /etc/mtab:




-n, --no-mtab



Mount without writing in /etc/mtab. This is necessary for example when /etc is on a read-only filesystem.




Many more nuances are given in the manual page.






share|improve this answer































    5














    % file /etc/mtab
    /etc/mtab: symbolic link to ../proc/self/mounts
    % file /proc/mounts
    /proc/mounts: symbolic link to self/mounts
    %


    /etc/mtab is a compatibility mechanism. Decades ago, Unix did not have a system call for reading the existing mount information. Instead, programs that mounted filesystems were expected to coöperatively and voluntarily maintain a table in /etc/mtab of what was mounted where.



    For obvious reasons, this was not an ideal mechanism.



    Linux gained the notion of a "procfs", and one of the things that it gained was a kernel-maintained version of this table, in the form of a mounts pseudo-regular file. The "system call" to read the mount information out of the kernel became an open-read-close sequence against that file, followed by parsing the result from human-readable to machine-readable form (something that has some subtle catches, as you can see from the bug reports from just over a fortnight ago).



    /etc/mtab thus has popularly become a symbolic link to /proc/mounts, allowing programs that had hardwired that name to keep reading a mount table from that file, which the programs that mounted and unmounted filesystems no longer have to explicitly do anything themselves to keep up to date. (Some of them still will, though, if /etc/mtab turns out to be a writable regular file. And there are a few corner cases where the normalized information in mounts that lacks all non-kernel stuff is not quite what is needed; although they do not outweigh the general problems with /etc/mtab.)



    Each process can nowadays have its own individual view of what is mounted, and there are as a consequence now individual mounts files for each process in the procfs, each process's own table being accessible to it via the self symbolic link as self/mounts, and /proc/mounts is also now a compatibility mechanism. (Interestingly, neither per-process mounts nor the format of mounts are documented in the current Linux doco, although the similar mountinfo pseudo-regular file is.)



    SunOS/Solaris has a similar mechanism. The /etc/mnttab file is actually a single-file filesystem, and in addition to reading the table, via an open file descriptor to that file, with the read() system call, one can watch for mount point changes with poll() and obtain various further pieces of information with ioctl().



    In HP-UX, /etc/mnttab is likewise the name of the file, but as of version 11 it was still a regular file whose contents were coöperatively maintained by the system utility programs.



    AIX does not export a human-readable text table that programs have to parse, and there is no equivalent file. The BSDs, similarly, have fully-fledged system calls, getfsstat() on FreeBSD and OpenBSD, for programs to obtain the mount table from the kernel in machine-readable form without marshalling it through a human-readable intermediate form.



    Further reading




    • Zygmunt Krynicki (2019-03-16). r in path confuses mount units. #12018. systemd issues.

    • Zbigniew Jędrzejewski-Szmek (2019-04-04). [df] incorrect parsing of /proc/self/mountinfo with r in mount path. #35137. GNU coreutils bugs.


    • getfsstat(). FreeBSD System Calls Manual. 2016-12-27.






    share|improve this answer
























    • In complement with my comment in the question here is the mtab(5) from the old days: man.cat-v.org/unix_8th/5/mtab.

      – Weijun Zhou
      4 hours ago












    Your Answer








    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "106"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });






    Sathish kumar is a new contributor. Be nice, and check out our Code of Conduct.










    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f514078%2fwhat-is-etc-mtab-in-linux%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    5














    According to man mount:




    The programs mount and umount traditionally maintained a list of currently mounted filesystems in the file /etc/mtab. This real mtab file is still supported, but on current Linux systems it is better to make it a symlink to /proc/mounts instead, because a regular mtab file maintained in userspace cannot reliably work with namespaces, containers and other advanced Linux features.




    On mounting without recording in /etc/mtab:




    -n, --no-mtab



    Mount without writing in /etc/mtab. This is necessary for example when /etc is on a read-only filesystem.




    Many more nuances are given in the manual page.






    share|improve this answer




























      5














      According to man mount:




      The programs mount and umount traditionally maintained a list of currently mounted filesystems in the file /etc/mtab. This real mtab file is still supported, but on current Linux systems it is better to make it a symlink to /proc/mounts instead, because a regular mtab file maintained in userspace cannot reliably work with namespaces, containers and other advanced Linux features.




      On mounting without recording in /etc/mtab:




      -n, --no-mtab



      Mount without writing in /etc/mtab. This is necessary for example when /etc is on a read-only filesystem.




      Many more nuances are given in the manual page.






      share|improve this answer


























        5












        5








        5







        According to man mount:




        The programs mount and umount traditionally maintained a list of currently mounted filesystems in the file /etc/mtab. This real mtab file is still supported, but on current Linux systems it is better to make it a symlink to /proc/mounts instead, because a regular mtab file maintained in userspace cannot reliably work with namespaces, containers and other advanced Linux features.




        On mounting without recording in /etc/mtab:




        -n, --no-mtab



        Mount without writing in /etc/mtab. This is necessary for example when /etc is on a read-only filesystem.




        Many more nuances are given in the manual page.






        share|improve this answer













        According to man mount:




        The programs mount and umount traditionally maintained a list of currently mounted filesystems in the file /etc/mtab. This real mtab file is still supported, but on current Linux systems it is better to make it a symlink to /proc/mounts instead, because a regular mtab file maintained in userspace cannot reliably work with namespaces, containers and other advanced Linux features.




        On mounting without recording in /etc/mtab:




        -n, --no-mtab



        Mount without writing in /etc/mtab. This is necessary for example when /etc is on a read-only filesystem.




        Many more nuances are given in the manual page.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 6 hours ago









        ChristopherChristopher

        11k33349




        11k33349

























            5














            % file /etc/mtab
            /etc/mtab: symbolic link to ../proc/self/mounts
            % file /proc/mounts
            /proc/mounts: symbolic link to self/mounts
            %


            /etc/mtab is a compatibility mechanism. Decades ago, Unix did not have a system call for reading the existing mount information. Instead, programs that mounted filesystems were expected to coöperatively and voluntarily maintain a table in /etc/mtab of what was mounted where.



            For obvious reasons, this was not an ideal mechanism.



            Linux gained the notion of a "procfs", and one of the things that it gained was a kernel-maintained version of this table, in the form of a mounts pseudo-regular file. The "system call" to read the mount information out of the kernel became an open-read-close sequence against that file, followed by parsing the result from human-readable to machine-readable form (something that has some subtle catches, as you can see from the bug reports from just over a fortnight ago).



            /etc/mtab thus has popularly become a symbolic link to /proc/mounts, allowing programs that had hardwired that name to keep reading a mount table from that file, which the programs that mounted and unmounted filesystems no longer have to explicitly do anything themselves to keep up to date. (Some of them still will, though, if /etc/mtab turns out to be a writable regular file. And there are a few corner cases where the normalized information in mounts that lacks all non-kernel stuff is not quite what is needed; although they do not outweigh the general problems with /etc/mtab.)



            Each process can nowadays have its own individual view of what is mounted, and there are as a consequence now individual mounts files for each process in the procfs, each process's own table being accessible to it via the self symbolic link as self/mounts, and /proc/mounts is also now a compatibility mechanism. (Interestingly, neither per-process mounts nor the format of mounts are documented in the current Linux doco, although the similar mountinfo pseudo-regular file is.)



            SunOS/Solaris has a similar mechanism. The /etc/mnttab file is actually a single-file filesystem, and in addition to reading the table, via an open file descriptor to that file, with the read() system call, one can watch for mount point changes with poll() and obtain various further pieces of information with ioctl().



            In HP-UX, /etc/mnttab is likewise the name of the file, but as of version 11 it was still a regular file whose contents were coöperatively maintained by the system utility programs.



            AIX does not export a human-readable text table that programs have to parse, and there is no equivalent file. The BSDs, similarly, have fully-fledged system calls, getfsstat() on FreeBSD and OpenBSD, for programs to obtain the mount table from the kernel in machine-readable form without marshalling it through a human-readable intermediate form.



            Further reading




            • Zygmunt Krynicki (2019-03-16). r in path confuses mount units. #12018. systemd issues.

            • Zbigniew Jędrzejewski-Szmek (2019-04-04). [df] incorrect parsing of /proc/self/mountinfo with r in mount path. #35137. GNU coreutils bugs.


            • getfsstat(). FreeBSD System Calls Manual. 2016-12-27.






            share|improve this answer
























            • In complement with my comment in the question here is the mtab(5) from the old days: man.cat-v.org/unix_8th/5/mtab.

              – Weijun Zhou
              4 hours ago
















            5














            % file /etc/mtab
            /etc/mtab: symbolic link to ../proc/self/mounts
            % file /proc/mounts
            /proc/mounts: symbolic link to self/mounts
            %


            /etc/mtab is a compatibility mechanism. Decades ago, Unix did not have a system call for reading the existing mount information. Instead, programs that mounted filesystems were expected to coöperatively and voluntarily maintain a table in /etc/mtab of what was mounted where.



            For obvious reasons, this was not an ideal mechanism.



            Linux gained the notion of a "procfs", and one of the things that it gained was a kernel-maintained version of this table, in the form of a mounts pseudo-regular file. The "system call" to read the mount information out of the kernel became an open-read-close sequence against that file, followed by parsing the result from human-readable to machine-readable form (something that has some subtle catches, as you can see from the bug reports from just over a fortnight ago).



            /etc/mtab thus has popularly become a symbolic link to /proc/mounts, allowing programs that had hardwired that name to keep reading a mount table from that file, which the programs that mounted and unmounted filesystems no longer have to explicitly do anything themselves to keep up to date. (Some of them still will, though, if /etc/mtab turns out to be a writable regular file. And there are a few corner cases where the normalized information in mounts that lacks all non-kernel stuff is not quite what is needed; although they do not outweigh the general problems with /etc/mtab.)



            Each process can nowadays have its own individual view of what is mounted, and there are as a consequence now individual mounts files for each process in the procfs, each process's own table being accessible to it via the self symbolic link as self/mounts, and /proc/mounts is also now a compatibility mechanism. (Interestingly, neither per-process mounts nor the format of mounts are documented in the current Linux doco, although the similar mountinfo pseudo-regular file is.)



            SunOS/Solaris has a similar mechanism. The /etc/mnttab file is actually a single-file filesystem, and in addition to reading the table, via an open file descriptor to that file, with the read() system call, one can watch for mount point changes with poll() and obtain various further pieces of information with ioctl().



            In HP-UX, /etc/mnttab is likewise the name of the file, but as of version 11 it was still a regular file whose contents were coöperatively maintained by the system utility programs.



            AIX does not export a human-readable text table that programs have to parse, and there is no equivalent file. The BSDs, similarly, have fully-fledged system calls, getfsstat() on FreeBSD and OpenBSD, for programs to obtain the mount table from the kernel in machine-readable form without marshalling it through a human-readable intermediate form.



            Further reading




            • Zygmunt Krynicki (2019-03-16). r in path confuses mount units. #12018. systemd issues.

            • Zbigniew Jędrzejewski-Szmek (2019-04-04). [df] incorrect parsing of /proc/self/mountinfo with r in mount path. #35137. GNU coreutils bugs.


            • getfsstat(). FreeBSD System Calls Manual. 2016-12-27.






            share|improve this answer
























            • In complement with my comment in the question here is the mtab(5) from the old days: man.cat-v.org/unix_8th/5/mtab.

              – Weijun Zhou
              4 hours ago














            5












            5








            5







            % file /etc/mtab
            /etc/mtab: symbolic link to ../proc/self/mounts
            % file /proc/mounts
            /proc/mounts: symbolic link to self/mounts
            %


            /etc/mtab is a compatibility mechanism. Decades ago, Unix did not have a system call for reading the existing mount information. Instead, programs that mounted filesystems were expected to coöperatively and voluntarily maintain a table in /etc/mtab of what was mounted where.



            For obvious reasons, this was not an ideal mechanism.



            Linux gained the notion of a "procfs", and one of the things that it gained was a kernel-maintained version of this table, in the form of a mounts pseudo-regular file. The "system call" to read the mount information out of the kernel became an open-read-close sequence against that file, followed by parsing the result from human-readable to machine-readable form (something that has some subtle catches, as you can see from the bug reports from just over a fortnight ago).



            /etc/mtab thus has popularly become a symbolic link to /proc/mounts, allowing programs that had hardwired that name to keep reading a mount table from that file, which the programs that mounted and unmounted filesystems no longer have to explicitly do anything themselves to keep up to date. (Some of them still will, though, if /etc/mtab turns out to be a writable regular file. And there are a few corner cases where the normalized information in mounts that lacks all non-kernel stuff is not quite what is needed; although they do not outweigh the general problems with /etc/mtab.)



            Each process can nowadays have its own individual view of what is mounted, and there are as a consequence now individual mounts files for each process in the procfs, each process's own table being accessible to it via the self symbolic link as self/mounts, and /proc/mounts is also now a compatibility mechanism. (Interestingly, neither per-process mounts nor the format of mounts are documented in the current Linux doco, although the similar mountinfo pseudo-regular file is.)



            SunOS/Solaris has a similar mechanism. The /etc/mnttab file is actually a single-file filesystem, and in addition to reading the table, via an open file descriptor to that file, with the read() system call, one can watch for mount point changes with poll() and obtain various further pieces of information with ioctl().



            In HP-UX, /etc/mnttab is likewise the name of the file, but as of version 11 it was still a regular file whose contents were coöperatively maintained by the system utility programs.



            AIX does not export a human-readable text table that programs have to parse, and there is no equivalent file. The BSDs, similarly, have fully-fledged system calls, getfsstat() on FreeBSD and OpenBSD, for programs to obtain the mount table from the kernel in machine-readable form without marshalling it through a human-readable intermediate form.



            Further reading




            • Zygmunt Krynicki (2019-03-16). r in path confuses mount units. #12018. systemd issues.

            • Zbigniew Jędrzejewski-Szmek (2019-04-04). [df] incorrect parsing of /proc/self/mountinfo with r in mount path. #35137. GNU coreutils bugs.


            • getfsstat(). FreeBSD System Calls Manual. 2016-12-27.






            share|improve this answer













            % file /etc/mtab
            /etc/mtab: symbolic link to ../proc/self/mounts
            % file /proc/mounts
            /proc/mounts: symbolic link to self/mounts
            %


            /etc/mtab is a compatibility mechanism. Decades ago, Unix did not have a system call for reading the existing mount information. Instead, programs that mounted filesystems were expected to coöperatively and voluntarily maintain a table in /etc/mtab of what was mounted where.



            For obvious reasons, this was not an ideal mechanism.



            Linux gained the notion of a "procfs", and one of the things that it gained was a kernel-maintained version of this table, in the form of a mounts pseudo-regular file. The "system call" to read the mount information out of the kernel became an open-read-close sequence against that file, followed by parsing the result from human-readable to machine-readable form (something that has some subtle catches, as you can see from the bug reports from just over a fortnight ago).



            /etc/mtab thus has popularly become a symbolic link to /proc/mounts, allowing programs that had hardwired that name to keep reading a mount table from that file, which the programs that mounted and unmounted filesystems no longer have to explicitly do anything themselves to keep up to date. (Some of them still will, though, if /etc/mtab turns out to be a writable regular file. And there are a few corner cases where the normalized information in mounts that lacks all non-kernel stuff is not quite what is needed; although they do not outweigh the general problems with /etc/mtab.)



            Each process can nowadays have its own individual view of what is mounted, and there are as a consequence now individual mounts files for each process in the procfs, each process's own table being accessible to it via the self symbolic link as self/mounts, and /proc/mounts is also now a compatibility mechanism. (Interestingly, neither per-process mounts nor the format of mounts are documented in the current Linux doco, although the similar mountinfo pseudo-regular file is.)



            SunOS/Solaris has a similar mechanism. The /etc/mnttab file is actually a single-file filesystem, and in addition to reading the table, via an open file descriptor to that file, with the read() system call, one can watch for mount point changes with poll() and obtain various further pieces of information with ioctl().



            In HP-UX, /etc/mnttab is likewise the name of the file, but as of version 11 it was still a regular file whose contents were coöperatively maintained by the system utility programs.



            AIX does not export a human-readable text table that programs have to parse, and there is no equivalent file. The BSDs, similarly, have fully-fledged system calls, getfsstat() on FreeBSD and OpenBSD, for programs to obtain the mount table from the kernel in machine-readable form without marshalling it through a human-readable intermediate form.



            Further reading




            • Zygmunt Krynicki (2019-03-16). r in path confuses mount units. #12018. systemd issues.

            • Zbigniew Jędrzejewski-Szmek (2019-04-04). [df] incorrect parsing of /proc/self/mountinfo with r in mount path. #35137. GNU coreutils bugs.


            • getfsstat(). FreeBSD System Calls Manual. 2016-12-27.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered 4 hours ago









            JdeBPJdeBP

            38.4k478185




            38.4k478185













            • In complement with my comment in the question here is the mtab(5) from the old days: man.cat-v.org/unix_8th/5/mtab.

              – Weijun Zhou
              4 hours ago



















            • In complement with my comment in the question here is the mtab(5) from the old days: man.cat-v.org/unix_8th/5/mtab.

              – Weijun Zhou
              4 hours ago

















            In complement with my comment in the question here is the mtab(5) from the old days: man.cat-v.org/unix_8th/5/mtab.

            – Weijun Zhou
            4 hours ago





            In complement with my comment in the question here is the mtab(5) from the old days: man.cat-v.org/unix_8th/5/mtab.

            – Weijun Zhou
            4 hours ago










            Sathish kumar is a new contributor. Be nice, and check out our Code of Conduct.










            draft saved

            draft discarded


















            Sathish kumar is a new contributor. Be nice, and check out our Code of Conduct.













            Sathish kumar is a new contributor. Be nice, and check out our Code of Conduct.












            Sathish kumar is a new contributor. Be nice, and check out our Code of Conduct.
















            Thanks for contributing an answer to Unix & Linux Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f514078%2fwhat-is-etc-mtab-in-linux%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            How did Captain America manage to do this?

            迪纳利

            南乌拉尔铁路局