Top Related Projects
This is the official source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler.
A new bootable USB solution.
The Reliable USB Formatting Utility
UNetbootin installs Linux/BSD distributions to a partition or USB drive
Quick Overview
Etcher is an open-source, cross-platform tool for flashing OS images to SD cards and USB drives. It provides a user-friendly interface for creating bootable media, primarily used for installing operating systems on single-board computers like Raspberry Pi or for creating live USB drives.
Pros
- Cross-platform compatibility (Windows, macOS, Linux)
- User-friendly interface with a simple three-step process
- Supports writing compressed images directly, without prior extraction
- Built-in validation to ensure successful and accurate flashing
Cons
- Large application size compared to command-line alternatives
- Occasional issues with specific hardware combinations
- Limited customization options for advanced users
- Requires administrative privileges to run, which may be a concern in some environments
Getting Started
To use Etcher:
- Download the appropriate version for your operating system from the official website.
- Install and launch Etcher.
- Click "Flash from file" to select your image.
- Select the target drive.
- Click "Flash!" to begin the process.
Note: Etcher is not a code library, so there are no code examples or quick start instructions for developers. It's an end-user application for flashing OS images.
Competitor Comparisons
This is the official source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler.
Pros of FreeCAD
- Comprehensive 3D modeling and CAD software with a wide range of features
- Open-source and cross-platform, supporting Windows, macOS, and Linux
- Large and active community contributing to development and support
Cons of FreeCAD
- Steeper learning curve compared to Etcher's simple interface
- Larger file size and more system resources required for installation and use
- More complex setup process and dependencies
Code Comparison
FreeCAD (Python):
import FreeCAD as App
import Part
doc = App.newDocument()
box = Part.makeBox(10, 10, 10)
doc.addObject("Part::Feature", "Box").Shape = box
doc.recompute()
Etcher (JavaScript):
const electron = require('electron');
const path = require('path');
const { autoUpdater } = require('electron-updater');
const app = electron.app;
const ipc = electron.ipcMain;
FreeCAD is a full-featured CAD software using Python for scripting, while Etcher is a simpler tool for creating bootable USB drives, primarily using JavaScript and Electron. The code snippets reflect their different purposes and complexity levels.
A new bootable USB solution.
Pros of Ventoy
- Supports multiple ISO files on a single USB drive
- No need to reformat the USB drive for each new ISO
- Faster boot times for subsequent OS installations
Cons of Ventoy
- Slightly more complex initial setup process
- May not work with some older BIOS systems
- Limited GUI options compared to Etcher
Code Comparison
Etcher (JavaScript):
function flashImage(image, drive, options) {
return new Promise((resolve, reject) => {
// Image flashing logic
});
}
Ventoy (C):
int ventoy_fill_iso_data(PVENTOY_ISO_DATA data, const char *iso_path)
{
// ISO data filling logic
}
Etcher focuses on a user-friendly GUI and cross-platform compatibility, making it easier for beginners to create bootable USB drives. It uses Electron and JavaScript, allowing for a more modern and responsive interface.
Ventoy, written in C, prioritizes efficiency and versatility. It creates a bootable USB drive that can hold multiple ISO files, eliminating the need to reformat the drive for each new operating system. This approach is particularly useful for system administrators and power users who frequently work with multiple operating systems.
While Etcher excels in ease of use and cross-platform support, Ventoy offers more flexibility and efficiency for advanced users who need to work with multiple ISO files regularly.
The Reliable USB Formatting Utility
Pros of Rufus
- Smaller file size and faster installation process
- Supports a wider range of bootable media creation options
- More frequent updates and active development
Cons of Rufus
- Windows-only application, limiting cross-platform usage
- Less user-friendly interface compared to Etcher's modern design
- Lacks built-in verification feature for created bootable media
Code Comparison
Rufus (C):
BOOL SetAutoRun(const char* path)
{
HKEY hAutoRun;
DWORD disp;
CHECK_RETURN(ERROR_SEVERITY_ERROR, HRESULT_FROM_WIN32(RegCreateKeyExA(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, NULL,
REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hAutoRun, &disp)));
CHECK_RETURN(ERROR_SEVERITY_ERROR, HRESULT_FROM_WIN32(RegSetValueExA(hAutoRun,
"Rufus", 0, REG_SZ, (BYTE*)path, (DWORD)(strlen(path) + 1))));
RegCloseKey(hAutoRun);
return TRUE;
}
Etcher (JavaScript):
function createWindowIcon() {
const trayIcon = nativeImage.createFromPath(
path.join(__dirname, '..', 'assets', 'tray', 'icon.png')
)
trayIcon.setTemplateImage(true)
return trayIcon
}
Both projects serve similar purposes but cater to different user bases and operating systems. Rufus offers more advanced features for Windows users, while Etcher provides a simpler, cross-platform solution for creating bootable USB drives.
UNetbootin installs Linux/BSD distributions to a partition or USB drive
Pros of UNetbootin
- Supports a wider range of operating systems, including older versions of Windows and Linux distributions
- Offers a built-in download feature for various Linux distributions and system utilities
- Lighter on system resources, making it suitable for older or less powerful computers
Cons of UNetbootin
- Less intuitive user interface compared to Etcher's modern design
- Lacks built-in verification of created bootable media
- Development appears to be less active, with fewer recent updates
Code Comparison
UNetbootin (C++):
void unetbootin::fininstall()
{
instIndvFiles();
if (installType == tr("USB Drive"))
{
finishLoading();
}
else if (installType == tr("Hard Disk"))
{
// Hard disk installation logic
}
}
Etcher (JavaScript):
function createFlasher(options) {
const flasher = new Flasher(options);
flasher.on('progress', (state) => {
updateProgress(state);
});
return flasher;
}
The code snippets show different approaches: UNetbootin uses C++ for low-level operations, while Etcher employs JavaScript, reflecting its Electron-based architecture for cross-platform compatibility.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
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.
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
- 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.
Top Related Projects
This is the official source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler.
A new bootable USB solution.
The Reliable USB Formatting Utility
UNetbootin installs Linux/BSD distributions to a partition or USB drive
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot