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?

  • What is the output from lsblk?
    – MatsK
    Jul 10, 2018 at 6:10

2 Answers 2


/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? 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.
    – Milliways
    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. Jul 10, 2018 at 0:43
  • @lukepanayi If you boot Arch on SD Card, list the contents of cmdline.txt and /etc/fstab and fstab -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.
    – Milliways
    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.
    – Milliways
    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.

  1. Take note of your device identifier, mine is sda.
  2. Mount the USB drive in another computer. Assuming you have boot and root mounted, as instructed in installation guide such as https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-4, otherwise replace boot/ and root/ with whatever your mount points are.
  3. Edit boot/cmdline.txt, change the the beginning of the command from root=/dev/mmcblk0p2 to root=/dev/sda2.
  4. Edit root/etc/fstab, change /dev/mmcblk0p1 to /dev/sda1.
  5. 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.
    – user115418
    Dec 27, 2020 at 11:29
  • @Andyroo good point! I edited my post to warn about this for those with multiple drives.
    – Slim
    Dec 27, 2020 at 18:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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