Flash Memory weared out -> trying to boot from msata


My internal flash drive has worn out, so i cannot mount it anymore at all. I bought a msata drive and followed the Guide @ [SOLVED] - Extroot - (expanding Turris package space).

the image on sda (msata drive) consists of the latest medkit. uboot can load zImage without problems, but as kernel is starting, It seems like the scsi modules are not compiled into zimage: I cannot build my own kernel: can someone build a kernel file or medkit with the appropriate modules compiled fix in?

[ 5.002953] Waiting 2 sec before mounting root device…
[ 7.011058] VFS: Cannot open root device “sda” or unknown-block(0,0): error -6
[ 7.018296] Please append a correct “root=” boot option; here are the available partitions:
[ 7.026679] 1f00 1024 mtdblock0 (driver?)
[ 7.031757] 1f01 7168 mtdblock1 (driver?)
[ 7.036829] b300 7634944 mmcblk0 driver: mmcblk
[ 7.042167] b301 7633920 mmcblk0p1 9d900d11-01
[ 7.047500] b318 4096 mmcblk0rpmb (driver?)
[ 7.052749] b310 4096 mmcblk0boot1 (driver?)
[ 7.058081] b308 4096 mmcblk0boot0 (driver?)
[ 7.063417] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 7.071701] CPU1: stopping
[ 7.074416] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.4.119-082ea0f4a4e204b99821bedcb349ed54-0 #1
[ 7.083481] Hardware name: Marvell Armada 380/385 (Device Tree)
[ 7.089412] Backtrace:
[ 7.091879] [] (dump_backtrace) from [] (show_stack+0x18/0x1c)
[ 7.099464] r6:00000000 r5:60000193 r4:c06c63e8 r3:00000000
[ 7.105181] [] (show_stack) from [] (dump_stack+0x98/0xac)
[ 7.112421] [] (dump_stack) from [] (handle_IPI+0x188/0x1b0)
[ 7.119832] r6:00000000 r5:c06b103c r4:00000001 r3:c06bee18
[ 7.125547] [] (handle_IPI) from [] (gic_handle_irq+0x90/0x94)
[ 7.133132] r7:f080210c r6:c06b7034 r5:c06c683c r4:f0802100
[ 7.138847] [] (gic_handle_irq) from [] (__irq_svc+0x54/0x70)
[ 7.146345] Exception stack(0xee865f48 to 0xee865f90)
[ 7.151408] 5f40: 00000001 00000000 ee865fa8 c000b520 ee864000 c06b6498
[ 7.159605] 5f60: c05c0a78 00000000 00000000 c06b2158 ee865fb8 ee865fa4 ee865fa8 ee865f98
[ 7.167799] 5f80: c001942c c0019430 60000013 ffffffff
[ 7.172859] r9:c06b2158 r8:00000000 r7:ee865f7c r6:ffffffff r5:60000013 r4:c0019430
[ 7.180679] [] (arch_cpu_idle) from [] (default_idle_call+0x28/0x34)
[ 7.188789] [] (default_idle_call) from [] (cpu_startup_entry+0x14c/0x22c)
[ 7.197421] [] (cpu_startup_entry) from [] (secondary_start_kernel+0x138/0x140)
[ 7.206485] r7:c06de360
[ 7.209033] [] (secondary_start_kernel) from [<0000962c>] (0x962c)
[ 7.216095] r5:00000051 r4:2e84c06a
[ 7.219700] —[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

please don’t create 2 threads and 1 post about the same issue, which you have. This doesn’t help and it just confusing others.

First I’d like to know if you had any LXC containers on eMMC. Most of there failures are caused by LXC containers, because of their logs by default are writing too much and that’s why we have all logs saved in RAM, but common GNU/Linux distros don’t do it. eMMC should be more reliable and faster than e.g. microSD cards, USB flash drives, but don’t forget that it has also lifespan of writes like those storages, which I mention.

In the documentation, we have mentioned that you shouldn’t use LXC containers on internal memory. Once you create LXC container it will tell you the same on the command line and notification will also appear in Foris.

In the Turris OS version 3.10, there is Storage plugin for Foris and to use this plugin, you need to have plugged some external storage (at least USB flash drive) which will do:

  • It will format a device to btrfs, create a partition
  • Move all the current data from /srv to the device’s partition
  • Mount the partition as /srv

In my eyes, it’s better to wear out USB flash drive, which you can very easily replace than eMMC, which we have soldered on board.

In the other thread, you mention that you worn out eMMC.
Can you tell me if you purchase your router during our Indiegogo campaign or you bought it from the seller?

If you purchased it from us then ping me on tech.support@turris.cz regarding the I/O error, which you get. Would you please send me the whole output from the serial console, while you’re flashing medkit? I’ll see what can I do for you because swapping eMMC will be most likely paid repair.

If you purchased it from seller then you need to contact him.

When you read it to the end I have a good news for you!
Booting from mSATA will be possible since Turris OS 3.10 because we need to enable some options in the kernel and we’ll have documentation for it, but it is only for advanced users, which know what they’re doing.
It’s possible that we’ll bring you more options from which you can boot, but it takes time.

Sorry about the double posting, i thought i errorly didnt had posted the first. Yes i had a lxc container on eMMC and i didnt notice a warning message, but thats ok. I bought it from indiegogo - i will contact you over the email address mentioned. i will be able to send you the output soon.

Is there a medkit of Version 3.10 somewhere? Id like to try to put it on the msata and see if i can boot from it.

Thanks for your help.

Sorry, can’t post output of LED 4 reset anymore - i changed the uboot variables so i can only get into rescue shell.

But what the LED4 script did was:

  • properly format /dev/mmcblk0p1
  • but as soon as it tried to mount, it just said somethinb like: mount not successful: I/O error

there was no additional information.

Any Advice how i could boot with the RC version of 3.10 from a msata?

Sorry for interrupting but just to confirm if i have understood something right, So are you saying this will be some similar functionality as i have mentioned couple months back about Khadas VIM2 having a feature to be able to boot the OS from microsdcard?


Booting Card

  • A booting card is a place stored the final images/ROM, target device will boot from the TF card and load the images/ROM.
  • If you plug-out the booting TF card from the target device, the device cannot boot into the images/ROM anymore.

as you changed u-boot variables you should need to know what you’re doing. So, I can provide you the medkit for 3.10, but you’ll really need to wait for documentation for booting from mSATA.

First I’d recommend you to use this command to reset u-boot variables to default:

env default -f -a

I’d really need the output from the serial console, so I can know what happened.

You can decide if you want to boot from eMMC or mSATA (since Turris OS 3.10).
I don’t have Khadas VIM2, but I have Odroids and Pines so if you have them you can decide if you want to use microSD card/eMMC/both. So it’ll be very similar.

@Pepe, Will there also be the possibility in the future to run the OS on a USB drive? A USB 3.0 drive (speed 5 Gbit/s). As compared to the speed of mSata drive (SATA3 --> 6 Gbit/s) is just 1 Gbit/s less difference.

Although this is still some AWESOME and very satisfying news.

We’d like to have this feature, too, but right now there is no ETA for it.

@Pepe, That is awesome. Doesn’t matter about the ETA. For now many of us will not even be using the mSATA feature of having the WHOLE OS put on there, but to just know for in the future to even have this possibility is a comforting feeling.

Anyways, thanks for the answers.