this post was submitted on 14 Oct 2024
32 points (97.1% liked)

Linux

48652 readers
1025 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

This laptop has one hard disk with two partitions. One of them has a bunch of data. I can't delete the data at all, dolphin(the file manager) gives a "not enough permissions error". When I try to delete stuff with rm it displays this:

rm: cannot remove 'filename': Read-only file system

What do I do?

EDIT: I backed up the data and reformatted the partition. This completely broke my install and fedora wouldn't open at all. I popped in a live USB, backed up some other stuff and I am reinstalling fedora right now (writing this from the live installer :P)

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 3 points 2 months ago* (last edited 2 months ago) (1 children)

(edit) I assume you're mounting the NTFS volume using fstab, which is how you should mount internal drives. If you're trying to use the file manager to mount it dynamically, you really should look into how to use the fstab file.

I'd like to see your mount options.

As others have said, it's best to explicitly mount it with the rw option.

Second, because NTFS doesn't understand the Unix-like file ownership of users and groups, you have to specify the UID and GID of the mounted filesystem using the uid= and gid= mount options. If you don't specify these, all files within the NTFS volume will appear as being owned by root. Use the uid=1000,gid=1000 options to mount the volume as owned by your user.

Third, use the windows_names option as well. Otherwise the filesystem will allow you to create files with illegal names, and that will completely fuck up the volume when mounted on Windows. For example, the : character is permitted by NTFS, but not by Windows.

Although, in general, just avoid using NTFS on Linux if you can. The driver is good, but there are too many basic conceptual differences between NTFS and most Linux filesystems.

[–] [email protected] 2 points 2 months ago (1 children)

Yeah..... I am so sorry but I'm just a beginner and all I see here is a bunch of jargon. I am trying the solution that [email protected] has suggested here at the moment.

Could you please point me to some sort of simple guide/video? If that's not too big of a hassle

[–] [email protected] 3 points 2 months ago* (last edited 2 months ago)

I'm not the person you're replying to, and I don't have any videos, but I do love dumping explanation on people! So here's some terms:

File System: This is the way data is laid out in terms of actual bytes on the drive. It's in charge of things like where to look to find the name of this file, or how to "last modified" date is stored, or how do I find out which files are in this folder. NTFS is a filesystem, whereas ext4 is probably the file system your linux machine is using. FAT is the older Windows one that's still used on, like, SD Cards and stuff. That having been said File System is sometimes also used to refer to the particular data on a particular partition of a disk, like "the filesystem will allow" which really means the data on your NTFS partition. Filesystem is often abbreviated "fs", and is in fact the "FS" of "NTFS"

Mounting: In unix systems, such as Linux, file systems are "mounted" to a place in the folder hierarchy. Everything in unix lives somewhere under the "root" folder /, so mounting is basically saying "Okay, you want to see the files in this filesystem. Where should I put them?", and if you say /home/user/stuff then the file "one.txt" at the root of your filesystem will now be visible at /home/user/stuff/one.txt", and if you mounted it at /mnt/things it would be /mnt/things/one.txt. The term mount is used like "attach" to mean "where do you want me to hang this new directory hierarchy on your existing one".

fstab: There are a few ways to mount things in modern linux. The classic is the mount command which looks something like mount /dev/sda1 /home/user/stuff which would take the device with the name /dev/sda1 and mounts it to the given path. Devices in linux usually live in /dev, and in this case are often given names like sda1 to represent the first hard drive (a), and the first partition of that drive (1). But, there are other ways! You can also click on the partition in your file browser and it will mount the disk for you, often auto-creating a mount path and cleaning it up when you're done, so you don't even have to think about it. Another way is fstab, which is a kind of config file that controls mounting devices. In here you can give default options for how you want drives to be mounted, and can even specify that you'd like some devices to be automatically mounted by the system on startup. This is actually an important part of how unix systems start, and how the root filesystem and other important ones get going. If you wanted your NTFS drive to always be available at a permanent location, you would edit this file to set that up. If this is something you wanted only periodically, then just clicking may be fine.

Permissions: Virtually all unix filesystems store the permissions of files and directories as a "user" and "group" that owns the files, and then a set of whether or not the owner can "read" "write" and "execute" the file, whether other members of the group can, and then whether everyone else can. If two people were on the same computer, these would allow a person to be able to see their own documents, but not see the documents by other users. Or maybe they can see them but can't make changes. And it also prevents random users of a system from changing important system configuration, when those config files are owned by the administrative user (called root by convention). Some config files will be read-only to normal users, and some contain secrets and so are permissioned so normal users can't even see them. But! NFTS doesn't follow these same conventions, so when mounting an NTFS drive on unix the driver has to produce a set of permissions that are unix-compatible, but it doesn't have anything to work off on the disk. So the person above was saying by default it assumes the safest option is to make all files owned by the user root, and so if the permissions are the only the owner can write the files, and the owner is root, this will mean it's effectively "read-only" to you. The terms uid and gid stand for "user ID" and "group ID", which are the numbers that represent a user in the data. User names are basically a convenience that allows us to give a name to a uid, but it's more efficient to store one number everywhere on disk for owner rather than a name.

So putting it all together, what they're suggesting is that you can use the /etc/fstab file, which has a very particular format, to specify default options when mounting your drive. These options include setting the uid option and gid option to your user's uid and gid, so that when the filesystem is mounted, it will appear that all the files are owned by you, so you'll have full permissions on them. They've assumed your uid and gid will be 1000 because that's a common convention, but if you're comfortable you can run the id command on the command line to output your actual uid and gid (you can ignore all the other groups your user is in for now)

They also mentioned that when mounting you can specify if you want to mount the filesystem as "read-only" or "read-write", etc. If you mount the whole filesystem read-only, then the write permissions stored on the individual files are ignored, basically. So if you were mounting with a command, or through fstab, you should make sure the rw option is present to clarify that you're looking for "read write" permissions on your mount.

That having been said, it's possible none of that is relevant to you if you're mounting the fs by just clicking in your file browser. One way to tell is if you right-click on some file you aren't allowed to edit and look at the properties there should be a Permissions tab thing. And it will list the owner of the file and what access you have. If those permissions are already set to be owned by you, then this uid thing is already taken care of for you by the file browser. In that case it might be something more fundamental to the NTFS filesystem, like the locks other people are talking about.

So those are some words and their meanings! Probably more than you wanted to know, but that's okay. I liked typing it