Where should I mount my internal drive partitions?

As far as I searched on the internet, I came to know that

/Media = mount point for removable media that system do it itself ( usb drive , CD )

/Mnt = temporarily mounting anything manually

I can most probably mount anything wherever I want, but if that’s the case what’s the point of /mnt? Just to be organised I suppose.

TLDR

If /mnt is for temporary and /media is for removable where should permanent non-removable devices/partitions be mounted. i.e. an internal HDD which is formatted as NTFS but needs to be automounted at startup?

Asking with the sole reason to know that, what’s the practice of user who know Linux well, unlike me.

I know this is a silly question but I asked anyway.

  •  Revan343   ( @Revan343@lemmy.ca ) 
    link
    fedilink
    15
    edit-2
    3 months ago

    Mounting locations are a convention, not a standard, mount whatever you like wherever you like. In your case, I’d mount it under /mnt/ntfs, /mnt/windows if it a windows main partition you want visible, or by drive letter if it’s a secondary drive on a dual-boot system.

    Or however you want. I would keep it under /mnt, but you don’t have to.

    Do maybe sure you have user permissions set up properly if this is a multiuser machine though

    Edit: also I would interpret

    If /mnt is for temporary

    ‘temporary’ as in ‘may become unmounted without seriously fucking the system’

    / and /home aren’t temporary. Everywhere else is

  • It ultimately doesn’t actually matter because in many cases these things are convention and there is no real system-based effect. So while it would be especially weird if your distro installed packages into those directories, it ultimately doesn’t matter. Someone already linked the filesystem hirearchy. See how tiny the /media and /mnt sections are?

    I put my fixed disks into subdirectories under /mnt and I mount my NAS shares (I keep it offline most of the time) in subdirectories in /media.

    • fixed disks under /mnt

      NAS in /media

      Why ? that’s what I’m asking. Can’t you just put in the same folder and call it a day?

      I put my fixed disk in /mnt

      My Files, which are inside the partition mounted in /mnt/something has root as Owner. So When I try to move something to Trash, it’s not allowing me to do, Only perma delete. When saw properties it said owner is root.

      Is it because mounted at /mnt?

      Files under /media seems fine. files under /media says it’s owner is ‘me’

      • The answer to your question why is because I arbitrarily decided on that years ago. That’s basically all there is to it.

        The answer to your file ownership problems I can’t answer, because I don’t have that happening. My files are mounted like so:

        LABEL=BigHD /mnt/BigHD btrfs nosuid,nodev,nofail,noatime,x-gvfs-show,compress-force=zstd:1 0 0

      • Mounting to a specific location should not affect the permissions of the drive. But in the case of NTFS and some other filesystems, Linux is not compatible with their permission model, so it is simplified by e.g. making all files be only accessible by root.
        You can override this default with mount options, or change the permissions to sensible values with chmod and chown, but I’m not sure if changing them will have negative side effects on the windows side so the latter may not be a good idea.

      • If you try to mount 2 drives to the same location, like /media/drive, the last one that you mounted will just replace the first one. You could put one at /media/drive1 and the other at /media/drive2 though.

        It doesn’t matter where you mount stuff, like it won’t break anything, as long as you’re not replacing an existing directory like I mentioned.

  • Use any you want. I’ve been mounting my internal secondary hard drive on /mnt for well over a year now and haven’t had any problems. Previously, I mounted it on ~/Storage and it also worked fine (though only because I’m the only user in my computer; dual-user systems would result in the other user being unable to access the hard drive).

  • I create /data and mount my 2nd drive there using fstab.

    I then mount /data/downloads under my user downloads folder so everything goes to my 2nd drive. That way I dont have to redownload anything if I redo my main drive.

  • I decided to simply create directories within /mnt, chmod 000 them and use them as fixed mountpoints;
    for manual temporary mounts I have /mnt/a, /mnt/b, … /mnt/f, but I never needed to use more than two of them at once.

    While this setup doesn’t really respect the filesystem hierarchy, I wouldn’t have used /mnt at all if I were constrained by its standard purpose since having one available manual mountpoint seems pretty limiting to me.
    Then again, I have 3 physical drives with ~ 10 partitions, plus one removable drive with its own dedicated mountpoint…

      • Adding to what the other comment explained:

        I use chown 000 so that regular users fail to access a directory when no filesystem is mounted on it; in practice it never happens, because “regular users” = { me }, but I like being pedantic.

        As for /mnt, it is supposed to be a single temp. mountpoint, but I use it as the parent directory of multiple mountpoints some of which are just for temporary use.

        • I use chown 000 so that regular users fail to access a directory when no filesystem is mounted on it

          My dummy brain can’t understand it man.

          Isn’t someone can’t access a directory when no filesystem is mounted on it the default behaviour?

          • No, directories without anything mounted on them are normal directories - which checks out, since you can mount anything anywhere; unlike Windows volume letters, which only exist when volumes are mounted or detected by the OS.

            When you mount a filesystem onto a directory, the OS “replaces” its contents AND permissions with that of the filesystem’s root.

            Here’s an example with my setup (hopefully you’re somewhat familiar with Bash and the output of ls -l).

            Imagine some random filesystem in /dev/sda1 owned by “user” which only contains a file named “/Hello World.txt”:

            $ # List permissions of files in /mnt:
            $ # note that none of the directories have read, write nor execute permissions
            $ ls -la /mnt
            drwxr-xr-x   1 root root          168 May 31 23:13 .
            drwxr-xr-x   1 root root          128 May 31 23:14 ..
            d---------   1 root root            0 Aug  1  2020 a/
            d---------   1 root root            0 Feb 11  2022 b/
            d---------   1 root root            0 Aug 11  2021 vdisks/
            
            $ # No read permission on a directory => directory entries cannot be listed
            $ ls /mnt/a
            cannot open directory '/mnt/a': Permission denied
            
            $ sudo mount /dev/sda1 /mnt/a
            
            $ # List again the permissions in /mnt: the root of /dev/sda1
            $ # has rwxr-xr-x (or 755) permissions, which override the 000 of /mnt/a ...
            $ ls -la /mnt
            drwxr-xr-x   1 root root          168 May 31 23:13 .
            drwxr-xr-x   1 root root          128 May 31 23:14 ..
            drwxr-xr-x   1 root root            0 Aug  1  2020 a/
            d---------   1 root root            0 Feb 11  2022 b/
            d---------   1 root root            0 Aug 11  2021 vdisks/
            
            $ # ... and its contents can be accessed by the mounted filesystem's owner:
            $ ls -la /mnt/a
            drwxr-xr-x   1 user user          168 May 31 23:13 .
            drwxr-xr-x   1 root root          168 May 31 23:13 ..
            -rw-r--r-- 1 user user   0 Jul  4 22:13 'Hello World.txt'
            
            $ find /mnt
            /mnt
            /mnt/a
            /mnt/a/Hello World.txt
            find: ‘/mnt/b Permission denied
            find: ‘/mnt/vdisks’: Permission denied
            

            Please note that me setting permissions is just extreme pedantry, it’s not necessary at all and barely changes anything and if you’re still getting familiar with how the Linux VFS and its permissions work you can just ignore all of this.

            • OS “replaces” its contents AND permissions with that of the filesystem’s root.

              So, the original content is lost forever?

              setting permissions is just extreme pedantry

              So, what’s the actual use case of it though? Even though it’s pedantry, it still there has to be some benefits, right?

              I mean, What’s the need for you to deny the access of /mnt/a untill has mounted with something? One can just leave it as it is, right?

              • So, the original content is lost forever?

                No, but it becomes invisible and inaccessible* as long as the filesystem is mounted over it - see this Stack Exchange question and accepted answer.

                The benefits are marginal, for example I can see if a filesystem is mounted by simply typing ll /mnt (ll being an alias of ls -lA) - it comes handy with my system due to how I manage a bunch of virtual machines and their virtual disks, and it’s short and easy to type.
                Some programs may refuse to write inside inaccessible directories, even if the root user can always modify regular files and directories as long as the filesystem supports it.

                It’s not a matter of security, it’s more of a hint that if I’m trying to create something inside those directories then I’m doing something wrong (like forgetting to mount a filesystem) and “permission denied” errors let me know that I am.

                • it’s more of a hint that if I’m trying to create something inside those directories then I’m doing something wrong (like forgetting to mount a filesystem) and “permission denied” errors let me know that I am.

                  Now I understand.

                  This is all new to me bro.

                  Even I don’t know if I will go this further to explain something to someone.

                  Thanks Chad.

  •  MrSoup   ( @MrSoup@lemmy.zip ) 
    link
    fedilink
    4
    edit-2
    3 months ago

    The Linux FHS does not address this, so it’s up to you where to mount it. There is no correct choice, but if you want to follow standards just mount it inside /mnt which is the nearest use-case (/media could be automatically used by your DE, so avoid it). Otherwise you can just create a custom folder in root like someone else suggested.

    Take a look at FHS spec.

    Edit:
    On arch forum someone suggests /mnt/data

    • Thank You.

      Otherwise you can just create a custom folder in root like someone else suggested

      My Files, which are inside the partition mounted in /mnt/something has root as Owner. So When I try to move something to Trash, it’s not allowing me to do, Only perma delete. When saw properties it said owner is root.

      Is it because mounted at /mnt?

      Files under /media seems fine. files under /media says it’s owner is ‘me’

      •  MrSoup   ( @MrSoup@lemmy.zip ) 
        link
        fedilink
        2
        edit-2
        3 months ago

        /mnt/something has root as Owner. So When I try to move something to Trash, it’s not allowing me to do

        You have to change permissions or owner of that folder (not /mnt itself but the subfolder “something”).
        If I’m not wrong changing permissions is enough to use gui “move to trash”, you can use chmod thru cli (man chmod) o your gui file manager with root privileges.

        If you want only your user be able to read/write to that disk, then change the owner using chown thru cli (man chown) or again your gui file manager.

          •  MrSoup   ( @MrSoup@lemmy.zip ) 
            link
            fedilink
            2
            edit-2
            3 months ago

            On Linux files and folders have permissions info for owner, group and everyone else. So you can set individual permissions for these.

            By setting the owner to root, if you want to make your user able to read/write that folder, you must either give permissions to everyone to read/write OR assign a group to the folder, give the group permissions to read/write and add your user to that group.

            If you instead set your user as the owner of the folder, you can make only your user able to read/write without other fuss.

            If you are a newbie, stick to gui file manager. Can you please tell me what file manager are you using? Most of the time you can change permissions thru right click > propriety > permissions.

            • If you instead set your user as the owner of the folder, you can make only your user able to read/write without other fuss.

              Thanks for the tip.

              Can you please tell me what file manager are you using?

              I’m using Nemo. As it’s the default one on Mint Cinnamon.

  • Unless dictated by the particular data in the disks, /mnt is generally used for system managed volumes and /media is used for user managed volumes.

    If you do something else, stick with it so you don’t get confused.