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.
With Linux filesystem hierarchies you're going to run into a lot of history, conventions, quasi-standards and simply deprecated implementations.
It's a problem of "there's no bad way to do it so all options are equally fine". From this arose some "guidelines" about /bin and /usr/bin, /var, etc. but few strict rules.
For a long time there was no /media. In the '90s/2000's you would mount your CD-ROM and floppies in /mnt (e.g. /mnt/cdrom, /mnt/floppy). That was awkward as we started wanting auto-mounted things and wanted to do it from user-space. So /media/username was created to allow you to mount things with your ownership.
If it's something you want permanently mounted but not part of a pool you can put it under any location you like really. I like locations under /var as historically /var is used for things that "vary". You could just mount it in your $HOME if it's something you're going to use as a user rather than with a service.
I have a "/exports" dir for NFS mounts (e.g. /export/media, /export/storage, etc.). Just keeps it tidy and in one location.
The important thing is to use a standard that works for you and makes sense. There's not a lot of bad places to mount things. If "/mnt" makes sense for you then go for it.
Anything I add to fstab gets mounted in /mnt and removable drives get auto mounted to /media. Linux doesn't care where you mount your drives, they can be mounted anywhere you want.
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.
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'
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.
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.
Actually since their permanent non-removable drives, I would say wherever you want to place them, if they're meant primarily for storing user-based data you can do like what I used to do which was store them in within the home directory just as specific names. Like my old setup before I went proxmox was /backups was my backup drive, /home was my home drive that stored most of my users /home/steam held all my game server drive and /home/storage held my long term cold storage drive.
There's also /run/media/[username]/. Don't know if it's an OpenSUSE thing or Plasma but everything I mount through KDE's file manager Dolphin ends up there. Including stuff I set up to mount automatically.
Permanent drives should be put wherever you want them to, for example I have mine mounted in /ld1 for Large Disk 1. /media is supposed to be used by systems to mount things you plug, but some systems move that to /var/run/media or other places. /mnt is there so you don't have to create a folder in case you want to mount something really quick.
Well, I manage multiple drives since decades the same way: mount them directly into the filesystem where I need them, mostly in my home. And it does not even need to be a partition, I don't use partitions anyway (at least for my normal usage, besides the required ones). In example I have a secondary hard drive called "My" (short for My files) and I directly mount a directory called "Videos" into "/home/name/Videos". Even if I switch my drives or folder names, I can just mount it to the same place and all paths are the same and applications won't know what happened. This is flexible and makes it easy to replace stuff easily without breaking anything.
For this I use /etc/fstab . This is a file to tell the system how to mount stuff automatically at startup. However, I don't know how well it works with NTFS, as I only use EXT4 filesystem. BTW I forgot that the entire drive is mounted to /media first, and then all subdirectories are mounted where I need them. Here is an example how this is organized in my /etc/fstab file:
Little note and warning: When you remove or unplug the drive and the path is no longer available, then your cannot boot into your system anymore. Unless you edit the fstab file again (to comment out those lines) or if your system gives you the option to ignore those parts, then you can boot by ignoring non existent paths. I got scared several times in the past, when I forgot this and unplugged my drive (for replacement).
I like to mount drives at root, their parent directory being the logical purpose of the drive.
Got a drive you added that’s gonna be for games?
/games
Is it for movies?
/movies
Or maybe it’s just general data storage?
/data
No need to make it more complicated than it has to be.
This is standard across the industry, unless you are mounting disks that would conform to another strategy (say it’s a drive of repos, it might mounted under /usr/local/src/ as that’s where one would expect user provided source code).
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...
I myself have separate /Disks folder where I mount all my internal disks on boot. Not sure how "standard" such setup is, but it helped me keep my NTFS and Linux disks tidy and out of my way. For what I know you can mount your drives anywhere you like
I think tooling only cares for partitions. So /home and / are usually runtime-critical (can be on different disks or network storage), while internal data disks count as removable, since you can unmount their partitions.
I used to mount network attached storage in /mnt until I had problems accessing it from a Snap. In searching for a solution it was pointed out that snaps are correct in being sandboxed from these types of folders, and users like myself are making things difficult for ourselves by using those system folders.
They said the best practice would be to mount them in a folder in your home directory. I've switched to doing that and it works great.
I have setup servers where I mounted extra drives on /srv/nfs
When/If I switch to Linux I will probably mount my secondary drives to folders like
/home/stoy/videos
/home/stoy/music
/home/stoy/photos
/home/stoy/documents
/home/stoy/games
The ~/games will probably be an LVM since it contains little critical data and may absolutely need to be expanded to span several drives, though I would also be able to reduce the size of it and remove a drive from the LVM if needed.
I'd make a simple conky config to keep track of the drive space used
I'd just keep using the default automount spot for automounting drives.
IMO you should use LVM2 or one of the high level filesystems that have similar features, and then dynamically create partitions and mount them as needed. E.g. Suddenly need 50G for a new VM image? Make a partition and mount it where you need the space.
Mount them where you need. Not /mnt and not /media. Maybe /var or its subdirectory, or /srv, or /opt depending on what kind of data you want to store on that partition.