Raspberry Pi Cheap SSD Upgrade Guide

I’ve covered the benefits of taking your Raspberry Pi to a solid state drive (SSD) before extensively in this article but in a nutshell you get around a 280% increase in raw throughput and a 1000% increase in 4k random read/writes over a MicroSD card.

That’s fantastic but SSDs have traditionally been very expensive costing you as much as 4+ Raspberry Pis so it seemed silly to use a drive like that as Pi storage. Until now.

SSD now cheaper than Micro SD cards
SSD now cheaper than Micro SD cards

That’s right. Thanks to technologies such as 3D NAND flash solid state drives for consumers have now become cheaper than mid-high range MicroSD cards. With 10x the performance of MicroSD cards they are now a no-brainer upgrade for servers or IO intensive Raspberry Pi projects.

Why Choose SSD?

MicroSD cards were not designed to serve as living storage for operating systems. They are designed for devices such as cameras and smart phones that need to write and reliably store data. They’re very good at this and some cards have excellent throughput fast enough to even record 4K video.

But one thing they are not good at is 4k random writes and rewrites. These are small writes throughout a disk and consist of about 25% of all hard drive activity on a computer. Almost every action you take and even routine log file updates trigger these updates so they are very important for performance.

To show you the difference in performance I have developed a benchmark that anyone can run and uploads the results to the site. Click here to see benchmark results.

As you can see all of the top spots in the results are held by solid state drives. Further, solid state drives beat the fastest MicroSD cards by about 300%.

MicroSD performance varied wildly based on quality of the card. But even the very best and most expensive MicroSD cards got absolutely destroyed by even the cheapest solid state drives. This is because SSDs are so fast that they are limited by the speed of the Raspberry Pi’s USB 2.0 ports.

Solid state drives also have very large write caches. This lets your Raspberry Pi push data to the drive and start doing other things and let the drive itself figure out how to organize the data. Much of the throughput and other performance differences in the above chart are because of much better and faster read/write caching.

Which SSD to Buy?

The contenders for the RPI storage benchmarks
Several contenders for the RPI storage benchmarks

Since all models and types of solid state drives hit the Raspberry Pi’s USB 2.0 transfer speed limit you should buy the cheapest one that fits your needs!

If your Raspberry Pi is mostly stationary it’s easiest and cheapest to just use a normal 2.5″ SATA SSD with a USB adapter. Here’s my recommendation:

Kingston A400 SSD
Kingston A400 2.5″ SATA SSD

The Kingston A400 has been a great drive to use with the Pi for years. It’s reliable, widely available around the world, has low power requirements and performs very well. It’s also very affordable. This drive has been benchmarked over 1000 times at pibenchmarks.com and is the #1 most popular SSD among the Pi community!

Links: AliExpress*, Amazon.com*, Amazon.ca*, Amazon.com.au*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.se*, Amazon.sg*

The Kingston A400 drive performs really well in the Raspberry Pi Storage Benchmarks. It’s a great drive and is cheaper than many mid-range MicroSD cards. Another popular choice is the Crucial BX500 which you can sometimes find in a very cheap 120GB version:

StarTech 2.5" SATA to USB 3.1 Adapter
StarTech 2.5″ SATA to USB 3.1 Adapter

The USB 3.1 variant of the StarTech 2.5″ SATA adapter works well with the Pi 4. The USB 3.0 variant doesn’t have firmware updates available and is not recommended.

Links: Amazon.com*, Amazon.ca*, Amazon.com.au*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.se*, Amazon.sg*

The 2.5″ SATA to USB adapter above allows us to connect a drive like this to our Pi using USB. There is no power adapter needed as 2.5″ SSDs using adapters are low power and are powered by the Pi through USB. Be careful with enclosures as they tend to take a bit more power (especially for NVMe, see “Power Requirements” section below).

Compact SSD Options

If you move your Pi around a lot or need something more compact there are a couple of options. These eliminate having any extra cables as they plug directly into the USB slot.

SanDisk Extreme Pro USB SSD
SanDisk Extreme Pro SSD

The SanDisk Extreme Pro USB SSD is a true solid state drive. This is different than a typical “flash drive” which uses extremely cheap memory and has very low random I/O performance/throughput compared to a real solid state drive. I’ve used both the USB 3.1 and USB 3.2 variants with the Pi successfully and they benchmark very well!

Links: AliExpress*, Amazon.com*, Amazon.ca*, Amazon.com.au*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.se*, Amazon.sg*

There are some flash drives (a very small number) that are actually real solid state drives. The SanDisk Extreme Pro is the most popular one on Pi Benchmarks.

You have to be extremely careful when looking for these as 99.9% of flash drives are NOT solid states. The SanDisk Extreme Pro is a true solid state. The cheaper SanDisk Extreme and Extreme Gos are not (needs to be the pro). If you are looking at a USB style drive and they don’t explicitly state it’s a solid state drive then it definitely isn’t!

Other SSD Options

There are many other types of SSDs and storage adapters you can use. For example, there is an older type of drive technology called mini-SATA or mSATA that can be found in a lot of old laptops or bought for very very cheap. I wrote an article on mSATA to USB 3.0 storage adapters here covering these.

There are also extensive M.2 NVME to USB 3.0 and M.2 SATA to USB 3.0 options available as well. You can build a M.2 SATA or M.2 NVME SSD but you need to be careful with which type of M.2 drive you have/buy. They can be B-key, M-key, or M+B keyed. By far the most common and cheap ones are SATA with a B or B+M key. The adapter I have is this one.* For a full overview of different available options check out my Raspberry Pi 4 USB Mass Storage Device Booting Guide where collectively as a community we’ve compiled the best list we can of working and nonworking adapters.

Power Requirements

Most types of adapters can be powered by the Pi itself. One notable exception is NVMe enclosures. Throughout the years we have had hundreds of comments from people who had no trouble powering 2.5″ SATA enclosures but couldn’t get a NVMe one to work at all without a powered USB hub.

Very large older 3.5″ SATA drives are known to require more power than the Pi can provide as well as some types of very high performance models that were designed to burn more power to get extra performance gains.

For solid state storage older models of solid state drives (SSDs) are also known to draw more power than their newer counterparts. If you have a drive that you think may fall into this category then definitely be on the lookout for power related issues and extra cautious about your power setup. High end “extreme” performance models also tend to draw more power (Samsung 970 NVMe drives* are some of the fastest in the world but also pretty power hungry for the Pi).

Insufficient Power Symptoms

Symptoms of a lack of power to the drive can include the system only booting sometimes (or not at all) or working for a while and then locking up. Just because the drive boots does not mean it is getting enough power.

Some commenters on previous articles have described this as working fine until there was a sudden spike in CPU usage while they tried to do several things at once (high CPU, accessing storage, activating various hardware all at once) and then they would get a lockup/crash.

This is because the Pi is teetering on the edge of not having enough power and that spike caused it to drop enough where the drive actually lost power (likely only for tiny fractions of a second). This is enough instability to easily cause a crash and worse if it happened to be in the middle of writing something important! Usually nothing will happen other than you’ll have to restart the Pi but because of the risk of data loss and eventually corrupting files. That being said, if you’re particularly unlucky you will have to fsck the drive or potentially even reimage it if fsck is unable to repair the damage!

The best answer is to test for stability. Do this by stressing out the Pi and make sure you are doing activities that stress the CPU and storage at the same time like browsing the web, etc. and if you can do that for a few hours/days without a lockup/crash then you have a stable power setup!

Powered USB Hub Solution

For NVMe enclosures and power hungry drives I personally use this Sabrent powered USB hub and have been recommending it here on the blog for a long time:

Sabrent Powered USB Hub
Sabrent Powered USB 3.0 Hub

The Sabrent powered USB hub delivers a whopping 2.5A of dedicated power for your USB attached devices. This is almost as much as the Pi adapter itself is rated for (3.0A). It will easily power the most thirsty of setups such as NVMe enclosures.

Links: Amazon.com*, Amazon.ca*, Amazon.com.au*, Amazon.co.uk*, Amazon.es*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.se*

Note: Make sure Amazon doesn’t try to take you to the non-powered version and that it’s the one with the AC adapter that plugs in to provide extra power

If this hub isn’t an option for you and you don’t have one already you can try with it then look in the reviews for people saying that it is working with Raspberry Pi. Some powered USB hubs will not play nice with the Pi so before buying one definitely check reviews and do some careful research about what to expect with the Raspberry Pi!

Oversized Power Adapter Solution

This solution will work for setups that are right on the border of having enough and not having enough power. An example would be if you can get a stable boot but are getting occasional lockups/freezes when the power dips just below the threshold it needs.

If you are using a powerful NVMe drive/enclosure combo like the ICY BOX with a high performance Samsung NVMe drive even with the extra 500 mA it will still not even boot. I have had these oversized adapters and they are great but for a very powerful drive/adapter combination you are going to need more than 500 mA.

CanaKit 3.5A Adapter
CanaKit 3.5A Power Adapter

The CanaKit 3.5A adapter has an extra half an amp (500 mA) of capacity to give some breathing room to your accessories. This is bigger than the official Pi power supply which provides 3.0A.

Links: Amazon.com*, Amazon.ca*, Amazon.com.au*, Amazon.sg*

It’s a lot less extra wires and one less AC plug though if you are right on the border and just need a little bit more. It will depend on your individual drive/adapter combo whether it’s enough or you will have to go full powered USB hub!

In previous articles readers have told me that this specific adapter can be hard to find outside of North America. I tried to link to as many regions as I could find it in but there should be something equivalent in your region (it just likely won’t be specifically designed for the Pi but will be a more generic USB-C charger).

Look for a USB-C power supply rated to supply around 3.5A. 3.0A or lower won’t do much good as that is almost certainly what you already are using. You can use a higher one (at your own risk). The largest one I’ve ever used is my Dell laptop’s 30W USB-C power adapter. It’s probably not a good idea to go too much bigger than this or to even use one this big over the long term (I didn’t, just for occasional testing and as a emergency backup) but USB-C does have some specification improvements related to power management that seem to provide some flexibility here.

Power Limits

The Pi can only pass through a limited amount of extra power. On the Pi 4 this is up to 1.2A of extra power for peripherals (combined) on top of the board’s 3.0A power rating. This is much more than the Pi 2 and some other previous models could do which was only around 0.5A. This also means that getting a power adapter bigger than about 4.2A of rated current is pointless because the Pi won’t allow any more power to flow through to the board to the peripherals through USB anyway even if it’s available.

I’m oversimplifying a little bit to illustrate the point but if you want the full technical details they are available here in the Raspberry Pi USB documentation. The important takeaway is that going much above 3.5-4.0A or so will not actually provide any more power to the Pi because of these limits. If you’ve hit this ceiling and it still isn’t enough you need to go powered USB hub.

I’ve also used ones that charge cell phones to power Pis before and these ones are the most likely to fall into a range close to what the Pi uses. Most of the ones I had around the house for phones were 2.5A (just barely not enough) or 3.0A so it was enough for a backup spare but not enough to provide extra power. Nevertheless, it’s definitely worth it to check what you already have around and see if there are USB-C chargers around to test with!

Note that a powered USB hub essentially bypasses these limits because the power for your peripherals such as your USB storage will come from the AC adapter connection to the powered USB hub instead of the Pi having to provide that power.

Powered USB Hub Troubleshooting

Most hubs including the Sabrent one above can feed back power into the Pi which can cause it to not boot when the power is connected. The reason for this is that the Pi is detecting power and is trying to power on using that source but the current provided isn’t enough for the Pi to actually boot.

The solution to this is to remove the USB hub’s connection from your Pi momentarily and then connect the power. Plug your USB hub back in quickly after reconnecting the Pi’s power (if you have native USB booting set up) and unless you really fumble with reconnecting it you will have it plugged in well before it tries to boot from the SSD!

If this trick doesn’t work then unfortunately you may have a powered USB hub that is not going to work with the Pi. It’s worth checking to see if there are any firmware updates available for your USB hub before you give up on it as some readers have let me know in the comments of previous articles that they were able to get some hubs working after a firmware upgrade!

Benchmarking / Testing Storage

If you’re getting poor performance or just want to verify everything is working correctly you may want to run my storage benchmark with:

sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash

If you search for the model of your drive on Pi Benchmarks you can compare your score with others and make sure the drive is performing correctly!

Create Bootable Drive

Creating your bootable drive is also very easy. You simply image it the same way you would image a blank MicroSD.

I use Win32DiskImager and simply select the USB attached drive just like you would with a MicroSD card and write the image. It’s very easy!

Don’t forget to place an empty “ssh” file in the /boot directory if you want to connect via SSH.

Prevent High CPU Usage

