Pi 400 - Boot from USB HD

I am booting and running Tumbleweed very successfully from a micro SD card. But I want to boot and run it from a 1 TB USB hard drive (self powered). Web instructions seem to be focused on Raspbian installations and refer to changing a file called cmdline.txt which I don’t find in Tumbleweed. Grub must need to know which device to boot. How do I achieve that?

Thanks in advance.

Same procedure for laying the image onto a SD card, just point to the USB device, plug into the RPi and boot… AFAIK, boot from a USB device is already configure/enabled on the RPi4.

Thanks for the speedy response. Raspian has a specific application for copying to a USB hard drive. It handles the changed drive UUID’s. I don’t see the same kind of application in Tumbleweed. If I use dd it doesn’t do that.

Not sure why you want to reference a foreign distribution and their wackadoo (read as in not upstream, off in a world of their own) ideas for how to use openSUSE?

Not necessary, I boot of USB fine here on RPi3 with;

xzcat <image>.raw.xz | dd bs=4M of=/dev/sdb iflag=fullblock oflag=direct

Where /dev/sdb is the USB device on the host preparing said device.

Temper, temper.

Not necessary, I boot of USB fine here on RPi3 with;

xzcat .raw.xz | dd bs=4M of=/dev/sdb iflag=fullblock oflag=direct

Where /dev/sdb is the USB device on the host preparing said device.

I will try that, but I would prefer to copy my working Tumbleweed micro SD as it has all the added software I installed and config files. Is there a way to do that? Like

dd if=<micro sd plugged into usb port> bs=4M of=/dev/sdb iflag=fullblock oflag=direct

Like Malcolm I am confused on what you want.

I read your original question as that you want to install TW on a USB connected mass-storage device and then later of course boot from it. The answer is that when the system can boot from a USB mass-storage device, this is possible.
And of course, when you are installing from a DVD or another USB device, during installation you must be able to connect both the installation medium and the device you want to install to. IMHO that is not very different from when you installed it to the micro SC card.

I do not understand what "Web instructions " are and what you want to find there.

And now, just out of the blue sky, you are talking about dd. ???

You never said that.

Of course you can copy all bytes from your microSD card to your other device, The new device should then be at least as large as the microSD card. And of course all the space after the copy is then (without tinkering) unavailable. Also, when it has a GPT table, some repairing will be needed because the secondary GPT will after the copy not be at the physical end of the device where it belongs.

Web instructions refer to instructions on the Internet from a Pi 4 user using the Raspberry OS, which I also use, and they succesfully transferred my Raspberry OS micro SD card to a USB hard drive that boots. I am asking if I can do exactly the same with my Tumbleweed micro SD installation.

As for talking about dd, I am merely referring to his instruction. You may note that dd is part of that.

xzcat <image>.raw.xz | dd bs=4M of=/dev/sdb iflag=fullblock oflag=direct

No need to change UUID while copying/dd-ing an install to another medium (SD-card or SSD), as all info (including UUIDs) will be copied and everything should work.

You want to make a copy of your SD-card with TW installed to an SSD and tell grub to boot from SSD in the future, right? I havn’t done that, so no advice on that.

What malcolm recommends is imho to do a fresh “install” (basically a dd to the SSD) as raspi 4 should take care of boot device (has some kind of basic “BIOS” onboard), which should also work with pi400, which is a pi 4 :slight_smile:

disclaimer: I only use raspi 0,1,2,3…

Tried that using a newly downloaded image. Did not boot reporting…

 Unable to read partition as FAT

…and in fact when I later used fdisk on the drive there were no partitions.

PS: USB-boot is enabled on pi 4 andpi 400 by default


Some further information. After the TW install from fresh download

 xzcat openSUSE-Tumbleweed-ARM-XFCE.aarch64-rootfs.aarch64-2021.11.23-Snapshot20211130.tar.xz | dd bs=4M of=/dev/sdb iflag=fullblock oflag=direct

this is what that 300GB drive looks like.

Disk /dev/sdb: 298.09 GiB, 320072933376 bytes, 625142448 sectorsDisk model: ASMT1153e       
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 33553920 bytes

After the Raspberry OS transfer (from its booted and running micro SD card) this is what the 1TB drive looks like and it boots.

Disk /dev/sdb: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: ASMT1153e       
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x137fc297

Device     Boot  Start        End    Sectors   Size Id Type
/dev/sdb1         8192     532479     524288   256M  c W95 FAT32 (LBA)
/dev/sdb2       532480 1953525167 1952992688 931.3G 83 Linux 

You have to confirm that your USB device is /dev/sdb on your machine, i.e. run fdisk -l

It´s possible that there was a bad USB connection, but as I had done that several different ways I doubt it. Anyway the problem is solved.

I booted another (unnamed) distro on a micro SD and executed the usual method…

sudo dd if=/dev/sdb of=/dev/sdc bs=4M

sda being my un-related data drive, sdb being my TW micro SD and sdc being the new hard drive.

Now I can boot from the new hard drive. Many thanks to everyone who helped me get to a solution.