balena-io / etcher

Flash OS images to SD cards & USB drives, safely and easily.
https://etcher.io/
Apache License 2.0
29.65k stars 2.1k forks source link

Etcher is corrupting SD and USB drives. #1426

Closed ghost closed 7 years ago

ghost commented 7 years ago

Etcher has corrupted two brand new SD cards and one USB drive. I formatted a new 64 gig SD drive to fat 32 using gparted then flashed Raspbian to the drive. I decided to use Raspbian Lite and wrote it without a reformat. The flash failed and now the drive cannot be modified, though the files can still be read. For giggles, I tried a second drive that was a new 8 gig drive. Again I formatted, flashed, it worked, reformatted, flashed again, it worked, did not format, flashed and it's corrupted like the first. I decided to try a cheap Lexar USB drive and the exact same thing happened if I try to flash twice without reformatting first.

I've tried the Linux and Windows fix suggested in the docs and it doesn't work. I tried flashing a different image, it doesn't work. I tried formatting on another PC and in windows, it doesn't work. None of my drives were bad before this, two were fresh out of the box, and one was a 5 month old USB drive. For me the issue happens like clockwork with SanDisk and Lexmark drives. I would love to provide logs, but after being disgusted with myself for choosing this program over Imagewriter that I shutdown and about threw my laptop into the road.

lurch commented 7 years ago

I'm so sorry to hear that you've had a bad experience with Etcher so far. I know it probably doesn't help you much, but I can assure you that for most users it works absolutely fine.

For the SD cards, it's always worth checking that the write-protect switch hasn't accidentally moved into the 'locked' position. What errors do you get when you try running the dd instructions from https://github.com/resin-io/etcher/blob/master/docs/USER-DOCUMENTATION.md#gnulinux ? Are you able to 'repair' your drives using the official SD Formatter tool on Windows? Are you using an internal or an external SD card reader? (sometimes USB card readers are more reliable than internal readers)

In "normal operation" there shouldn't be any need to reformat the cards / USB drives before writing an image to them with Etcher, it should "just work" regardless of what was on the cards previously.

Are you sure your cards are "genuine", or is it possible that they're fakes that you've bought e.g. from eBay? If you want to be certain, you could try testing them with F3 (on Linux) or H2testw (on Windows).

jviotti commented 7 years ago

Hi @MrTeofil,

It says that my card is 128 Mb instead of 14,6 Gb

That's normal. Images include their own partition table, so if the image has a partition of 128 MB, then the OS will detect its size as 128 MB.

I tried SD Formatter but it didn't work.

Did you try the Windows formatting instructions from the documentation? https://github.com/resin-io/etcher/blob/master/docs/USER-DOCUMENTATION.md#windows

lurch commented 7 years ago

@MrTeofil If Windows is reporting the card size as 128 MB, then I suspect @jviotti 's diagnosis above is correct.

But if it's Etcher itself that's reporting the card size as 128 MB, then you may be suffering from this bug https://github.com/resin-io-modules/drivelist/issues/142

(The reason for the different 'behaviour' between Windows and Etcher, is that Windows only reports the size of the first partition on a drive, whereas Etcher reports the whole size of the raw drive, regardless of what partitions are on it. This is because Windows writes to a drive at the filesystem-level, whereas Etcher writes to a drive at the lowest whole-disk / raw level)

jviotti commented 7 years ago

No worries, glad it worked! :)

jjh221 commented 6 years ago

Etcher did the same thing to me today. Could not format. I put the SD card in my camera to format then could format with windows. Cheers

Patchers commented 6 years ago

Did it to me today. :( not happy about etcher

Patchers commented 6 years ago

I put the SD card into diskpart and my phone in order to fix it and nothing has worked

maltebeckmann commented 6 years ago

After flashing my microsd card with Etcher, it doesn't show up anymore and get very very hot. Although I just find it very hard to believe that software could break hardware.

jhermsmeier commented 6 years ago

@Patchers @maltebeckmann can you tell us what OS you're on, which Etcher version you used and what image you flashed? We can't tell you much without any info :)

maltebeckmann commented 6 years ago