There is an issue where using a solid state drive will cause kworker to consume around 1-10% of your CPU all of the time. This is due to the Pi polling constantly for a Micro SD card to be inserted.

There are two ways to fix this. One is to insert a blank Micro SD card in the Micro SD slot and leave it there all the time. The other is to add a line to your /boot/config.txt. Open up config.txt and add the following:

dtparam=sd_poll_once

This option will tell the Pi to only check for a Micro SD card once at bootup. This means if you want to access the card it needs to be in the Pi before it boots up.

I also wrote a complete guide on this very issue that is available here: Fix ~% CPU Usage When SSD Booting with Raspberry Pi

SSD With Raspberry Pi 4

The Raspberry Pi 4 did not originally support USB booting at launch unlike the previous Pi 3 models did. This is because they actually added a physical EEPROM firmware storage chip into the board. Due to this I previously published a workaround for how to set up USB booting using a SD card as a bootloader.

Fortunately the native support has finally been released for USB booting on the Pi 4. I cover how to upgrade to the new firmware and enable native USB booting extensively in my new Raspberry Pi 4 USB Booting Guide (recommended).

If you aren’t sure which SSD / storage adapter to get I have an extensive guide available here: Raspberry Pi 4 / 400 Storage Adapter Guide

SSD With Raspberry Pi 3

Once you have chosen your SSD it is time to configure the Raspberry Pi to boot off USB storage. Fortunately this is extremely simple. To enable booting from USB storage simply boot up your Raspberry Pi and run this command:

echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt

Alternatively you can put your MicroSD into your computer and open /boot/config.txt and add the line:

 program_usb_boot_mode=1

Now reboot your Pi and USB boot support will be permanently enabled. This only needs to be done once per Raspberry Pi as the change is permanent.

You may now remove the Micro SD card altogether and plug in your external storage you prepared in the previous section. Power up the Pi and it will boot directly from the USB storage!

SSD with Raspberry Pi 1 / 2 / Zero W

The older Pi family and the Zero / Zero W also support USB booting with a small catch. You still need to have a Micro SD card inserted in the Pi with only one file on (bootcode.bin). This is because these Pis use the older
BCM2835 which is a Micro SD only bootloader.

The good news is that if we put a otherwise blank Micro SD card in there with this file the Pi can boot from USB storage just fine and take full advantage of the increased speed and storage size. Bootcode.bin basically provides the instructions to the Pi telling it how to boot from USB.

First you will format your Micro SD card as FAT32 . FAT32 is the partition type that the Pi bootloader can read and is the same format as the /boot/ partition on a fully imaged Pi card.

Next grab the latest bootcode.bin from the official Raspberry Pi repository at bootcode.bin in official Raspberry Pi GitHub Repository

Copy the bootcode.bin file onto your newly created and otherwise blank FAT32 imaged Micro SD card and then insert the Micro SD card back into the Raspberry Pi.

Now connect your USB storage back to the Pi and power it on. The Pi will boot directly from your USB storage device!

Conclusion

A solid state drive is the biggest upgrade you can give your Pi. When I am configuring my Minecraft Raspberry Pi servers the performance difference is night and day. They boot faster, respond faster and write/read much faster. It’s very difficult to go back to MicroSD after using one of these with your Pi.

I highly recommend running the benchmark for yourself to get an idea of how much performance you can gain!

Other Resources

If you’re looking for a guide on setting up SSD booting with your Pi check out my Pi 4 Native USB Mass Storage Device Booting Guide

If you want to find out the best storage adapters and SSDs for the Pi check out the Best Storage Adapters for the Raspberry Pi 4 / 400

For fixing storage adapters / improving performance with firmware updates: Fixing Storage Adapters for Raspberry Pi with Firmware Updates

If you have one of the new Raspberry Pi 400 kits *then don’t miss my Pi 400 Overclocking and SSD Setup Guide

Subscribe
Notify of
guest

96 Comments
Inline Feedbacks
View all comments
Freeck
Freeck
9 months ago

Hi there, great post!
After installing an ssd, is it still recommended to use log2ram? More general question: what is the expected lifespan of an ssd, also related to the size of the ssd?

Jim
Jim
1 year ago

Hello there

Update :

I tried a 2.5″ usb 3.0 case that does not support uasp

With a mechanical hdd and it was working at last Fine, so the problem is in the uasp cases even if you disable uasp with quirks its like is there somehow,and the hdd goes slow as hell

Is there a another way/ways to disable uasp than the quirks method?

And do you have a list of non uasp usb 3.0, 2.5″/3.5″ cases??

Even the no name ones from AliExpress
To buy some,or do you have any old used non uasp usb 3.0 / 2.5″ cases that you dont use/need anymore to buy them from you??

Thanks

Jim
Jim
1 year ago

Thanks for the response,i dont think is a power issue,since my 3.5″ case has separate power supply,and the perfomance of normal hdd is very close to ssd,to believe it you need to try it
Since nobody bother to use a normal hdd with the ssds around.
I dont ask for ssds but for 2.5″ cases that don’t support uasp,if you know any brands/models
Thank you

Jim
Jim
1 year ago

Thanks a lot

Is there another way/ways to disable uasp than the quirks method?

Thank you

Jim
Jim
1 year ago

The eclosure that really works is an old orico case with the Initio INIC3639 controller that does not support uasp.
But it takes only an 7mm hdd and most of my hdds are 9.5mm i have one 7mm 500gb but its a waste of space i never use more than 10-30gb
In general.
Most of the 2.5″ cases i have are known bands
Like logilink,natec,silicon power,etc

Do you have any old 2.5″ hdd at 7200rpm ??

Thank you

Jim
Jim
1 year ago

I been having this case many years

content://com.android.chrome.FileProvider/images/screenshot/1659386426344489495390.jpg

Unbraded from ebay takes both sata/ide 2.5 hdds, very good quality still works unfortunately its usb 2.0 but im still using it as its quality stuff
With Thick aluminum etc.

There at some good/cheap stuff worth buying you just need to find them.

I want to buy a 7200 rpm 2.5 sata drive they are very cheap in ebay the problem is the health of the drive i asked so many sellers about what is the health of the drives reported with hard disk sentinel
And all they answered that the drives are working,that doesn’t mean anything a drive full of bad sectors can still be working

So do you have any for sale with 100% health
Or degraded health from lifetime use??

Any capacity will do even 60gb/80gb sata/ide at 7200rpm 2.5″ 9.5mm/7mm

