Why is my Raspberry Pi FS read only when I didn't make it that way?

Here is my error:

sudo apt --fix-broken install 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:
The following packages will be upgraded:
1 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
4 not fully installed or removed.
Need to get 0 B/4,518 kB of archives.
After this operation, 57.3 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Reading changelogs... Done
(Reading database ... 191760 files and directories currently installed.)
Preparing to unpack .../raspberrypi-bootloader_1%3a1.20210805-1_armhf.deb ...
Adding 'diversion of /boot/start.elf to /usr/share/rpikernelhack/start.elf by rpikernelhack'
dpkg-divert: error: error checking '/boot/start.elf': Read-only file system
dpkg: error processing archive /var/cache/apt/archives/raspberrypi-bootloader_1%3a1.20210805-1_armhf.deb (--unpack):
 new raspberrypi-bootloader package pre-installation script subprocess returned error exit status 2
Errors were encountered while processing:
E: Sub-process /usr/bin/dpkg returned an error code (1)

mount -l -t vfat; mount -l -t ext4 returns:

/dev/mmcblk0p1 on /boot type vfat (ro,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro) [boot]
/dev/mmcblk0p2 on / type ext4 (rw,noatime) [rootfs]

However, I can install and uninstall things fine. What's wrong?

2 Answers 2


If you "can install and uninstall things" the file system cannot be RO.

It is possible the boot partition is mounted RO.

run mount -l -t vfat; mount -l -t ext4 and include in your question.

It is likely your FS is broken; this is not unusual with a failed install.

I would just restore from my backup and repeat the update/upgrade.

  • What if I didn't make a backup? If I make a backup now, will the RO FS be carried over?
    – g3holliday
    Aug 10, 2021 at 17:33

The answer is in the output of mount: errors=remount-ro. If there are errors on /dev/mmcblk0p1, the /boot becomes read-only, and only that part.

So, what to do next?

fsck.vfat might be able to correct the partition, after which it would be possible to remount it rw. Unmount /boot, do the fsck.vfat and mount again under /boot. In practice, that would be:

sudo umount /boot
sudo fsck -y /dev/mmcblk0p1
sudo mount /dev/mmcblk0p1 /boot

If you have backed-up /boot with dd, you might dd the boot partition back. If you just backed-up the files, you will need to re-create the file system on /boot.

If you don't know why/how the file system got broken, I would pay some extra attention to back-ups. A failing sd card can also cause a corruption of the file system.

If your Pi does not contain much data or configuration (or if it is easily backed-up), you can try to re-install the Pi from scratch.

  • How would I unmount /boot, then do the fsck.vfat?
    – g3holliday
    Aug 10, 2021 at 18:05
  • I added the commands to the answer. Aug 10, 2021 at 18:22
  • Sweet. Thanks! I did umount without sudo permissions, that's why I was asking ;(
    – g3holliday
    Aug 10, 2021 at 19:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.