-1

I have a working Raspberry Pi 4 B and a legacy system based on an original Raspberry Pi B. I've copied the SD card to a new microSD, but booting from it says "This board requires newer software." Is there any way to make the new Pi boot from the old configuration? My goal is to make a clone of the old system that's as close as possible.

2 Answers2

0

The "newer software" required is the firmware, and the OS kernel. You should be able to use it with the old userland but I make no promises; a potential snaggle here is that new versions of the OS use an initramfs on boot which then pivots to the real root fs, but this may choke if the two are sufficiently dissimilar (dunno if that is really an issue or not).

There are two ways to approach this:

  1. Create a new card from a new image using the normal means, then replace the root filesystem using the old card.

  2. Copy the firmware and kernel from a new image onto the old card/copy.

An Rpi OS image produces an SD card with two partitions, the first one is a small vfat one containing the kernel and firmware, the second is a much larger ext4 one with the linux root filesystem.

First Method

  • Make a new card from a fresh, recent image.

  • Delete everything in the second partition of the new card except for the directories /lib/modules and /lib/firmware.

  • Copy over the old root fs. My preferred method for copying ext4 filesystems like this is:

      rsync -aHAXv --exclude=/lib/modules --exclude=/lib/firmware sourcedir/ destdir/
    

    Where sourcedir is where the second partition on the old SD card is mounted and destdir is the same from the new card. Don't leave off the trailing slashes.

If you do have a Pi that the old card currently works in, don't use it to do this. It's possible, but using a running system introduces some complications that I won't address here.

Second Method

This is the inverse of the above, more or less. You don't need to create a card from the new image though, you can instead just mount it if you like. You'll need to access both partitions.

  • On the old card or copy thereof, delete everything on the first partition.
  • Copy everything in the first partition from the new image into the first partition on the old card.
  • Delete /lib/firmware and /lib/modules from the second partition of the old card.
  • Copy everything from the same two directories of the new image onto the old card.

Important!

Regardless of which method you use, you'll have to edit cmdline.txt in the first partition of the hybrid card. It should remain all one line, no breaks, just spaces.

  • Remove init=/usr/lib/raspberrypi-sys-mods/firstboot.

  • In this bit:

      root=PARTUUID=617a2abd-02 
    

    Change the 617a2abd to the real partuuid of the card; you can get that by running, eg., blkid /dev/sda, where /dev/sda is the card.

goldilocks
  • 60,325
  • 17
  • 117
  • 234
0

This is unlikely to be possible. Raspberry Pi Ltd. recommends a fresh installation and the oldest OS that will run on a Pi4 is Buster.

Copying to an old SD (or copy) is not possible (for many reasons, including the fact that all newer OS require larger boot partition).

You can copy your home directory to a new image but you would find it simpler and faster to install new versions of any programs you want.

Milliways
  • 62,573
  • 32
  • 113
  • 225