Per Boot from external USB stick / drive? - Raspberry Pi Stack Exchange: I am able to mount my USB stick within OS (/dev/sda1), I then replaced root='s value with /dev/sda1 inside of cmdline.txt from boot sdcard (rootwait is already there), yet kernel panics while booting with message:

Unable to mount root fs on unknown-block(8,1)


cmdline.txt (modified & unmodified (respectively)):

alexus@rpi2:/mnt$ cat cmdline.txt 
dwc_otg.lpm_enable=0 console=tty1 root=/dev/sda1 rootfstype=ext4 elevator=deadline rootwait quiet splash
alexus@rpi2:/mnt$ cat cmdline.bak 
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait quiet splash

/etc/fstab (original line is commented out & additional line with UUID):

alexus@rpi2:~/Desktop$ cat /etc/fstab 
proc            /proc           proc    defaults          0       0
#/dev/mmcblk0p2  /               ext4   defaults,noatime  0       1
UUID=AB6A-1DFE  /               ext4   defaults,noatime  0       1
/dev/mmcblk0p1  /boot/          vfat    defaults          0       2

output from findmnt:

alexus@rpi2:~/Desktop$ findmnt
TARGET                           SOURCE         FSTYPE          OPTIONS
/                                /dev/mmcblk0p2 ext4            rw,noatime,data=ordered
├─/dev                           devtmpfs       devtmpfs        rw,relatime,size=469760k,nr_inodes=117440,mode=755
│ ├─/dev/shm                     tmpfs          tmpfs           rw,nosuid,nodev
│ ├─/dev/pts                     devpts         devpts          rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
│ └─/dev/mqueue                  mqueue         mqueue          rw,relatime
├─/sys                           sysfs          sysfs           rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/cgroup               tmpfs          tmpfs           ro,nosuid,nodev,noexec,mode=755
│ │ ├─/sys/fs/cgroup/systemd     cgroup         cgroup          rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd
│ │ ├─/sys/fs/cgroup/cpuset      cgroup         cgroup          rw,nosuid,nodev,noexec,relatime,cpuset,clone_children
│ │ ├─/sys/fs/cgroup/devices     cgroup         cgroup          rw,nosuid,nodev,noexec,relatime,devices
│ │ ├─/sys/fs/cgroup/freezer     cgroup         cgroup          rw,nosuid,nodev,noexec,relatime,freezer
│ │ ├─/sys/fs/cgroup/net_cls     cgroup         cgroup          rw,nosuid,nodev,noexec,relatime,net_cls
│ │ ├─/sys/fs/cgroup/blkio       cgroup         cgroup          rw,nosuid,nodev,noexec,relatime,blkio
│ │ └─/sys/fs/cgroup/cpu,cpuacct cgroup         cgroup          rw,nosuid,nodev,noexec,relatime,cpu,cpuacct
│ ├─/sys/kernel/debug            debugfs        debugfs         rw,relatime
│ │ └─/sys/kernel/debug/tracing  tracefs        tracefs         rw,relatime
│ ├─/sys/kernel/config           configfs       configfs        rw,relatime
│ └─/sys/fs/fuse/connections     fusectl        fusectl         rw,relatime
├─/proc                          proc           proc            rw,relatime
│ └─/proc/sys/fs/binfmt_misc     systemd-1      autofs          rw,relatime,fd=23,pgrp=1,timeout=0,minproto=5,maxproto=5,direct
├─/run                           tmpfs          tmpfs           rw,nosuid,nodev,mode=755
│ ├─/run/lock                    tmpfs          tmpfs           rw,nosuid,nodev,noexec,relatime,size=5120k
│ └─/run/user/1000               tmpfs          tmpfs           rw,nosuid,nodev,relatime,size=94816k,mode=700,uid=1000,gid=1000
│   └─/run/user/1000/gvfs        gvfsd-fuse     fuse.gvfsd-fuse rw,nosuid,nodev,relatime,user_id=1000,group_id=1000
├─/boot                          /dev/mmcblk0p1 vfat            rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro
└─/media/alexus/LEXAR128G        /dev/sda2      vfat            rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount-ro
  • I get this exact "(8,1)," too.
    – Geremia
    Dec 29, 2016 at 2:52

1 Answer 1


The image you are trying to mount needs to have the /etc/fstab modified to match the mountpoint. The most reliable method is to use a UUID.

EDIT 2016-01-14

You seem to make things difficult for yourself. The first step is to boot from SD with the new HD, make sure everything is OK then make changes.

I assumed you would leave the fstab entry for the HD, although obviously you should mount somewhere else e.g. /mnt/hdroot (invent a name that means something to you). This lets you check the UUID and easily modify the fstab in /mnt/hdroot/etc.

The UUID looks strange, normally this would be a 128 bit value.

/dev/mmcblk0p1 /boot/ looks unusual this would normally be /boot.

You seem to have a vfat partition on /dev/sda2 mounted in /media I guess this is an auto mount in GUI.

  • I updated /etc/fstab with UUID, yet still getting same error(
    – alexus
    Jan 14, 2016 at 5:10
  • Post the contents of the files you changed into your question. If possible include the output of findmnt (You would probably need to boot to unmodified SD image to get this to work.)
    – Milliways
    Jan 14, 2016 at 5:27
  • I just tried to reboot it one more time and I got slightly different result: linux was able to boot further this time (I assume it passed not able to mount root fs), yet it still wasn't to complete bootup as xwindows didn't show up and for whatever reason / mounted as ro, so something still off(
    – alexus
    Jan 14, 2016 at 6:06
  • hmm, I did boot from sdcard first (to get device (/dev/sda1) for cmdline.txt, and to update /etc/fstab with UUID)), output from findmnt is from time when I booted with SD card and USB stick is plug into port.
    – alexus
    Jan 15, 2016 at 4:39

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.