Giter VIP home page Giter VIP logo

etcher's Introduction

Etcher

Flash OS images to SD cards & USB drives, safely and easily.

Etcher is a powerful OS image flasher built with web technologies to ensure flashing an SDCard or USB drive is a pleasant and safe experience. It protects you from accidentally writing to your hard-drives, ensures every byte of data was written correctly, and much more. It can also directly flash Raspberry Pi devices that support USB device boot mode.

Current Release License Balena.io Forums


Download | Support | Documentation | Contributing | Roadmap

Supported Operating Systems

  • Linux; most distros; Intel 64-bit.
  • Windows 10 and later; Intel 64-bit.
  • macOS 10.13 (High Sierra) and later; both Intel and Apple Silicon.

Installers

Refer to the downloads page for the latest pre-made installers for all supported operating systems.

Packages

Debian and Ubuntu based Package Repository (GNU/Linux x86/x64)

Package for Debian and Ubuntu can be downloaded from the Github release page

Install .deb file using apt
   sudo apt install ./balena-etcher_******_amd64.deb
Uninstall
   sudo apt remove balena-etcher

Redhat (RHEL) and Fedora-based Package Repository (GNU/Linux x86/x64)

Yum

Package for Fedora-based and Redhat can be downloaded from the Github release page

  1. Install using yum
   sudo yum localinstall balena-etcher-***.x86_64.rpm

Arch/Manjaro Linux (GNU/Linux x64)

Etcher is offered through the Arch User Repository and can be installed on both Manjaro and Arch systems. You can compile it from the source code in this repository using balena-etcher. The following example uses a common AUR helper to install the latest release:

yay -S balena-etcher
Uninstall
yay -R balena-etcher

WinGet (Windows)

This package is updated by gh-action, and is kept up to date automatically.

winget install balenaEtcher #or Balena.Etcher
Uninstall
winget uninstall balenaEtcher

Chocolatey (Windows)

This package is maintained by @majkinetor, and is kept up to date automatically.

choco install etcher
Uninstall
choco uninstall etcher

Support

If you're having any problem, please raise an issue on GitHub, and the balena.io team will be happy to help.

License

Etcher is free software and may be redistributed under the terms specified in the license.

etcher's People

Contributors

ab77 avatar aethernet avatar balena-ci avatar builder555 avatar chrisys avatar dfunckt avatar dimitrisnl avatar dlech avatar flowzone-app[bot] avatar jhermsmeier avatar jsoref avatar jsreds avatar jviotti avatar klutchell avatar lizzieepton avatar lucianbuzzo avatar lurch avatar mcraa avatar nazrhom avatar otaviojacobi avatar renovate-bot avatar roderickqiu avatar shawaj avatar shou avatar sradevski avatar stefan-mihaila avatar thundron avatar vedantmgoyal9 avatar zvin avatar zwhitchcox avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

etcher's Issues

Add dfu support

This feature would allow Etcher to flash DFU devices, like the Intel Edison. The task would be to create a brand new NPM module, named something like etcher-dfu, which implements DFU support in a cross platform way.

Challenges:

  • Make it work in a cross platform way.
  • Make it work without external dependencies.
  • Make it work when being packaged inside an ASAR archive.

The final module should expose a function that returns an EventEmitter instance which emits stdout and stderr in real time. Some stdin support might be required depending on the implementation, which should preferably be handled by the module itself instead of prompting the user if possible.