Thanks for getting back to me! Running Etcher Version 1.3.1 on OS 10.13.4. I flashed 2018-03-13-raspbian-stretch-lite onto the microSD. I did it 2-3 times over the course of an afternoon because the boot partition wasn't showing up that would allow me to set up the Raspi without an external screen. Now the card doesn't show up anymore and gets incredibly hot. I am going to buy another one tomorrow to test this.

maltebeckmann commented 6 years ago

So I just successfully flashed two new cards. Seems my SD card was really broken. Apologies for accusing Etcher.

adiluxx commented 6 years ago

hi, I'm having a similar issue, I've tried flashing Chromium OS on 2 different thumb drives (1 brand new, 1 used) both have same results when I try to clean using diskpart. I had to reflash these drives because i figured i had the wrong architecture because these flashed drives couldn't boot, but was recognized by BIOS. also, My windows 7 x64 system keeps saying the drive is 'write protected'. I did follow a thread to add in a registry edit to disable Media Write Protection HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies Look for a key named WriteProtect.

and i tried using diskpart to clear the readOnly status on the drive, attributes disk clear readonly

but the two methods did not work.

DISKPART> list disk

Disk ### Status Size Free Dyn Gpt


Disk 0 Online 1863 GB 0 B * Disk 1 Online 558 GB 0 B Disk 2 Online 14 GB 14 GB

DISKPART> select disk 2

Disk 2 is now the selected disk.

DISKPART> clean

DiskPart has encountered an error: Incorrect function. See the System Event Log for more information.

DISKPART>

cj2tech commented 6 years ago

I know it’s closed but I’ve had problem with windows 10 corrupting SD cards. I fix them with at formatted and doing a full format instead of a quick on.

ewpratten commented 6 years ago

I have the same problem. etcher has messed up 12 of my drives and 2 sd cards

jhermsmeier commented 6 years ago

@adiluxx the "DiskPart has encountered an error: Incorrect function." hints at an issue with Windows; you can try the rescan command in diskpart to refresh the state of attached storage before running other commands – if that doesn't help, there might be something wrong with the OS (i.e. corrupted components, failed chkdsk)

franknfurther commented 6 years ago

I have today destroyed two sd cards using Etcher, and I used in on two different computers so I know its not caused by the hardware. I know its 'free' software, and while I am very grateful to anyone making tools like Etcher, this needs some more serious testing before being released to the world. This also applies to the Raspberry Pi foundation, whom I trusted and who recommends Etcher.

jhermsmeier commented 6 years ago

@franknfurther Etcher doesn't destroy any hardware, it "just" copies the disk image to whatever device you choose – if your operating system doesn't recognize any file systems on the flashed device (or fails to format it), it's still not broken. While we've occasionally seen cases where the hardware does give up; it was due to counterfeit, faulty, old hardware or malfunctioning SD-card readers / USB hubs etc.

this needs some more serious testing before being released to the world

Believe it or not, we do actually test what we make, and use it every day on countless devices – and so do a couple hundred thousand other people on this planet. Doesn't mean it's bug-free though.

lurch commented 6 years ago

https://github.com/resin-io/etcher/blob/master/docs/USER-DOCUMENTATION.md#recovering-broken-drives

franknfurther commented 6 years ago

I hear you, but how do you explain that I destroyed two perfectly working SD cards, using two different Windows 10 PCs, by using Etcher? Just because I could not believe it myself, I went to the store to buy another card and used the old win32 disk imager on one of the above mentioned PCs. And it worked. Is it coincidence?

Am Freitag, 6. Juli 2018, 22:17:12 MESZ hat Jonas Hermsmeier <notifications@github.com> Folgendes geschrieben:  

@franknfurther Etcher doesn't destroy any hardware, it "just" copies the disk image to whatever device you choose – if your operating system doesn't recognize any file systems on the flashed device (or fails to format it), it's still not broken. While we've occasionally seen cases where the hardware does give up; it was due to counterfeit, faulty, old hardware or malfunctioning SD-card readers / USB hubs etc.

this needs some more serious testing before being released to the world

Believe it or not, we do actually test what we make, and use it every day on countless devices – and so do a couple hundred thousand other people on this planet. Doesn't mean it's bug-free though.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

lurch commented 6 years ago