Thank you

Jim
Jim
1 year ago

Hello,i was wrong with the enclosure i have too many and confused.
The eclosure that really works is an old case with the via vli700 controller that does not support uasp.
Do you know any cases/or have links for branded or unbraded cases with via chipsets?

Thanks

Jim
Jim
1 year ago

Im not searching for the same vli700 controller
Im searching for any via vli controller old or new since i use only mechanical drives i dont mind if its a sata 1,2,3 controller since mechanical drives dont go more than 100-120mb/sec,can it be that the raspberry pi4 has via vli controller and cooperate coz of it good with the same brand sata controller?
Do you have in mind any case that uses a resend/new via vli controller to test?

Question: what causes the incompatibilities with the usb sata controllers?

Is it the controller it self?
Is it the raspberry pi4 it self?
Is it the firmware of the controller that needs updating?
Or is it the linux kernel in the OS that needs updating?

Thanks

Jim
Jim
1 year ago

Thanks were i can find one vl805 to buy?

Anything on AliExpress??

Or if not do you know the brands of the cases that have vl805 chipsets?

Jim
Jim
1 year ago

Thanks i will take a look

My orico case with initio inic3639 works ok with my sata drive but the speed does not go below 20mb/sec and i cannot seem to find a firmware for the case/chipset that maybe will correct the speed issue,is there anywere a firmware for inic3639?

Or do you know how to fix this issue?

The case does not support uasp

Thanks

Jim
Jim
1 year ago

Thanks in google i can find only firmware for the inic3609 chipset

And in the orico site i cant find my case that is the: orico 2578us3 case 🙁

Jim
Jim
1 year ago

Thanks i will try tomorrow

I havent found any update tool for my enclosure in orico site.

Will let you know anyway james thanks

Jim
Jim
1 year ago
Reply to  Jim

I found two orico cases with norelsys ns1066
With the stock firmware they did not go more than 20mb/sec with hdparm

I found 2 firmwares here.

I flashed the 2.34 things were better 80mb/sec

I flashed the 2.67 things were excellent 108mb/sec as is the top speed my mechanical hdd can achieve.

The chipset is sata2 to usb3 and without uasp thats all i wanted dated at 2012 the 2.67 firmware is dated at 2014

Now the only thing left is to get a 7200rom 2.5″ hdd ro test

Thanks for your help 🙂

Jim
Jim
1 year ago

Further testing with the natec nkz-0448 3.5″ case with asm235cm chipset loaded the latest firmware from 2017 didn’t improve anything,

I think the sata3 to usb3 chipsets are only meant for ssds in linux arm and windows for mechanical drives,and the uasp support it self in general in linux arm has 0 compatibility with raspberry pi4 for mechanical hdds.

Again who is going to use mechanical drives when ssds are available.

At least they work many times faster than the card reader and not only faster the access/seek time difference its huge.

I tried a couple of years booting from a fast memory card 100read 70write attached in a usb3 card reader in the raspberry pi4 usb3 port
The result was like almost booting from a normal ssd,hdparm speed was 90mb/sec
But the access/seek time like using ssd must have something to do with the nand flash of the
card.

Anyway any news when the raspberry pi5 will be out and hardware will it have??

Thanks

Jim
Jim
1 year ago
Reply to  Jim

Tested various usb 3.0 to sata 2.5″ / 3.5″ controllers and mechanical drives.

Results:

Asmedia Asm235cm : very slow performance of the hdd drive even with uasp disabled with quirks

Asmedia Asm1153 : very slow performance of the hdd drive even with uasp disabled with quirks

Jmicron jms567: very slow performance of the hdd drive with uasp enabled.
Fast performance If uasp is disabled with quirks

Jmicron jms578: very slow performance of the hdd drive even with uasp disabled with quirks

Initio inic3639 : very slow performance of the hdd drive even with uasp disabled with quirks

Norelsys NS1066: fast perfomance of the hdd drive chipset does not support uasp

Via VLI700 : fast perfomance of the hdd drive chipset does not support uasp

Jim
Jim
1 year ago

Hello

Can you explain to me why all the usb 3.0 cases 3.5″ and 2.5″ if you put mechanical hard disk drive it goes slower than the card reader of Raspberry Pi 3?? And i tried many hdds not just one in different cases always the same result.all cases with different chipsets,asmedia jmicron,via, initio etc.
In sdds they work ok,in normal hdds is a nightmare the delay/lag on the hard drive is very large.eg: tried simple operations like apt upgrade.anyone is aware of this problem?

I forgot to mention i have quirks disabled,hdparm reports descent speeds for a mechanical hdd of 100mb/sec but still the perfomance is like i use a memory card in an sdr12 controller any ideas?

Thank you

Jim
Jim
1 year ago

Thanks James
Hear that now
Hdparm measures 32mb/sec but i believe it has to do with the i/o,something to do with the usb 3.0 not working correct in linux arm OS with mechanical hdds,the power is enough since the hdd in usb 2.0 takes power from saperate power supply and with 2.5″ and with 3.5″ hdd that goes believe it or not like a medium ssd,i didint see a huge difference paired with my patriot burst ssd(not the elite),i wont belive it if they tell me either.the 2.5 is 5400 rpm the 3.5 is 7200 the more rpm the faster it goes i think,i dont have 10k rpm to test also,there is no bottleneck nothing
The usb 2.0 controller is the JM20337

If i put the same hdd in a usb 2.0 case the mechanical drive goes quite fast,the difference its huge,you should try it.

Mechanical drives works faster in arm just not in usb 3.0 only usb 2.0 they fly even with 30mb/sec the more rpm the faster they go even if the speed is really the same in both hdds the i/o doubles and triples due to the more rpm Nobody must have tried before this
It makes sense who is going to use usb 2.0 when there is 3.0.

Jim
Jim
1 year ago
Reply to  Jim

In my opinion there is a large bottleneck in the usb3.0 ports of the Rpi people cannot see that when putting an sdd coz ssds use nand flash most thats somehow really fast but still there is slowdown in ssds also means they could go ev n faster,must be a manufacturer defect/design flaw in the ports,controller,pcb etc.i havent got any other brand arm board to test my theory.
Was it so hard to put just a native sata port it will make things a lot easier.

Jim
Jim
1 year ago

Thanks a lot,i will try when i have time some tests

One off topic question

Which wifi antenna i should buy:

Tenda O3 or Ubiquity Nanostation Loco M2 ?

I want to use it as a client to take internet from a neighbor 100-150 meter away

Thanks

Jim
Jim
1 year ago

Thanks again just do a simple test put a mechanical hdd in a usb 3.0 case and boot your Rpi4 from it(the hard drive) with raspbian lite and do a full upgrade
Keep the time needed to finish

Then do the same with the same hdd in a usb 2.0 case in a usb 2.0 port(dont connect the usb 3.0 case in a usb 2.0 port its not going to work like that correct)

And do a full upgrade

Keep the time again and watch how fast it goes when its finish downloading the packages

First make sure the hdd does not have bad sectors as they affect its perfomance
You can check that with the hard disk sentinel utility

Thanks

Lewis Patterson
Lewis Patterson
1 year ago

Thank you for the article; very helpful.

I purchased the Kingston drive and the StarTech adapter which you recommended.

I am using Arch Linux as the OS. I copied the SD card partitions to the SSD via the ‘dd’ command. After enabling usb-booting and adjusting device
names, the system will boot from the SSD successfully (no SD card installed).

During this setup, I had the rpi-3 connected to a small display. Normally this system runs ‘headless’ so after my initial testing I shutdown, disconnected
the display and re-powered the system. To my surprise, the system does not boot; no activity light (none).

If I reconnect the display and re-power the system, the boot process is successful (no SD card installed).

I am totally stumped; makes no sense to me.

Any suggestions?

Thank you!

Lewis Patterson
Lewis Patterson
1 year ago

Thank you for the response. Here is what I have learned by trial-and-error combined with a small amount of deductive reasoning.

The system will boot successfully (no SD card) if a USB-2 device is also plugged-in. This is why it boots successfully when I am using my
small display. It requires a USB-2 connection which Arch Linux recognizes as a touchscreen/mouse device.

Currently, I am using an extra USB-2 Yubikey as the required US-2 device. With it installed, the system boots successfully.
For the record, the system is a ‘Raspberry Pi 3 B v 1.2’.

The system behaves as if USB is not activated unless a USB-2 device is detected.

With regards to firmware, Arch Linux does include regular firmware updates.

David
David
2 years ago

Hi James, thanks for the tutorial!

I have a Pi 3b+.
I used the image i had already in use and had it up and running from SSD in minutes .

The only thing I can;t get to work is SSH.
I created the ssh file in the boot partition, after rebooting it’s gone, but I can’t SSH to my Pi.

Gr, David

David
David
2 years ago

Thanks for the reply!

I was already booting from SSD without SD-card.
After running the install openssh-server command it is now working.
The package was already installed, so not sure what changed 🙂 Anyway, it’s working. Thanks mate.

Now next step is to enable TRIM support!

Brian
Brian
2 years ago

Thanks for the write-up!

Seems easy to follow -and I would if I had an rpi4 (with USB3.0)

I’ve just fiddled with mounting a (to me) forgotten SSD on my old rpi3, and I am wondering what I will gain, trying to persuade it to boot on the USB attached SSD disk?
I’ve just mounted a fresh but old-ish Crucial 250GB and tested it through the USB ports. Only clocked at ~18MBps . . .

If I get it to boot, wouldn’t it perform just the same as that?

/Brian

Benjamin
Benjamin
2 years ago

Hi James i recently bought the popular Kingston A400 SSD and a 5V 4A power supply. I then followed your USB mass storage boot and it worked very well.

Then when i went to test the storage with the storage benchmark script it crashed and said that an Input/Output error occurred and after that i couldn’t run any commands in the shell (over ssh) it would either say there was an input/output error or the command was not found. So i suspected that it was a power issue, and plugged in a laptop charger with a maximum of 45W output, and it worked fine and the storage script didn’t crash, however after maybe a day of uptime i couldn’t connect to the pi over ssh, i was hosting a paper minecraft server and couldn’t connect to the server via the minecraft client either.

When i try to see dmesg while im running the script i am getting this output just as the benchmarks begin:

[ 1060.466088] WARNING! power/level is deprecated; use power/control instead
[ 1060.875117] st: Version 20160209, fixed bufsize 32768, s/g segs 256

When its either running fio test or iozone test it crashes:

