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.
/C:
You mean that you create folder in
/
namedC:
?or a joke maybe?
Seems like a joke. 🙂
I mean, wine does that with symlinks. But not on /, don’t run wine as root.
don’t run wine as root.
why? windows virus?
Yeah. And it’s a wrapper, stuff can happen. Not sure if it even works as root.
Thanks for heads up man
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.
If I’m not wrong LVM is a method which joins all your disk into single storage pool.
Let’s say I stored data all across my LVM, now I remove one of the disks. What happen now?
You are correct, LVM combines 1 or more disks into 1 or more storage pools that can then be allocated out to logical volumes as needed.
If you just up and pull a disk from a pool (volume group), you’re gonna have a bad time. You can, however, migrate the “extents” allocated to that physical disk to another in order to replace the disk, and your logical volumes can be set up with RAID-like redundancy. There’s a lot of options on how to manage it.
Thank you for explaining.
No problem! To expand further, I am 99% certain it would be perfectly viable to have a single disk volume group and just take advantage of LVM’s ability to create, resize and delete virtual partitions on the fly. I think you could also put all your disks into a single volume group, then ask it to not spread your logical volumes across multiple disks, if you wanted to. Could get a bit fiddly though.
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 likeI 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.
But what about cases where you wish to mount and share with multiple users?
If I remember correctly mnt is for static media that you expect to always be present and media is for removable media which may come and go.
This makes sense.
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. and says it’s owner is ‘me’
You probably just need to chow. The directory
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/dataThank 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’
/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.So, if I use
chmod
, I get the access and other users (if any) are free to do so.In case of
chown
, I get the full access and others can’t gain access unless I permit.Right?
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.
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’
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.
Thank You.
I also just saw your edit. Look into Linux ownership and permissions.
chmod
andchown
are important commands to know how to use as a Linux system administrator.Running
sudo chown -R user:user ./*
in/mnt/drive
will give your user account ownership of that directory and all folders inside of it.Make sure you replace
user
with your username anddrive
with the name of the mount point for the drive.sudo chown -R user:user ./*
Not afraid of terminal or anything, but can’t I do it in GUI?
EDIT: I think I can do it by going to file properties on an elevated file manager.
Hm, you probably can, but I personally don’t and I’m not sure which file manager you’re using. I like the terminal for this because it’s quicker and easier to do (or undo if you fuck up).
I also gave you the wrong command earlier,
sudo chown -R user:user ./*
doesn’t affect the top-level folder (e.g.,/mnt/drive
). My mistake.
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
The answer to your question why is because I arbitrarily decided on that years ago. That’s basically all there is to it.
Thanks for clarifying bro
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.Thank you bro. I think I’ll stick into making new folder for my disks in
/
.I would recommend to put them inside /mnt for internal disks. It’s a bit more organized that way, and by looking at the path is easier to know that it’s in an internal 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…chmod 000
What does this do? I’m a Meganoob.
Fixed mountpoints
?
having one available manual mountpoint
you mean the whole /mnt is meant to single mount point?
Sorry for all the questions.
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 itMy 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 ofls -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.
chmod
is the command to change user permissions. The numbers mean user, group, and others and the value allows read, write, execute. So, 000 means no one has permissions to get rid of the mount point. 777 means everyone has all permissions. (4 is read, 2 is write, and 1 is execute and the numbers are added. So, 644 would mean you can read/write, the group and other users have read only access.)You don’t have to use the numbers but eventually, almost every Linux admin does because it’s faster, a bit like a keyboard shortcut. But, for instance, you can add Execute permission with
chmod +x /some/file/location
.Here’s more details on the how to chmod and the historic reasons for the 0-7 system (spoiler: it’s 8 bits): https://www.redhat.com/sysadmin/linux-file-permissions-explained
Thank You for the detailed answer.
chmod vs chwon ?
chown
changes the file owner.chmod
changes permissions. So, if a file or directory is owned by root but a user should have access, you could make them the owner or you could keep root the owner and just allow read/write access.They come up more on servers where you often have multiple users with different access levels. Some users might not have
sudo
permission but do have full control over their home directory and whatever else they need. And web servers, for instance, will usually have a user calledwww-data
or similar and it’s shared by all the users in the “developer” group.
Not a pro by any means, but I mount my internal drives at /mnt. Its also where I mount my NAS
AFAIK mount point doesn’t matter
/mnt is for anything and everything. /media doesn’t even exist on Arch based distros and maybe others.
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. and says it’s owner is ‘me’
IDK if I’m doing anything wrong.
You can adjust ownership and permissions for
/mnt/something
usingchown
andchmod
.Thank You.
/mnt
is not for everything, it is a temporary mount point. For fixed drives that are constantly mounted you should use another location (that could be anywhere in the filesystem tree)./mnt
is not for everything, it is a temporary mount point.Even if I mount fixed drives on
/mnt
, there won’t be any problems, right ?Technically, no. Until you want to mount something but find
/mnt
is busy or simply forget about this and mount something there, losing access to previously mounted stuff. The only problem is that you have to remember which mountpoint you use for particular filesystem, while the FHS is designed to avoid this and abstract from physical devices as much as possible.Thanks. I guess I’ll make something like
/Disks
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.It is the same on Mint too.
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.
The best mounting position is
/booty
.Thank You for suggestion. Gonna try that Tonight and have fun mounting loads of data.
I use multiple subdirectories under /mnt for my fstab/systemd-mount managed disks. That includes local and network locations.
But isn’t anything under /mnt is defaulted to
root
as owner?Yeah, but you need root anyways to mount disks (most of the time), so doing a quick
chown
isn’t that much effort.Edit:
chown
>chmod
/[UUID or PART-UUID].[partition number/letter]
I’m an OpenBSD user, but it shouldn’t be hard to translate this to Linux:
If the partition I want to mount is
/dev/sd0i
, and sd0’s UID/DUID is3c6905d2260afe09
, I mount/dev/sd0i
at/3c6905d2260afe09.i
. fstab entry looks like3c6905d2260afe09.i /3c6905d2260afe09.i ffs rw,whatever_flags 0 0
Ik bro, but having whole bunch of random numbers as mount point seems less intuitive to me.
well diskletters/numbers can change between boots and hardware configurations, and unless you have a good label for the partition, this is the only way I can think of to name your permanent mount points that isn’t problematic/incorrect in some other way. This will always work correctly with any amount of partitions with any amount of disks; and it’s not exactly hard to get the DUID of a disk, at least on OpenBSD. It’s also highly scriptable as such.
Thanks for the info.