AFAIK Etcher and Win32DiskImager essentially do more or less the same thing (they just use different technologies internally, and Etcher obviously has a much nicer UI) - so I suspect any cards that got "broken" by Etcher would also get "broken" by Win32DiskImager, and any cards that "work" with Win32DiskImager would also "work" with Etcher. Although I'm sure @jhermsmeier would be very interested to hear if you had a reproducible test case...

franknfurther commented 6 years ago

I agree, two corrupted sd cards in one day do not make a large enough sample to blame Etcher. I am out of SD cards now but will definitely use Etcher again next time and let you know if it doesn't work. Hardware is about 1-3 years old, we are talking Intel and Lenovo PCs so that should be ok. But I might need some advise regarding which SD card brands are ok and which ones are not.

adiluxx commented 6 years ago

4 corrupted USB drives. Some were v easy to fix, but i've tried disk part so many times, and system tells me that the drive is busy and can't clean the drive. I think i've finally managed to recover the last of my flash drives by using chkdsk/Format, and other methods from windows 10, 7, machines and from using a partition software, but i'm not using Etcher anymore, gave me more problems than good results. There are many other software that do the job without corrupting flash drives.

On Fri, Jul 6, 2018 at 1:39 PM Andrew Scheller notifications@github.com<mailto:notifications@github.com> wrote:

https://github.com/resin-io/etcher/blob/master/docs/USER-DOCUMENTATION.md#recovering-broken-drives

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/resin-io/etcher/issues/1426#issuecomment-403170891, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AfbUoV9SH7vserBMHRmACx-Dqh3GqCYXks5uD_UjgaJpZM4NaS6N.

-- -adilux

lurch commented 6 years ago

system tells me that the drive is busy and can't clean the drive.

See also #1793 and #1991

rmbrown410 commented 6 years ago

I just deleted the VM with the log file on it so I can't share them but it just destroyed one of my thumb drives. I was trying to create a bootable USB from an Ubuntu Server 18.04 ISO on a VM running macOS Sierra 10.13.5. (Etcher version 1.4.4) I totally gave Etcher a shoutout via Facebook last time I used it because it ran right, it was compatible with macOS and capable of imaging ISOs in a convenient fashion. This experience.....not so good. If the application relies on the dd command, that might be the source of the issue. Although I'm not sure of another method to image an ISO to a drive.

NonZhan commented 6 years ago

Killed SD card 8 GB. When you download the bin file through your Android smartphone. Attention! Do not download firmware using etcher + Android + Windows. The controller on the SD card was programmatically broken. Recovery is impossible without a card reader and receiving vid pid.

lurch commented 6 years ago

I don't know what Etcher has to do with Android smartphones? :confused:

timothytoddbrandt commented 6 years ago

Had same issue. The only way I could get the USB drive to format full size was to begin a format, not a quick format, and physically pull the USB out halfway through formatting. That forced Windows to recognize it as unformatted but full capacity.

bendibor commented 6 years ago

Same thing happened to me today. Never had an issue with other similar software. No matter what I do, the drive stays broken. When I read all this I get the feeling Etcher doesn't want to hear it, but this needs fixing!

jviotti commented 6 years ago

@timothytoddbrandt @bendibor This is a very common misconception and Windows issue, and we had explained this many times before.

Etcher is not corrupting drives. When you flash an image which comes with a file system doesn't recognise (i.e. almost every GNU/Linux image out there), Windows won't be able to detect it because it doesn't recognise that file system (as expected). Other flashing programs that specialise on GNU/Linux images, like UNetBootin, don't flash the image byte by byte, like Etcher, but re-format the drive and move files around so support very Linux specific features, sometimes using a format Etcher recognises. These are two types of different type of flashing, and Etcher specialises in the former.

Now Windows' formatting is tool is known to be very bad, and to fail at formatting drives without a known file system with strange errors. I suggest using the diskpart tool directly (works almost every time).

In summary, Etcher is not corrupting any drive; its just the OS that fails to recognise the new file-system in the drive. If this is a GNU/Linux image, please try to boot it, or read it from a GNU/Linux system, and you will see that it works fine.

jviotti commented 6 years ago