[ 257.968582] WARNING! power/level is deprecated; use power/control instead
[ 258.374455] st: Version 20160209, fixed bufsize 32768, s/g segs 256
[ 268.248145] IPv6: MLD: clamping QRV from 1 to 2!
[ 306.160199] sd 0:0:0:0: [sda] tag#28 uas_eh_abort_handler 0 uas-tag 21 inflight: CMD OUT
[ 306.160222] sd 0:0:0:0: [sda] tag#28 CDB: opcode=0x2a 2a 00 12 84 b6 50 00 00 08 00
[ 306.169844] sd 0:0:0:0: [sda] tag#27 uas_eh_abort_handler 0 uas-tag 20 inflight: CMD OUT
[ 306.169861] sd 0:0:0:0: [sda] tag#27 CDB: opcode=0x2a 2a 00 12 85 d6 60 00 00 08 00
[ 306.171192] sd 0:0:0:0: [sda] tag#26 uas_eh_abort_handler 0 uas-tag 19 inflight: CMD OUT
[ 306.171203] sd 0:0:0:0: [sda] tag#26 CDB: opcode=0x2a 2a 00 12 86 7d f8 00 00 08 00
[ 306.172560] sd 0:0:0:0: [sda] tag#25 uas_eh_abort_handler 0 uas-tag 18 inflight: CMD OUT
[ 306.172572] sd 0:0:0:0: [sda] tag#25 CDB: opcode=0x2a 2a 00 12 84 7c 60 00 00 08 00
[ 306.173914] sd 0:0:0:0: [sda] tag#24 uas_eh_abort_handler 0 uas-tag 17 inflight: CMD OUT
[ 306.173925] sd 0:0:0:0: [sda] tag#24 CDB: opcode=0x2a 2a 00 12 86 4a c0 00 00 08 00
[ 306.175270] sd 0:0:0:0: [sda] tag#23 uas_eh_abort_handler 0 uas-tag 16 inflight: CMD OUT
[ 306.175281] sd 0:0:0:0: [sda] tag#23 CDB: opcode=0x2a 2a 00 12 85 4f 40 00 00 08 00
[ 306.176636] sd 0:0:0:0: [sda] tag#22 uas_eh_abort_handler 0 uas-tag 15 inflight: CMD OUT
[ 306.176649] sd 0:0:0:0: [sda] tag#22 CDB: opcode=0x2a 2a 00 12 85 97 88 00 00 08 00
[ 306.177999] sd 0:0:0:0: [sda] tag#21 uas_eh_abort_handler 0 uas-tag 14 inflight: CMD OUT
[ 306.178009] sd 0:0:0:0: [sda] tag#21 CDB: opcode=0x2a 2a 00 12 86 41 48 00 00 08 00
[ 306.179356] sd 0:0:0:0: [sda] tag#20 uas_eh_abort_handler 0 uas-tag 13 inflight: CMD OUT
[ 306.179366] sd 0:0:0:0: [sda] tag#20 CDB: opcode=0x2a 2a 00 12 86 34 b0 00 00 08 00
[ 306.180719] sd 0:0:0:0: [sda] tag#19 uas_eh_abort_handler 0 uas-tag 10 inflight: CMD OUT
[ 306.180729] sd 0:0:0:0: [sda] tag#19 CDB: opcode=0x2a 2a 00 12 85 20 50 00 00 08 00
[ 306.182075] sd 0:0:0:0: [sda] tag#18 uas_eh_abort_handler 0 uas-tag 9 inflight: CMD OUT
[ 306.182085] sd 0:0:0:0: [sda] tag#18 CDB: opcode=0x2a 2a 00 12 84 7e f8 00 00 08 00
[ 306.183432] sd 0:0:0:0: [sda] tag#17 uas_eh_abort_handler 0 uas-tag 12 inflight: CMD OUT
[ 306.183442] sd 0:0:0:0: [sda] tag#17 CDB: opcode=0x2a 2a 00 12 84 dd b0 00 00 08 00
[ 306.184803] sd 0:0:0:0: [sda] tag#16 uas_eh_abort_handler 0 uas-tag 11 inflight: CMD OUT
[ 306.184814] sd 0:0:0:0: [sda] tag#16 CDB: opcode=0x2a 2a 00 12 85 1f a8 00 00 08 00
[ 306.186163] sd 0:0:0:0: [sda] tag#15 uas_eh_abort_handler 0 uas-tag 8 inflight: CMD OUT
[ 306.186174] sd 0:0:0:0: [sda] tag#15 CDB: opcode=0x2a 2a 00 12 86 29 18 00 00 08 00
[ 306.187518] sd 0:0:0:0: [sda] tag#14 uas_eh_abort_handler 0 uas-tag 7 inflight: CMD OUT
[ 306.187528] sd 0:0:0:0: [sda] tag#14 CDB: opcode=0x2a 2a 00 12 85 c1 f0 00 00 08 00
[ 306.188880] sd 0:0:0:0: [sda] tag#13 uas_eh_abort_handler 0 uas-tag 6 inflight: CMD OUT
[ 306.188891] sd 0:0:0:0: [sda] tag#13 CDB: opcode=0x2a 2a 00 12 85 62 d0 00 00 08 00
[ 306.190242] sd 0:0:0:0: [sda] tag#12 uas_eh_abort_handler 0 uas-tag 5 inflight: CMD OUT
[ 306.190254] sd 0:0:0:0: [sda] tag#12 CDB: opcode=0x2a 2a 00 12 84 8d 40 00 00 08 00
[ 306.191595] sd 0:0:0:0: [sda] tag#11 uas_eh_abort_handler 0 uas-tag 4 inflight: CMD OUT
[ 306.191605] sd 0:0:0:0: [sda] tag#11 CDB: opcode=0x2a 2a 00 12 84 cf 98 00 00 08 00
[ 306.192959] sd 0:0:0:0: [sda] tag#10 uas_eh_abort_handler 0 uas-tag 1 inflight: CMD OUT
[ 306.192970] sd 0:0:0:0: [sda] tag#10 CDB: opcode=0x2a 2a 00 12 85 7b 90 00 00 08 00
[ 306.194315] sd 0:0:0:0: [sda] tag#9 uas_eh_abort_handler 0 uas-tag 3 inflight: CMD OUT
[ 306.194326] sd 0:0:0:0: [sda] tag#9 CDB: opcode=0x2a 2a 00 12 85 63 18 00 00 08 00
[ 306.195679] sd 0:0:0:0: [sda] tag#8 uas_eh_abort_handler 0 uas-tag 2 inflight: CMD OUT
[ 306.195689] sd 0:0:0:0: [sda] tag#8 CDB: opcode=0x2a 2a 00 12 84 3a a8 00 00 08 00
[ 306.197044] sd 0:0:0:0: [sda] tag#7 uas_eh_abort_handler 0 uas-tag 26 inflight: CMD OUT
[ 306.197056] sd 0:0:0:0: [sda] tag#7 CDB: opcode=0x2a 2a 00 12 85 38 b0 00 00 08 00
[ 306.198397] sd 0:0:0:0: [sda] tag#6 uas_eh_abort_handler 0 uas-tag 29 inflight: CMD OUT
[ 306.198407] sd 0:0:0:0: [sda] tag#6 CDB: opcode=0x2a 2a 00 12 84 9b b8 00 00 08 00
[ 306.199758] sd 0:0:0:0: [sda] tag#5 uas_eh_abort_handler 0 uas-tag 28 inflight: CMD OUT
[ 306.199768] sd 0:0:0:0: [sda] tag#5 CDB: opcode=0x2a 2a 00 12 85 36 c0 00 00 08 00
[ 306.201125] sd 0:0:0:0: [sda] tag#4 uas_eh_abort_handler 0 uas-tag 27 inflight: CMD OUT
[ 306.201136] sd 0:0:0:0: [sda] tag#4 CDB: opcode=0x2a 2a 00 12 84 a8 88 00 00 08 00
[ 306.202480] sd 0:0:0:0: [sda] tag#3 uas_eh_abort_handler 0 uas-tag 25 inflight: CMD OUT
[ 306.202490] sd 0:0:0:0: [sda] tag#3 CDB: opcode=0x2a 2a 00 12 85 13 a8 00 00 08 00
[ 306.203898] sd 0:0:0:0: [sda] tag#2 uas_eh_abort_handler 0 uas-tag 24 inflight: CMD OUT
[ 306.203908] sd 0:0:0:0: [sda] tag#2 CDB: opcode=0x2a 2a 00 12 84 f5 d0 00 00 08 00
[ 306.205202] sd 0:0:0:0: [sda] tag#1 uas_eh_abort_handler 0 uas-tag 23 inflight: CMD OUT
[ 306.205213] sd 0:0:0:0: [sda] tag#1 CDB: opcode=0x2a 2a 00 12 85 d1 08 00 00 08 00
[ 306.206559] sd 0:0:0:0: [sda] tag#0 uas_eh_abort_handler 0 uas-tag 22 inflight: CMD OUT
[ 306.206570] sd 0:0:0:0: [sda] tag#0 CDB: opcode=0x2a 2a 00 12 84 ae c8 00 00 08 00
[ 306.224267] scsi host0: uas_eh_device_reset_handler start
[ 306.233684] usb 2-1: cmd cmplt err -2
[ 306.243319] usb 2-1: cmd cmplt err -2
[ 306.252935] usb 2-1: cmd cmplt err -2
[ 306.262542] usb 2-1: cmd cmplt err -2
[ 306.272157] usb 2-1: cmd cmplt err -2
[ 306.281765] usb 2-1: cmd cmplt err -2
[ 306.291371] usb 2-1: cmd cmplt err -2
[ 306.300979] usb 2-1: cmd cmplt err -2
[ 306.310587] usb 2-1: cmd cmplt err -2
[ 306.320201] usb 2-1: cmd cmplt err -2
[ 306.329828] usb 2-1: cmd cmplt err -2
[ 306.339443] usb 2-1: cmd cmplt err -2
[ 306.349057] usb 2-1: cmd cmplt err -2
[ 306.358675] usb 2-1: cmd cmplt err -2
[ 306.368293] usb 2-1: cmd cmplt err -2
[ 306.377907] usb 2-1: cmd cmplt err -2
[ 306.387519] usb 2-1: cmd cmplt err -2
[ 306.397133] usb 2-1: cmd cmplt err -2
[ 306.406746] usb 2-1: cmd cmplt err -2
[ 306.416359] usb 2-1: cmd cmplt err -2
[ 306.425972] usb 2-1: cmd cmplt err -2
[ 306.435591] usb 2-1: cmd cmplt err -2
[ 306.445212] usb 2-1: cmd cmplt err -2
[ 306.454832] usb 2-1: cmd cmplt err -2
[ 306.464444] usb 2-1: cmd cmplt err -2
[ 306.474062] usb 2-1: cmd cmplt err -2
[ 306.483679] usb 2-1: cmd cmplt err -2
[ 306.493298] usb 2-1: cmd cmplt err -2
[ 306.502910] usb 2-1: cmd cmplt err -2
[ 311.777310] usb 2-1: Disable of device-initiated U1 failed.
[ 316.897395] usb 2-1: Disable of device-initiated U2 failed.
[ 317.025748] usb 2-1: reset SuperSpeed Gen 1 USB device number 2 using xhci_hcd
[ 322.273651] usb 2-1: device descriptor read/8, error -110
[ 322.380600] usb 2-1: reset SuperSpeed Gen 1 USB device number 2 using xhci_hcd
[ 327.649640] usb 2-1: device descriptor read/8, error -110
[ 328.013428] usb 2-1: reset SuperSpeed Gen 1 USB device number 2 using xhci_hcd
[ 333.281987] usb 2-1: device descriptor read/8, error -110
[ 333.388898] usb 2-1: reset SuperSpeed Gen 1 USB device number 2 using xhci_hcd
[ 333.517086] scsi host0: uas_eh_device_reset_handler FAILED err -19
[ 333.517107] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517116] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517124] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517132] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517139] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517146] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517154] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517161] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517168] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517176] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517183] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517190] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517198] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517205] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517212] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517220] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517227] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517235] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517242] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517249] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517256] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517264] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517271] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517278] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517286] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517293] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517301] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517308] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517315] sd 0:0:0:0: Device offlined - not ready after error recovery
[ 333.517359] sd 0:0:0:0: [sda] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x00 driverbyte=0x06 cmd_age=58s
[ 333.517372] sd 0:0:0:0: [sda] tag#0 CDB: opcode=0x2a 2a 00 12 84 ae c8 00 00 08 00
[ 333.517385] blk_update_request: I/O error, dev sda, sector 310685384 op 0x1:(WRITE) flags 0x8800 phys_seg 1 prio class 0
[ 333.517448] sd 0:0:0:0: rejecting I/O to offline device
[ 333.517463] blk_update_request: I/O error, dev sda, sector 310796168 op 0x1:(WRITE) flags 0x8800 phys_seg 1 prio class 0
[ 333.517490] blk_update_request: I/O error, dev sda, sector 310799392 op 0x1:(WRITE) flags 0x8800 phys_seg 1 prio class 0
[ 333.517516] blk_update_request: I/O error, dev sda, sector 310803728 op 0x1:(WRITE) flags 0x8800 phys_seg 1 prio class 0
[ 333.517541] blk_update_request: I/O error, dev sda, sector 310808384 op 0x1:(WRITE) flags 0x8800 phys_seg 1 prio class 0
[ 333.517566] blk_update_request: I/O error, dev sda, sector 310744664 op 0x1:(WRITE) flags 0x8800 phys_seg 1 prio class 0
[ 333.517590] blk_update_request: I/O error, dev sda, sector 310744800 op 0x1:(WRITE) flags 0x8800 phys_seg 1 prio class 0
[ 333.517618] blk_update_request: I/O error, dev sda, sector 310749160 op 0x1:(WRITE) flags 0x8800 phys_seg 1 prio class 0
[ 333.517654] blk_update_request: I/O error, dev sda, sector 310750240 op 0x1:(WRITE) flags 0x8800 phys_seg 1 prio class 0
[ 333.517686] blk_update_request: I/O error, dev sda, sector 310751128 op 0x1:(WRITE) flags 0x8800 phys_seg 1 prio class 0
[ 333.518017] sd 0:0:0:0: [sda] tag#1 UNKNOWN(0x2003) Result: hostbyte=0x00 driverbyte=0x06 cmd_age=58s
[ 333.518029] sd 0:0:0:0: [sda] tag#1 CDB: opcode=0x2a 2a 00 12 85 d1 08 00 00 08 00
[ 333.518037] EXT4-fs error (device sda2): __ext4_find_entry:1536: inode #124682: comm dmesg: reading directory lblock 0
[ 333.518067] EXT4-fs warning (device sda2): htree_dirblock_to_tree:1003: inode #126023: lblock 0: comm snapd: error -5 reading directory block
[ 333.518101] sd 0:0:0:0: [sda] tag#2 UNKNOWN(0x2003) Result: hostbyte=0x00 driverbyte=0x06 cmd_age=58s
[ 333.518119] Buffer I/O error on dev sda2, logical block 0, lost sync page write
[ 333.518121] sd 0:0:0:0: [sda] tag#2 CDB: opcode=0x2a 2a 00 12 84 f5 d0 00 00 08 00
[ 333.518150] sd 0:0:0:0: [sda] tag#3 UNKNOWN(0x2003) Result: hostbyte=0x00 driverbyte=0x06 cmd_age=58s
[ 333.518160] sd 0:0:0:0: [sda] tag#3 CDB: opcode=0x2a 2a 00 12 85 13 a8 00 00 08 00
[ 333.518189] sd 0:0:0:0: [sda] tag#4 UNKNOWN(0x2003) Result: hostbyte=0x00 driverbyte=0x06 cmd_age=58s
[ 333.518199] sd 0:0:0:0: [sda] tag#4 CDB: opcode=0x2a 2a 00 12 84 a8 88 00 00 08 00
[ 333.518226] sd 0:0:0:0: [sda] tag#5 UNKNOWN(0x2003) Result: hostbyte=0x00 driverbyte=0x06 cmd_age=58s
[ 333.518236] sd 0:0:0:0: [sda] tag#5 CDB: opcode=0x2a 2a 00 12 85 36 c0 00 00 08 00
[ 333.518269] sd 0:0:0:0: [sda] tag#6 UNKNOWN(0x2003) Result: hostbyte=0x00 driverbyte=0x06 cmd_age=58s
[ 333.518279] sd 0:0:0:0: [sda] tag#6 CDB: opcode=0x2a 2a 00 12 84 9b b8 00 00 08 00
[ 333.518305] sd 0:0:0:0: [sda] tag#7 UNKNOWN(0x2003) Result: hostbyte=0x00 driverbyte=0x06 cmd_age=58s
[ 333.518314] sd 0:0:0:0: [sda] tag#7 CDB: opcode=0x2a 2a 00 12 85 38 b0 00 00 08 00
[ 333.518341] sd 0:0:0:0: [sda] tag#8 UNKNOWN(0x2003) Result: hostbyte=0x00 driverbyte=0x06 cmd_age=58s
[ 333.518350] sd 0:0:0:0: [sda] tag#8 CDB: opcode=0x2a 2a 00 12 84 3a a8 00 00 08 00
[ 333.518388] sd 0:0:0:0: [sda] tag#9 UNKNOWN(0x2003) Result: hostbyte=0x00 driverbyte=0x06 cmd_age=58s
[ 333.518398] sd 0:0:0:0: [sda] tag#9 CDB: opcode=0x2a 2a 00 12 85 63 18 00 00 08 00
[ 333.518756] EXT4-fs error (device sda2): ext4_get_inode_loc:4462: inode #2065: block 255: comm journal-offline: unable to read itable block
[ 333.518772] EXT4-fs error (device sda2): ext4_get_inode_loc:4462: inode #2053: block 254: comm systemd-journal: unable to read itable block
[ 333.518779] EXT4-fs warning (device sda2): htree_dirblock_to_tree:1003: inode #126023: lblock 0: comm snapd: error -5 reading directory block
[ 333.518788] EXT4-fs (sda2): previous I/O error to superblock detected
[ 333.518833] Buffer I/O error on dev sda2, logical block 0, lost sync page write
[ 333.518858] EXT4-fs (sda2): previous I/O error to superblock detected
[ 333.518896] Buffer I/O error on dev sda2, logical block 0, lost sync page write
[ 333.518917] EXT4-fs (sda2): I/O error while writing superblock
[ 333.518928] EXT4-fs error (device sda2) in ext4_reserve_inode_write:5751: IO failure
[ 333.518976] Buffer I/O error on dev sda2, logical block 0, lost sync page write
[ 333.518999] EXT4-fs (sda2): I/O error while writing superblock
[ 333.519010] EXT4-fs error (device sda2): ext4_dirty_inode:5953: inode #2053: comm systemd-journal: mark_inode_dirty error
[ 333.519058] Buffer I/O error on dev sda2, logical block 0, lost sync page write
[ 333.519077] EXT4-fs (sda2): I/O error while writing superblock
[ 333.519098] Aborting journal on device sda2-8.
[ 333.519157] Buffer I/O error on dev sda2, logical block 196608, lost sync page write
[ 333.519211] Buffer I/O error on dev sda2, logical block 0, lost sync page write
[ 333.519228] JBD2: Error -5 detected when updating journal superblock for sda2-8.
[ 333.519243] EXT4-fs (sda2): I/O error while writing superblock
[ 333.519256] EXT4-fs error (device sda2): ext4_journal_check_start:83: Detected aborted journal
[ 333.519289] EXT4-fs (sda2): Remounting filesystem read-only
[ 333.519307] EXT4-fs error (device sda2): ext4_get_inode_loc:4462: inode #10304: block 769: comm rs:main Q:Reg: unable to read itable block
[ 333.519432] Buffer I/O error on dev sda2, logical block 0, lost sync page write
[ 333.519507] EXT4-fs (sda2): I/O error while writing superblock
[ 333.519527] EXT4-fs error (device sda2) in ext4_reserve_inode_write:5751: IO failure
[ 333.519632] Buffer I/O error on dev sda2, logical block 0, lost sync page write
[ 333.519695] EXT4-fs (sda2): I/O error while writing superblock
[ 333.519714] EXT4-fs error (device sda2): ext4_dirty_inode:5953: inode #2065: comm journal-offline: mark_inode_dirty error
[ 333.519809] Buffer I/O error on dev sda2, logical block 0, lost sync page write
[ 333.519869] EXT4-fs (sda2): I/O error while writing superblock
[ 333.519898] EXT4-fs error (device sda2) in ext4_dirty_inode:5955: IO failure
[ 333.520372] EXT4-fs error (device sda2) in ext4_reserve_inode_write:5751: IO failure
[ 333.540903] EXT4-fs warning (device sda2): htree_dirblock_to_tree:1003: inode #126023: lblock 0: comm snapd: error -5 reading directory block

Do you have any idea of how i might fix this?

Benjamin
Benjamin
2 years ago

Hi James

I’ll try removing my overclocks i have on the pi, and if doesn’t work I will look into buying a powered usb hub, thank you very much, merry christmas! 😀