How to Change sda1 to Read/Write on Raspberry Pi
If you've plugged an external drive into your Raspberry Pi and found it mounted as read-only, you're not alone. This is one of the most common storage headaches on the Pi, and it happens for several reasons — some straightforward to fix, others requiring a closer look at your specific setup.
What sda1 Actually Is
When you connect a USB drive or external hard disk to a Raspberry Pi, Linux assigns it a device name. The drive itself becomes /dev/sda, and its first partition becomes /dev/sda1. If there are multiple partitions, they appear as sda2, sda3, and so on.
When the system mounts that partition, it makes the filesystem accessible at a mount point — typically somewhere under /media/ or /mnt/. The permissions attached to that mount determine whether you can read only, or read and write.
Why sda1 Mounts as Read-Only
Understanding the cause matters, because different causes have different fixes.
Filesystem errors detected at mount time — If the Linux kernel detects inconsistencies in the filesystem during mounting, it may force a read-only mount as a protective measure. This commonly happens after an unclean disconnect or power loss.
The filesystem type — NTFS drives (formatted for Windows) and exFAT drives behave differently than ext4. Without the right drivers or packages installed, the Pi may mount them with limited permissions or fall back to read-only to avoid corruption.
Mount options set in /etc/fstab — If the partition is listed in /etc/fstab with the ro (read-only) flag, it will always mount that way regardless of other settings.
File ownership and permissions — Sometimes the drive mounts with write permissions, but only for root or a specific user — not for the pi user you're logged in as. This looks like a read-only problem but is actually a permissions issue.
Hardware or cable issues — On rare occasions, a drive that reports itself as write-protected at the hardware level will force a read-only mount.
Checking the Current Mount Status
Before changing anything, confirm how sda1 is currently mounted:
mount | grep sda1 Look for ro (read-only) or rw (read-write) in the output. You'll also see the filesystem type and mount point listed here.
To check for filesystem errors that may have triggered a forced read-only mount:
dmesg | grep sda1 Any errors reported in the kernel log will appear here and help identify whether the issue is filesystem corruption, an unsupported format, or something else.
How to Remount sda1 as Read/Write
For a Temporary Remount
If there's no underlying filesystem error, you can remount the partition with write access immediately:
sudo mount -o remount,rw /dev/sda1 Or specify the mount point directly:
sudo mount -o remount,rw /media/pi/yourdrivename This change lasts only until the drive is unmounted or the Pi reboots.
For Persistent Read/Write Access via fstab
To make sda1 mount as read/write automatically on every boot, edit /etc/fstab:
sudo nano /etc/fstab If sda1 is already listed, look for the ro option and replace it with rw. If it's not listed, you can add an entry. A basic line for an ext4 drive looks like:
/dev/sda1 /mnt/mydrive ext4 defaults,rw 0 2 For NTFS drives, defaults usually covers read/write access — but you'll need the ntfs-3g package installed:
sudo apt install ntfs-3g For exFAT drives:
sudo apt install exfat-fuse exfatprogs Fixing a Filesystem Error First 🔧
If dmesg showed filesystem errors, remounting won't work until the filesystem is repaired. Unmount the drive first, then run a filesystem check:
sudo umount /dev/sda1 sudo fsck /dev/sda1 For NTFS specifically:
sudo ntfsfix /dev/sda1 Follow any prompts, then remount. In most cases, fsck resolves minor corruption that was triggering the protective read-only mount.
Filesystem Type Comparison
| Filesystem | Native Pi Support | Read/Write Support | Best For |
|---|---|---|---|
| ext4 | ✅ Yes | Full | Pi-only drives |
| NTFS | Needs ntfs-3g | Full (with package) | Windows compatibility |
| exFAT | Needs exfat-fuse | Full (with package) | Large file cross-platform use |
| FAT32 | ✅ Yes | Full | Small drives, broad compatibility |
When Permissions Are the Real Issue
If mount shows rw but you still can't write to the drive, the problem is ownership, not the mount mode. Check who owns the files:
ls -la /mnt/mydrive If everything is owned by root, you can either change ownership:
sudo chown -R pi:pi /mnt/mydrive Or add uid and gid options to your fstab entry so the Pi mounts the drive with the right user from the start. This is especially relevant with FAT32 and exFAT, which don't store Linux ownership metadata natively.
Variables That Affect Your Outcome 🖥️
The right approach for your setup depends on several things that vary by user:
- Filesystem format — ext4, NTFS, exFAT, and FAT32 each require slightly different steps and packages
- How the drive is being used — a shared drive accessed over the network has different permission needs than a locally-attached backup drive
- Whether
/etc/fstabis already configured — adding a second conflicting fstab entry can create new problems - Raspberry Pi OS version — older versions of Raspberry Pi OS handle some filesystems differently and may need additional packages not required on newer builds
- Whether filesystem corruption is involved — skipping the
fsckstep when it's needed can leave the drive stuck in read-only even after remounting
Some users need only a one-line remount command. Others are dealing with a corrupted NTFS drive shared between Windows and the Pi, which involves package installation, filesystem repair, and a carefully written fstab entry. The gap between those two situations is significant — and which one applies depends entirely on what mount and dmesg are telling you about your specific drive right now.