Please see https://github.com/resin-io/etcher/blob/master/docs/USER-DOCUMENTATION.md#recovering-broken-drives for more details.

jviotti commented 6 years ago

The only way I could get the USB drive to format full size was to begin a format, not a quick format, and physically pull the USB out halfway through formatting. That forced Windows to recognize it as unformatted but full capacity.

OS images come with a partition table of a fixed size. If the image says it contains a 1 GB partition, when you flash it, then the resulting drive will contain a 1 GB partition, no matter if the drive is 2 GB, 4 GB, or more. That's why if you re-format the drive, it will clear the old fixed partition, and you will see that it has "full size" again.

jviotti commented 6 years ago

@rmbrown410

This experience.....not so good. If the application relies on the dd command, that might be the source of the issue. Although I'm not sure of another method to image an ISO to a drive.

Etcher does not rely on dd or on any other external tool. It implements a byte-by-byte flashing algorithm in JavaScript.

As mentioned before, there are two ways image flashing programs work:

Both types of flashing have their own benefits, depending on what you're after. Do keep in mind that if you chose the latter, your OS might not be able to recognise the resulting drive, which is completely normal and expected.

jviotti commented 6 years ago

@franknfurther

I hear you, but how do you explain that I destroyed two perfectly working SD cards, using two different Windows 10 PCs, by using Etcher? Just because I could not believe it myself, I went to the store to buy another card and used the old win32 disk imager on one of the above mentioned PCs. And it worked. Is it coincidence?

The problem is the OS, not the specific PC. You can flash a thousand drives with a thousand different Windows machines and the result will be the same.

Apps such as Win32 Disk Imager are known to get really confused if the drive contains certain partition tables that they don't work well with. Your new drive was completely clean, and therefore Win32 Disk Imager didn't have any problem with it.

Please try this same experiment in a GNU/Linux machine, which will probably recognise the file-system (or you can easily install support for it), and you will see that it will detect the files inside them, and be able to format it without any problems.

jviotti commented 6 years ago

@jjh221

Etcher did the same thing to me today. Could not format. I put the SD card in my camera to format then could format with windows. Cheers

Don't you think its weird that your camera was able to format the drive but Windows wasn't? Don't you think this points out an issue on Windows rather than on Etcher?

jviotti commented 6 years ago

I honestly hope these series of comments clarify what Etcher is and is not doing. It is really frustrating as a contributor to see how Etcher gets thrown a lot of shit in different mediums because of technical misconceptions, over and over again, even though we took a lot of effort to clarify this to hundreds of users, created entries in our documentation, and even explained this whole thing in this thread that still keeps receiving a lot of bad comments.

I understand that not everyone is super technical, and you are definitely not expected to know this from the start. But PLEASE, take a moment to read what we wrote, try to understand, and ask peaceful questions rather that writing "not happy about etcher", "etcher has messed up 12 of my drives and 2 sd cards", "this needs some more serious testing before being released to the world", "i'm not using Etcher anymore, gave me more problems than good results", "I get the feeling Etcher doesn't want to hear it", etc.

We're building this software for free, as open source, for our users, and we don't deserve this treatment.

