I've installed Arch ARM onto a USB and I'm trying to boot off of it on my Pi 3B+, but whenever I boot the error message mount: /new_root: special device /dev/mmcblk0p2 does not exist
shows up, and I'm dropped into an emergency shell. Googling yields the problem but for sda rather than mmcblk0p2. The problem persists across two USB sticks, how can I fix this?
2 Answers
/dev/mmcblk0p2
is a partition on the SD CARD mounted by the Pi mmc interface so it will not exist on your USB.
Recent Raspbian use PARTUUID
rather than device identifiers such as /dev/mmcblk0p2
.
Presumably your problem is related to the method you used to create the USB and/or SD Card
-
I see, thanks. Is there a way to get it to work on a USB, or do I need an SD card? Commented Jul 10, 2018 at 0:33
-
The answer above is to the question you actually asked. If you want advice on how to modify an image you need to provide more detail - specifically how you installed Arch and the settings of the relevant files. NOTE Arch is not really suitable for beginners as it requires a deeper knowledge of Linux. Raspbian is much easier to setup and comes with many applications pre-loaded. Commented Jul 10, 2018 at 0:39
-
I followed the guide provided on the website: archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3 and I'm aware Arch is more difficult than Raspbian, I've installed and used both several times before on Pi's but this is the first I've done it with a USB. Commented Jul 10, 2018 at 0:43
-
@lukepanayi If you boot Arch on SD Card, list the contents of
cmdline.txt
and/etc/fstab
andfstab -l /dev/mmcblk0' **into your question - not Comments** I could make some suggestions - I suggest you ask a new question with this detail. You will **ALSO** need the
PARTUUID` of the USB disk. Commented Jul 10, 2018 at 0:51 -
@lukepanayi If you installed the Arch image directly to USB without SD Card state this but you still need to supply the relevant information about the files/partitions. Commented Jul 10, 2018 at 1:00
Thanks @Milliways answer for pointing out what files to edit. You can boot to the USB just by editing the 2 files with the assigned device name of your USB device, no PARTUUID required. Warning: as @Andyroo pointed out, this can potentially cause issues on boot if you have multiple USB drives. If you do have multiple drives, UUID assignment should be used if you don't want to have to worry about having to potentially unplug your non boot drives while the Pi starts up.
A couple lines above where you saw the 'device does not exist error' will have the device identifier. For me it says [sda] Attached SCSI removable disk
.
- Take note of your device identifier, mine is
sda
. - Mount the USB drive in another computer. Assuming you have
boot
androot
mounted, as instructed in installation guide such as https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-4, otherwise replaceboot/
androot/
with whatever your mount points are. - Edit
boot/cmdline.txt
, change the the beginning of the command fromroot=/dev/mmcblk0p2
toroot=/dev/sda2
. - Edit
root/etc/fstab
, change/dev/mmcblk0p1
to/dev/sda1
. - Unmount drive and insert back into your pi, and reboot the pi. Proceed with installation.
-
Using device ID on USB is not a good idea. These can change at any point when a new drive is installed (esp a faster drive or controller) or one drive does not respond at the same time / sequence as before (HDD prone to this if 'sticky' at start up). This can lead to your sda becoming sdb and your boot not working at all.– user115418Commented Dec 27, 2020 at 11:29
-
@Andyroo good point! I edited my post to warn about this for those with multiple drives. Commented Dec 27, 2020 at 18:24
lsblk
?