This module can be implemented using external tools like dfu-util as long as the user is not required to install such tool himself (it's bundled in the package instead).

Native addons may be fine here, but only if really necessary.

Herostratus doesn't elevate on first run on OS X

The first time you open the app (whether from the source or from a package), the elevation dialog is shown, but afterwards the elevated app never runs.

Repeating the process makes it run successfully.

The issue is only reproducible by waiting some minutes (until sudo password cache is clearer).

Improve footer text

The footer should say: "AN OPEN SOURCE PROJECT BY RESIN.IO" instead of "POWERED BY RESIN.IO".

TypeError: Cannot read property 'device' of undefined

This error happens when clicking the disabled "Burn" button before selecting a drive.

TypeError: Cannot read property 'device' of undefined
    at burn (file:///Users/jviotti/Projects/resin/etcher/lib/browser/app.js:161:44)
    at fn (eval at <anonymous> (/Users/jviotti/Projects/resin/etcher/node_modules/angular/angular.js:13567:15), <anonymous>:4:917)
    at callback (/Users/jviotti/Projects/resin/etcher/node_modules/angular/angular.js:23934:17)
    at Scope.$eval (/Users/jviotti/Projects/resin/etcher/node_modules/angular/angular.js:16251:28)
    at Scope.$apply (/Users/jviotti/Projects/resin/etcher/node_modules/angular/angular.js:16351:25)
    at hero-progress-button.<anonymous> (/Users/jviotti/Projects/resin/etcher/node_modules/angular/angular.js:23939:23)
    at defaultHandlerWrapper (/Users/jviotti/Projects/resin/etcher/node_modules/angular/angular.js:3358:11)
    at hero-progress-button.eventHandler (/Users/jviotti/Projects/resin/etcher/node_modules/angular/angular.js:3346:9)
    at hero-progress-button.d.util.hasFunction.f.(anonymous function) (file:///Users/jviotti/Projects/resin/etcher/node_modules/trackjs/tracker.js:3:492) undefined

Add a "burn another" button on completion

The completion screen will then have two buttons:

  1. Completely start over by reseting every selection.
  2. Burning the same image you selected before to another drive (basically keeps the image selection and resets the rest).

Could not call remote function ``

According to TrackJS, this error happened on Windows 8.1 when clicking "Burn" when a burn was already in process (around ~30%).

Could not call remote function ``. Check that the function signature is correct. Underlying error: Error processing argument -1.
Error: Could not call remote function ``. Check that the function signature is correct. Underlying error: Error processing argument -1.
    at callFunction (C:\Users\Alexandros\resin-etcher\node_modules\electron-prebuilt\dist\resources\atom.asar\browser\lib\rpc-server.js:203:11)
    at EventEmitter.<anonymous> (C:\Users\Alexandros\resin-etcher\node_modules\electron-prebuilt\dist\resources\atom.asar\browser\lib\rpc-server.js:293:12)
    at emitMany (events.js:108:13)
    at EventEmitter.emit (events.js:182:7)
    at EventEmitter.<anonymous> (C:\Users\Alexandros\resin-etcher\node_modules\electron-prebuilt\dist\resources\atom.asar\browser\api\lib\web-contents.js:129:25)
    at emitTwo (events.js:87:13)
    at EventEmitter.emit (events.js:172:7)

Error: write EPIPE on packaged OS X

I get the following error alert when running Herostratus packaged for OS X in El Capitan.

screenshot 2015-11-18 14 11 45

The error doesn't happen when running from the source code directly.

Add bmap support

Bmap Tools are a set of utilities implemented by the Tizen project that allows significant speed when writing images to drives.

Given a sparse image file (a file with unmapped holes), we can create a bmap file (an XML manifest) that gives the client information about what blocks actually contain data, and which don’t (e.g: are holes). Using this information, we can only write the sectors that are really needed, and thus avoid a lot of unnecessary I/O to speed up the writing.

Bmap files can only be generated on Linux at the moment, so we only focus on writing an image that already contains a corresponding bmap file.

This feature should be implemented by extending the already existing etcher-image-write NPM module

The module should include an option to pass the contents of a Bmap file (or a path to it, maybe) and use this information to only write what’s needed. This feature should be implemented in a cross platform way.

See https://source.tizen.org/documentation/reference/bmaptool/introduction for more information about how this works. Tizen provides a Python implementation for the problem described above, so we can use that as a guide.

Fix sporadic TypeError: Cannot read property 'then' of undefined

This error seems to happen from time to time during burning:

TypeError: Cannot read property 'then' of undefined
    at burn (file:///Users/jviotti/Projects/resin/resin-etcher/build/browser/app.js:103:42)
    at fn (eval at <anonymous> (file:///Users/jviotti/Projects/resin/resin-etcher/build/browser/app.js:22559:15), <anonymous>:4:917)
    at callback (file:///Users/jviotti/Projects/resin/resin-etcher/build/browser/app.js:32807:17)
    at Scope.$eval (file:///Users/jviotti/Projects/resin/resin-etcher/build/browser/app.js:25246:28)
    at Scope.$apply (file:///Users/jviotti/Projects/resin/resin-etcher/build/browser/app.js:25346:25)
    at hero-progress-button.<anonymous> (file:///Users/jviotti/Projects/resin/resin-etcher/build/browser/app.js:32812:23)
    at defaultHandlerWrapper (file:///Users/jviotti/Projects/resin/resin-etcher/build/browser/app.js:12540:11)
    at hero-progress-button.eventHandler (file:///Users/jviotti/Projects/resin/resin-etcher/build/browser/app.js:12528:9)

Blank screen on start

Using ArchLinux x64 with node 5.5.0 and bower 1.7.2, upon start I have this blank screen:

screenshot_2016-01-25_22-51-03

No log in the console beyond the normal node start info. Same thing when creating stand-alone executable with the included Makefile.

npm test passes successfully, and npm install has only these warnings for optional dependencies.

npm WARN optional Skipping failed optional dependency //elevator:
npm WARN notsup Not compatible with your operating system or architecture: [email protected]
npm WARN optional Skipping failed optional dependency //removedrive:
npm WARN notsup Not compatible with your operating system or architecture: [email protected]
npm WARN optional Skipping failed optional dependency /resin-image-write/diskpart:
npm WARN notsup Not compatible with your operating system or architecture: [email protected]

Don't seem like any already existing issue reported. Any suggestions what to test?

Prevent clicking burn button when progress is zero

We currently prevent the "Burn" button to be clicked if the percentage is 0, as an attempt to prevent the user to try to burn twice, however at the beginning of a burn progress, the percentage is 0, and we still allow to click it for some seconds.

No drives detected on packaged Ubuntu

I get the following on Ubuntu:

Unhandled rejection Error: Command failed: /bin/sh -c "/home/jviotti/Desktop/Herostratus-linux-x64/resources/app.asar/node_modules/drivelist/scripts"/linux.sh
/bin/sh: 1: /home/jviotti/Desktop/Herostratus-linux-x64/resources/app.asar/node_modules/drivelist/scripts/linux.sh: not found

    at ChildProcess.exithandler (child_process.js:209:12)
    at emitTwo (events.js:87:13)
    at ChildProcess.emit (events.js:172:7)
    at maybeClose (internal/child_process.js:764:16)
    at Socket.<anonymous> (internal/child_process.js:319:11)
    at emitOne (events.js:77:13)
    at Socket.emit (events.js:169:7)
    at Pipe._onclose (net.js:469:12)

Drivelist executes scripts as child processes to discover the drives, however the fact that everything is packaged into an asar makes the scripts inaccessible.

This is probably the same issue as #28

Herostratus freezes Fedora 22

When executing packaged x64 Herostratus on Fedora 22 the whole system freezes and the app never starts.

The app do display the "not enough permissions" window when running without sudo.

Allow a way to re-select in the first two steps

If you made a mistake the in the selection of an image or drive, you basically have to close and re-open the application to select again. There should be an easy way for the user to re-select.

Maybe allow clicking on the label to unselect?

Allow passing a URL and streaming an image to the drive.

This is a major feature that needs to re-architect the code to pass a readable stream directly instead of a file name to the writer first.

  • Implement UI to be able to paste a URL as the first step.
  • Handle network error conditions gracefully.
  • Handle invalid URLs or other invalid condition.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.