There might be exceptional cases where a drive really ends up fried and we would love to get to the bottom of it. While it might not be something that we can "fix" in Etcher (Etcher uses the same Windows OS APIs as every other Windows app, so we don't really have any special control over things), we can build protection inside Etcher so that we improve our error messages, or implement some sort of diagnosis step that can detect faulty drives.

Thanks a lot!

ewpratten commented 6 years ago

As I have discovered, if etcher messes up one of your drives, you can use dd to overwrite the drive with 0 then format it again with something like mkfs.ext4

On Mon, Sep 17, 2018, 5:44 AM Juan Cruz Viotti, notifications@github.com wrote:

I honestly hope these series of comments clarify what Etcher is and is not doing. It is really frustrating as a contributor to see how Etcher gets thrown a lot of shit in different mediums because of technical misconceptions, over and over again, even though we took a lot of effort to clarify this to hundreds of users, created entries in our documentation, and even explained this whole thing in this thread that still keeps receiving a lot of bad comments.

I understand that not everyone is super technical, and you are definitely not expected to know this from the start. But PLEASE, take a moment to read what we wrote, try to understand, and ask peaceful questions rather that writing "not happy about etcher", "etcher has messed up 12 of my drives and 2 sd cards", "this needs some more serious testing before being released to the world", "i'm not using Etcher anymore, gave me more problems than good results", "I get the feeling Etcher doesn't want to hear it", etc.

We're building this software for free, as open source, for our users, and we don't deserve this treatment.

There might be exceptional cases where a drive really ends up fried and we would love to get to the bottom of it. While it might not be something that we can "fix" in Etcher (Etcher uses the same Windows OS APIs as every other Windows app, so we don't really have any special control over things), we can build protection inside Etcher so that we improve our error messages, or implement some sort of diagnosis step that can detect faulty drives.

Thanks a lot!

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/resin-io/etcher/issues/1426#issuecomment-421947140, or mute the thread https://github.com/notifications/unsubscribe-auth/AUFuxCohF7kdA-wutCkC11kxteUjw3_Vks5ub28JgaJpZM4NaS6N .

bendibor commented 6 years ago

@jviotti I think you all need to be applauded for creating the software in the first place, so I get why it's frustrating to read the complaints. But to me as a user, it seems an obvious issue that a 'Windows' program creating usb drives 'safely and easily', in this process makes the drive inaccessable and for many users inpossible to use/recover on Windows later on. It is Etcher that without a clear warning, does this. Yes ofcourse, flashing has advantages... but this is a disadvantage user should know about. When so many users run into trouble after trying Etcher, instead of blaming them and 'stupid windows', isn't it a good idea to either provide future users with a warning or provide a 'recover usb for windows mode'? Because for me and many others, the provided help pages don't work. Only after spending a day reading and trying all kinds of different solutions, in command line and software I was able to find a solution that did. Not fun. It's not your fault, you are great but at the same time you could have prevented ignorant users like me from landing in this ordeal ;)

lurch commented 6 years ago

See also #273

jviotti commented 6 years ago

@bendibor

Thanks for the kind words!

But to me as a user, it seems an obvious issue that a 'Windows' program creating usb drives 'safely and easily', in this process makes the drive inaccessable and for many users inpossible to use/recover on Windows later on. It is Etcher that without a clear warning, does this. Yes of course, flashing has advantages... but this is a disadvantage user should know about.

This is not a "disadvantage" of flashing, its just the way it is. There are some ways to do it differently in some cases, but the definition of flashing an OS image is to write an OS to a device, and chances are that the OS will use file systems your host OS doesn't recognise.

When so many users run into trouble after trying Etcher, instead of blaming them and 'stupid windows', isn't it a good idea to either provide future users with a warning or provide a 'recover usb for windows mode'? Because for me and many others, the provided help pages don't work.

That's a good point. We do something like this to show a warning dialog when people try to flash Windows images with Etcher, as these images are not like other images, and thus a traditional flashing won't work, so we can inspect the partition table, and potentially show a warning at least when flashing Linux images on macOS and Windows cc @thundron.

Only after spending a day reading and trying all kinds of different solutions, in command line and software I was able to find a solution that did. Not fun

The word "solution" still implies there was a problem to fix. Your end result is the expected result. I do agree that some OSes (specially Windows) makes it super difficult to revert back to another file system, which is a great point. As @lurch pointed out, something like https://github.com/resin-io/etcher/issues/273 would help a lot. I believe this is a very easy feature, so maybe worth putting some time on it @thundron @zvin ?

thundron commented 6 years ago

@jviotti I will let you know, but on paper we can surely add a button to wipe a selectable drive, it could also be something along the lines of https://github.com/resin-io/etcher/issues/1426#issuecomment-421962780 , @zvin ?

bendibor commented 6 years ago

@jviotti I guess we only have to agree to disagree on the use of the words disadvantage and solution. In my line of work if a user comes to me with a 'problem' it wouldn't cross my mind to say it's really 'not' a problem, as apparently it's a problem to them and I try to take my users serious even though opinions may differ. Also saying something is the way it is seems to always imply there isn't a possible way to change it. Well, there is, even in the unlikeliest circumstances: https://s.s-bol.com/imgbase0/imagebase3/large/FC/6/7/1/7/9200000077297176.jpg

jviotti commented 6 years ago

@bendibor I understand that, and it's the reason why I suggested the warning above. The problem in this case is that the issue happens outside the scope of Etcher (i.e. the OS file-system and mounting mechanisms) on which we don't have any control over, which means is almost impossible for us to do anything else other than displaying a warning. We could modify the image's partition table to provide a readable first partition, but we would be modifying upstream images, which is what Etcher is trying to prevent altogether.

bendibor commented 6 years ago

@jviotti The warning is great, all it needs! And perhaps a referral to the help page on how to 'restore' (even if not broken ;) a drive so windows can see it again. The suggested wipe button should be able to do that trick perhaps?

lurch commented 6 years ago

I guess if a "wipe" button is added to Etcher (i.e. overwriting the MBR and/or GPT with zeros), you need to make it clear that this is different to "format", and the user will still need to use their OS's formatting tools before they're able to use it as a "normal" USB drive again. (as on Windows, the drive may need to be formatted as FAT16, FAT32, NTFS or ExFAT, depending on the drive's size and physical medium. And of course OSX and Linux have their own native FSes too)

bendibor commented 6 years ago

Good one

ewpratten commented 6 years ago

Overwriting the drive with zeros has always fixed my problems. Having a button to do it would be good.

On Wed, Oct 3, 2018, 11:58 AM bendibor, notifications@github.com wrote:

Good one

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/resin-io/etcher/issues/1426#issuecomment-426692239, or mute the thread https://github.com/notifications/unsubscribe-auth/AUFuxCO-ZpRMZIGVYFUEZCFSjWe9TK9Xks5uhN7BgaJpZM4NaS6N .

kureci commented 6 years ago

This software should really be stopped! It's corrupted multiple of my SD cards, it's proving impossible to get them back to normal. It's write-protecting the device so badly that no matter what you try with Disk Utility on Mac, different third party SD Card Formatters, the command line.. even Etcher itself cannot now flash it with a different OS.

jviotti commented 6 years ago

@kureci Have you read all the comments in this thread? Etcher is literally un mounting the drive, and writing bytes to it using the typical OS system calls. There is no way we can corrupt SD Cards or "write protect" the drive so you can't write to it. It doesn't make any sense to request an open source software to stop because you're having troubles with it. You are more than welcome to read the source code if you don't trust it.

Check if the partition table from the image that you are flashing declares certain partitions as read-only, or the SD Cards that you are flashing to. Have you tried zeroing the drive with dd? Try:

dd if=/dev/zero of=/dev/rdiskN bs=4M

If that fails, please paste the error information.

kureci commented 6 years ago

@jviotti the fact that so many people complain about it corrupting their SD cards means it's more than just me "having troubles with it". Of course no software is perfect and it might be edge cases that Etcher is causing these issues. You say Etcher is only calling OS commands to write the bytes, yet when I've used dd on Mac in the past I haven't come across this issue of write protection.

Anyway, thanks for the suggestion. I tried running dd if=/dev/zero of=/dev/diskN bs=4m but getting: dd: /dev/disk2: Permission denied

It's not a user permission issue as I've tried running with and without sudo - I've also checked the lock switch on SD Card adapter, no luck.

jviotti commented 6 years ago

@kureci We have only a handful of people complaining about this problem compared to amount of successful flashes Etcher reports through opt-out analytics (>100000 flashes every month). I agree there is always the possibility of an actual bug, which would be affecting a really really small percentage of our users.

We had many reports like his (mainly on chat), and after digging a bit, turns out to be a confusion about file-systems in different OSes, faulty SD Cards, or some problem with the re-formatting tool they were using, for whatever reason. Keep in mind that one of the main roles of an operation system is to protect client code from causing damage to the hardware. The OS presents an interface (i.e. umount() and write()) that both dd and Etcher uses that is designed to prevent software like Etcher from doing whatever it wants and breaking devices. We don't have access to external devices without going through the kernel first, so the chances that we are really breaking devices are very very slim (i.e. an OS or driver bug in one of the system calls we make).

Regarding dd, did you try un mounting the disk before running dd? If you are on macOS, you can do diskutil unmountDisk /dev/disk2