@fredlackey/devutils 0.0.18 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (447) hide show
  1. package/README.md +214 -141
  2. package/package.json +8 -83
  3. package/src/api/loader.js +229 -0
  4. package/src/api/registry.json +62 -0
  5. package/src/cli.js +293 -60
  6. package/src/commands/ai/index.js +16 -0
  7. package/src/commands/ai/launch.js +112 -0
  8. package/src/commands/ai/list.js +54 -0
  9. package/src/commands/ai/resume.js +70 -0
  10. package/src/commands/ai/sessions.js +121 -0
  11. package/src/commands/ai/set.js +131 -0
  12. package/src/commands/ai/show.js +74 -0
  13. package/src/commands/ai/tools.js +46 -0
  14. package/src/commands/alias/add.js +93 -0
  15. package/src/commands/alias/helpers.js +107 -0
  16. package/src/commands/alias/index.js +14 -0
  17. package/src/commands/alias/list.js +55 -0
  18. package/src/commands/alias/remove.js +62 -0
  19. package/src/commands/alias/sync.js +109 -0
  20. package/src/commands/api/disable.js +73 -0
  21. package/src/commands/api/enable.js +148 -0
  22. package/src/commands/api/index.js +15 -0
  23. package/src/commands/api/list.js +66 -0
  24. package/src/commands/api/update.js +87 -0
  25. package/src/commands/auth/index.js +15 -0
  26. package/src/commands/auth/list.js +49 -0
  27. package/src/commands/auth/login.js +384 -0
  28. package/src/commands/auth/logout.js +111 -0
  29. package/src/commands/auth/refresh.js +184 -0
  30. package/src/commands/auth/services.js +169 -0
  31. package/src/commands/auth/status.js +104 -0
  32. package/src/commands/config/export.js +224 -0
  33. package/src/commands/config/get.js +52 -0
  34. package/src/commands/config/import.js +308 -0
  35. package/src/commands/config/index.js +17 -0
  36. package/src/commands/config/init.js +143 -0
  37. package/src/commands/config/reset.js +57 -0
  38. package/src/commands/config/set.js +93 -0
  39. package/src/commands/config/show.js +35 -0
  40. package/src/commands/help.js +338 -0
  41. package/src/commands/identity/add.js +133 -0
  42. package/src/commands/identity/index.js +17 -0
  43. package/src/commands/identity/link.js +76 -0
  44. package/src/commands/identity/list.js +48 -0
  45. package/src/commands/identity/remove.js +72 -0
  46. package/src/commands/identity/show.js +65 -0
  47. package/src/commands/identity/sync.js +172 -0
  48. package/src/commands/identity/unlink.js +57 -0
  49. package/src/commands/ignore/add.js +165 -0
  50. package/src/commands/ignore/index.js +14 -0
  51. package/src/commands/ignore/list.js +89 -0
  52. package/src/commands/ignore/markers.js +43 -0
  53. package/src/commands/ignore/remove.js +164 -0
  54. package/src/commands/ignore/show.js +169 -0
  55. package/src/commands/machine/detect.js +122 -0
  56. package/src/commands/machine/index.js +14 -0
  57. package/src/commands/machine/list.js +74 -0
  58. package/src/commands/machine/set.js +106 -0
  59. package/src/commands/machine/show.js +35 -0
  60. package/src/commands/schema.js +152 -0
  61. package/src/commands/search/collections.js +134 -0
  62. package/src/commands/search/get.js +71 -0
  63. package/src/commands/search/index-cmd.js +54 -0
  64. package/src/commands/search/index.js +21 -0
  65. package/src/commands/search/keyword.js +60 -0
  66. package/src/commands/search/qmd.js +70 -0
  67. package/src/commands/search/query.js +64 -0
  68. package/src/commands/search/semantic.js +62 -0
  69. package/src/commands/search/status.js +46 -0
  70. package/src/commands/status.js +224 -171
  71. package/src/commands/tools/check.js +79 -0
  72. package/src/commands/tools/index.js +14 -0
  73. package/src/commands/tools/install.js +110 -0
  74. package/src/commands/tools/list.js +91 -0
  75. package/src/commands/tools/search.js +60 -0
  76. package/src/commands/update.js +83 -112
  77. package/src/commands/util/add.js +151 -0
  78. package/src/commands/util/index.js +15 -0
  79. package/src/commands/util/list.js +97 -0
  80. package/src/commands/util/remove.js +76 -0
  81. package/src/commands/util/run.js +79 -0
  82. package/src/commands/util/show.js +67 -0
  83. package/src/commands/version.js +21 -88
  84. package/src/installers/_template.js +104 -0
  85. package/src/installers/git.js +150 -0
  86. package/src/installers/homebrew.js +190 -0
  87. package/src/installers/node.js +223 -0
  88. package/src/installers/registry.json +29 -0
  89. package/src/lib/config.js +125 -0
  90. package/src/lib/detect.js +74 -0
  91. package/src/lib/errors.js +114 -0
  92. package/src/lib/github.js +315 -0
  93. package/src/lib/installer.js +225 -0
  94. package/src/lib/output.js +239 -0
  95. package/src/lib/platform.js +112 -0
  96. package/src/lib/platforms/amazon-linux.js +41 -0
  97. package/src/lib/platforms/gitbash.js +46 -0
  98. package/src/lib/platforms/macos.js +45 -0
  99. package/src/lib/platforms/raspbian.js +41 -0
  100. package/src/lib/platforms/ubuntu.js +39 -0
  101. package/src/lib/platforms/windows.js +45 -0
  102. package/src/lib/prompt.js +161 -0
  103. package/src/lib/schema.js +211 -0
  104. package/src/lib/shell.js +75 -0
  105. package/src/patterns/gitignore/claude-code.txt +25 -0
  106. package/src/patterns/gitignore/docker.txt +15 -0
  107. package/src/patterns/gitignore/go.txt +24 -0
  108. package/src/patterns/gitignore/java.txt +38 -0
  109. package/src/patterns/gitignore/jetbrains.txt +26 -0
  110. package/src/patterns/gitignore/linux.txt +18 -0
  111. package/src/patterns/gitignore/macos.txt +27 -0
  112. package/src/patterns/gitignore/node.txt +51 -0
  113. package/src/patterns/gitignore/python.txt +55 -0
  114. package/src/patterns/gitignore/rust.txt +14 -0
  115. package/src/patterns/gitignore/terraform.txt +30 -0
  116. package/src/patterns/gitignore/vscode.txt +15 -0
  117. package/src/patterns/gitignore/windows.txt +25 -0
  118. package/src/utils/clone/index.js +165 -0
  119. package/src/utils/git-push/index.js +230 -0
  120. package/src/utils/git-status/index.js +116 -0
  121. package/src/utils/git-status/unix.sh +75 -0
  122. package/src/utils/registry.json +41 -0
  123. package/bin/dev.js +0 -16
  124. package/files/README.md +0 -0
  125. package/files/claude/.claude/commands/setup-context.md +0 -3
  126. package/files/monorepos/_archive/README.md +0 -36
  127. package/files/monorepos/_legacy/README.md +0 -36
  128. package/files/monorepos/ai-docs/README.md +0 -33
  129. package/files/monorepos/apps/README.md +0 -24
  130. package/files/monorepos/docs/README.md +0 -40
  131. package/files/monorepos/packages/README.md +0 -25
  132. package/files/monorepos/research/README.md +0 -29
  133. package/files/monorepos/scripts/README.md +0 -24
  134. package/src/commands/README.md +0 -41
  135. package/src/commands/configure.js +0 -199
  136. package/src/commands/identity.js +0 -1630
  137. package/src/commands/ignore.js +0 -247
  138. package/src/commands/install.js +0 -526
  139. package/src/commands/setup.js +0 -246
  140. package/src/completion.js +0 -284
  141. package/src/constants.js +0 -45
  142. package/src/ignore/claude-code.txt +0 -10
  143. package/src/ignore/docker.txt +0 -18
  144. package/src/ignore/linux.txt +0 -23
  145. package/src/ignore/macos.txt +0 -36
  146. package/src/ignore/node.txt +0 -55
  147. package/src/ignore/terraform.txt +0 -37
  148. package/src/ignore/vscode.txt +0 -18
  149. package/src/ignore/windows.txt +0 -35
  150. package/src/index.js +0 -0
  151. package/src/installs/README.md +0 -399
  152. package/src/installs/adobe-creative-cloud.js +0 -546
  153. package/src/installs/adobe-creative-cloud.md +0 -605
  154. package/src/installs/appcleaner.js +0 -321
  155. package/src/installs/appcleaner.md +0 -699
  156. package/src/installs/apt-transport-https.js +0 -390
  157. package/src/installs/apt-transport-https.md +0 -678
  158. package/src/installs/atomicparsley.js +0 -642
  159. package/src/installs/atomicparsley.md +0 -795
  160. package/src/installs/aws-cli.js +0 -797
  161. package/src/installs/aws-cli.md +0 -727
  162. package/src/installs/balena-etcher.js +0 -710
  163. package/src/installs/balena-etcher.md +0 -761
  164. package/src/installs/bambu-studio.js +0 -1143
  165. package/src/installs/bambu-studio.md +0 -780
  166. package/src/installs/bash-completion.js +0 -575
  167. package/src/installs/bash-completion.md +0 -833
  168. package/src/installs/bash.js +0 -417
  169. package/src/installs/bash.md +0 -993
  170. package/src/installs/beyond-compare.js +0 -603
  171. package/src/installs/beyond-compare.md +0 -813
  172. package/src/installs/brave-browser.js +0 -968
  173. package/src/installs/brave-browser.md +0 -650
  174. package/src/installs/build-essential.js +0 -529
  175. package/src/installs/build-essential.md +0 -977
  176. package/src/installs/ca-certificates.js +0 -618
  177. package/src/installs/ca-certificates.md +0 -937
  178. package/src/installs/caffeine.js +0 -508
  179. package/src/installs/caffeine.md +0 -839
  180. package/src/installs/camtasia.js +0 -596
  181. package/src/installs/camtasia.md +0 -762
  182. package/src/installs/chatgpt.js +0 -476
  183. package/src/installs/chatgpt.md +0 -814
  184. package/src/installs/chocolatey.js +0 -456
  185. package/src/installs/chocolatey.md +0 -661
  186. package/src/installs/chrome-canary.js +0 -419
  187. package/src/installs/chrome-canary.md +0 -641
  188. package/src/installs/chromium.js +0 -667
  189. package/src/installs/chromium.md +0 -838
  190. package/src/installs/claude-code.js +0 -576
  191. package/src/installs/claude-code.md +0 -1173
  192. package/src/installs/cloudflare-warp.js +0 -900
  193. package/src/installs/cloudflare-warp.md +0 -1047
  194. package/src/installs/comet-browser.js +0 -588
  195. package/src/installs/comet-browser.md +0 -731
  196. package/src/installs/curl.js +0 -379
  197. package/src/installs/curl.md +0 -714
  198. package/src/installs/cursor.js +0 -579
  199. package/src/installs/cursor.md +0 -970
  200. package/src/installs/dbeaver.js +0 -924
  201. package/src/installs/dbeaver.md +0 -939
  202. package/src/installs/dbschema.js +0 -692
  203. package/src/installs/dbschema.md +0 -925
  204. package/src/installs/dependencies.md +0 -453
  205. package/src/installs/development-tools.js +0 -600
  206. package/src/installs/development-tools.md +0 -977
  207. package/src/installs/docker.js +0 -1029
  208. package/src/installs/docker.md +0 -1109
  209. package/src/installs/drawio.js +0 -1019
  210. package/src/installs/drawio.md +0 -795
  211. package/src/installs/elmedia-player.js +0 -347
  212. package/src/installs/elmedia-player.md +0 -556
  213. package/src/installs/ffmpeg.js +0 -889
  214. package/src/installs/ffmpeg.md +0 -852
  215. package/src/installs/file.js +0 -464
  216. package/src/installs/file.md +0 -987
  217. package/src/installs/gemini-cli.js +0 -811
  218. package/src/installs/gemini-cli.md +0 -1153
  219. package/src/installs/git.js +0 -400
  220. package/src/installs/git.md +0 -907
  221. package/src/installs/gitego.js +0 -949
  222. package/src/installs/gitego.md +0 -1172
  223. package/src/installs/go.js +0 -931
  224. package/src/installs/go.md +0 -958
  225. package/src/installs/google-antigravity.js +0 -913
  226. package/src/installs/google-antigravity.md +0 -1075
  227. package/src/installs/google-chrome.js +0 -833
  228. package/src/installs/google-chrome.md +0 -862
  229. package/src/installs/gpg.js +0 -480
  230. package/src/installs/gpg.md +0 -1056
  231. package/src/installs/homebrew.js +0 -1028
  232. package/src/installs/homebrew.md +0 -988
  233. package/src/installs/imageoptim.js +0 -968
  234. package/src/installs/imageoptim.md +0 -1119
  235. package/src/installs/installers.json +0 -4032
  236. package/src/installs/installers.json.tmp +0 -3953
  237. package/src/installs/jq.js +0 -400
  238. package/src/installs/jq.md +0 -809
  239. package/src/installs/keyboard-maestro.js +0 -719
  240. package/src/installs/keyboard-maestro.md +0 -825
  241. package/src/installs/kiro.js +0 -864
  242. package/src/installs/kiro.md +0 -1015
  243. package/src/installs/latex.js +0 -789
  244. package/src/installs/latex.md +0 -1095
  245. package/src/installs/lftp.js +0 -356
  246. package/src/installs/lftp.md +0 -907
  247. package/src/installs/lsb-release.js +0 -346
  248. package/src/installs/lsb-release.md +0 -814
  249. package/src/installs/messenger.js +0 -847
  250. package/src/installs/messenger.md +0 -900
  251. package/src/installs/microsoft-office.js +0 -568
  252. package/src/installs/microsoft-office.md +0 -760
  253. package/src/installs/microsoft-teams.js +0 -801
  254. package/src/installs/microsoft-teams.md +0 -886
  255. package/src/installs/moom.js +0 -326
  256. package/src/installs/moom.md +0 -570
  257. package/src/installs/node.js +0 -904
  258. package/src/installs/node.md +0 -1153
  259. package/src/installs/nordpass.js +0 -716
  260. package/src/installs/nordpass.md +0 -921
  261. package/src/installs/nordvpn.js +0 -892
  262. package/src/installs/nordvpn.md +0 -1052
  263. package/src/installs/nvm.js +0 -995
  264. package/src/installs/nvm.md +0 -1057
  265. package/src/installs/ohmyzsh.js +0 -529
  266. package/src/installs/ohmyzsh.md +0 -1094
  267. package/src/installs/openssh.js +0 -804
  268. package/src/installs/openssh.md +0 -1056
  269. package/src/installs/pandoc.js +0 -662
  270. package/src/installs/pandoc.md +0 -1036
  271. package/src/installs/parallels-desktop.js +0 -431
  272. package/src/installs/parallels-desktop.md +0 -446
  273. package/src/installs/pinentry.js +0 -510
  274. package/src/installs/pinentry.md +0 -1142
  275. package/src/installs/pngyu.js +0 -869
  276. package/src/installs/pngyu.md +0 -896
  277. package/src/installs/postman.js +0 -799
  278. package/src/installs/postman.md +0 -940
  279. package/src/installs/procps.js +0 -425
  280. package/src/installs/procps.md +0 -851
  281. package/src/installs/safari-tech-preview.js +0 -374
  282. package/src/installs/safari-tech-preview.md +0 -533
  283. package/src/installs/sfnt2woff.js +0 -658
  284. package/src/installs/sfnt2woff.md +0 -795
  285. package/src/installs/shellcheck.js +0 -481
  286. package/src/installs/shellcheck.md +0 -1005
  287. package/src/installs/slack.js +0 -741
  288. package/src/installs/slack.md +0 -865
  289. package/src/installs/snagit.js +0 -585
  290. package/src/installs/snagit.md +0 -844
  291. package/src/installs/software-properties-common.js +0 -372
  292. package/src/installs/software-properties-common.md +0 -805
  293. package/src/installs/spotify.js +0 -877
  294. package/src/installs/spotify.md +0 -901
  295. package/src/installs/studio-3t.js +0 -823
  296. package/src/installs/studio-3t.md +0 -918
  297. package/src/installs/sublime-text.js +0 -804
  298. package/src/installs/sublime-text.md +0 -914
  299. package/src/installs/superwhisper.js +0 -706
  300. package/src/installs/superwhisper.md +0 -630
  301. package/src/installs/tailscale.js +0 -745
  302. package/src/installs/tailscale.md +0 -1100
  303. package/src/installs/tar.js +0 -389
  304. package/src/installs/tar.md +0 -946
  305. package/src/installs/termius.js +0 -798
  306. package/src/installs/termius.md +0 -844
  307. package/src/installs/terraform.js +0 -779
  308. package/src/installs/terraform.md +0 -899
  309. package/src/installs/tfenv.js +0 -778
  310. package/src/installs/tfenv.md +0 -1091
  311. package/src/installs/tidal.js +0 -771
  312. package/src/installs/tidal.md +0 -864
  313. package/src/installs/tmux.js +0 -346
  314. package/src/installs/tmux.md +0 -1030
  315. package/src/installs/tree.js +0 -411
  316. package/src/installs/tree.md +0 -833
  317. package/src/installs/unzip.js +0 -460
  318. package/src/installs/unzip.md +0 -879
  319. package/src/installs/vim.js +0 -421
  320. package/src/installs/vim.md +0 -1040
  321. package/src/installs/vlc.js +0 -821
  322. package/src/installs/vlc.md +0 -927
  323. package/src/installs/vscode.js +0 -843
  324. package/src/installs/vscode.md +0 -1002
  325. package/src/installs/wget.js +0 -420
  326. package/src/installs/wget.md +0 -791
  327. package/src/installs/whatsapp.js +0 -729
  328. package/src/installs/whatsapp.md +0 -854
  329. package/src/installs/winpty.js +0 -352
  330. package/src/installs/winpty.md +0 -620
  331. package/src/installs/woff2.js +0 -553
  332. package/src/installs/woff2.md +0 -977
  333. package/src/installs/wsl.js +0 -572
  334. package/src/installs/wsl.md +0 -699
  335. package/src/installs/xcode-clt.js +0 -520
  336. package/src/installs/xcode-clt.md +0 -351
  337. package/src/installs/xcode.js +0 -560
  338. package/src/installs/xcode.md +0 -573
  339. package/src/installs/yarn.js +0 -824
  340. package/src/installs/yarn.md +0 -1074
  341. package/src/installs/yq.js +0 -654
  342. package/src/installs/yq.md +0 -944
  343. package/src/installs/yt-dlp.js +0 -701
  344. package/src/installs/yt-dlp.md +0 -946
  345. package/src/installs/yum-utils.js +0 -297
  346. package/src/installs/yum-utils.md +0 -648
  347. package/src/installs/zoom.js +0 -759
  348. package/src/installs/zoom.md +0 -884
  349. package/src/installs/zsh.js +0 -455
  350. package/src/installs/zsh.md +0 -1008
  351. package/src/scripts/README.md +0 -617
  352. package/src/scripts/STATUS.md +0 -208
  353. package/src/scripts/afk.js +0 -411
  354. package/src/scripts/backup-all.js +0 -746
  355. package/src/scripts/backup-source.js +0 -727
  356. package/src/scripts/brewd.js +0 -389
  357. package/src/scripts/brewi.js +0 -520
  358. package/src/scripts/brewr.js +0 -527
  359. package/src/scripts/brews.js +0 -477
  360. package/src/scripts/brewu.js +0 -504
  361. package/src/scripts/c.js +0 -201
  362. package/src/scripts/ccurl.js +0 -341
  363. package/src/scripts/certbot-crontab-init.js +0 -504
  364. package/src/scripts/certbot-init.js +0 -657
  365. package/src/scripts/ch.js +0 -355
  366. package/src/scripts/claude-danger.js +0 -268
  367. package/src/scripts/clean-dev.js +0 -435
  368. package/src/scripts/clear-dns-cache.js +0 -541
  369. package/src/scripts/clone.js +0 -435
  370. package/src/scripts/code-all.js +0 -437
  371. package/src/scripts/count-files.js +0 -211
  372. package/src/scripts/count-folders.js +0 -211
  373. package/src/scripts/count.js +0 -264
  374. package/src/scripts/d.js +0 -219
  375. package/src/scripts/datauri.js +0 -389
  376. package/src/scripts/delete-files.js +0 -380
  377. package/src/scripts/docker-clean.js +0 -426
  378. package/src/scripts/dp.js +0 -442
  379. package/src/scripts/e.js +0 -390
  380. package/src/scripts/empty-trash.js +0 -513
  381. package/src/scripts/evm.js +0 -444
  382. package/src/scripts/fetch-github-repos.js +0 -456
  383. package/src/scripts/get-channel.js +0 -345
  384. package/src/scripts/get-course.js +0 -399
  385. package/src/scripts/get-dependencies.js +0 -306
  386. package/src/scripts/get-folder.js +0 -799
  387. package/src/scripts/get-tunes.js +0 -426
  388. package/src/scripts/get-video.js +0 -367
  389. package/src/scripts/git-backup.js +0 -577
  390. package/src/scripts/git-clone.js +0 -493
  391. package/src/scripts/git-pup.js +0 -319
  392. package/src/scripts/git-push.js +0 -396
  393. package/src/scripts/h.js +0 -622
  394. package/src/scripts/hide-desktop-icons.js +0 -499
  395. package/src/scripts/hide-hidden-files.js +0 -538
  396. package/src/scripts/install-dependencies-from.js +0 -456
  397. package/src/scripts/ips.js +0 -663
  398. package/src/scripts/iso.js +0 -370
  399. package/src/scripts/killni.js +0 -577
  400. package/src/scripts/ll.js +0 -467
  401. package/src/scripts/local-ip.js +0 -325
  402. package/src/scripts/m.js +0 -524
  403. package/src/scripts/map.js +0 -309
  404. package/src/scripts/mkd.js +0 -351
  405. package/src/scripts/ncu-update-all.js +0 -457
  406. package/src/scripts/nginx-init.js +0 -718
  407. package/src/scripts/npmi.js +0 -382
  408. package/src/scripts/o.js +0 -511
  409. package/src/scripts/org-by-date.js +0 -338
  410. package/src/scripts/p.js +0 -224
  411. package/src/scripts/packages.js +0 -330
  412. package/src/scripts/path.js +0 -225
  413. package/src/scripts/ports.js +0 -597
  414. package/src/scripts/q.js +0 -305
  415. package/src/scripts/refresh-files.js +0 -394
  416. package/src/scripts/remove-smaller-files.js +0 -516
  417. package/src/scripts/rename-files-with-date.js +0 -533
  418. package/src/scripts/resize-image.js +0 -539
  419. package/src/scripts/rm-safe.js +0 -669
  420. package/src/scripts/s.js +0 -540
  421. package/src/scripts/set-git-public.js +0 -365
  422. package/src/scripts/show-desktop-icons.js +0 -475
  423. package/src/scripts/show-hidden-files.js +0 -472
  424. package/src/scripts/tpa.js +0 -280
  425. package/src/scripts/tpo.js +0 -280
  426. package/src/scripts/u.js +0 -505
  427. package/src/scripts/vpush.js +0 -437
  428. package/src/scripts/y.js +0 -283
  429. package/src/utils/README.md +0 -95
  430. package/src/utils/common/apps.js +0 -143
  431. package/src/utils/common/display.js +0 -157
  432. package/src/utils/common/network.js +0 -185
  433. package/src/utils/common/os.js +0 -294
  434. package/src/utils/common/package-manager.js +0 -301
  435. package/src/utils/common/privileges.js +0 -138
  436. package/src/utils/common/shell.js +0 -261
  437. package/src/utils/macos/apps.js +0 -228
  438. package/src/utils/macos/brew.js +0 -315
  439. package/src/utils/ubuntu/apt.js +0 -307
  440. package/src/utils/ubuntu/desktop.js +0 -292
  441. package/src/utils/ubuntu/snap.js +0 -344
  442. package/src/utils/ubuntu/systemd.js +0 -286
  443. package/src/utils/windows/choco.js +0 -465
  444. package/src/utils/windows/env.js +0 -246
  445. package/src/utils/windows/registry.js +0 -269
  446. package/src/utils/windows/shell.js +0 -240
  447. package/src/utils/windows/winget.js +0 -489
@@ -1,761 +0,0 @@
1
- # Installing Balena Etcher
2
-
3
- ## Overview
4
-
5
- Balena Etcher is a powerful, open-source OS image flasher built with web technologies. It provides a safe and easy way to flash OS images to SD cards and USB drives. Etcher validates the writing process to ensure every byte of data is written correctly, and it includes safeguards to prevent accidentally writing to your hard drives. The tool supports a wide range of image formats including ISO, IMG, ZIP, and compressed archives.
6
-
7
- Balena Etcher is commonly used for:
8
-
9
- - Creating bootable USB drives for operating system installation
10
- - Flashing Raspberry Pi images to SD cards
11
- - Writing disk images for embedded systems and IoT devices
12
- - Preparing recovery media
13
-
14
- ## Prerequisites
15
-
16
- Before installing Balena Etcher on any platform, ensure:
17
-
18
- 1. **Internet connectivity** - Required to download the installer or package
19
- 2. **Administrative privileges** - Required on most platforms for installation
20
- 3. **64-bit operating system** - Balena Etcher requires a 64-bit system on all platforms
21
- 4. **GUI environment** - Balena Etcher is a graphical application and requires a desktop environment
22
-
23
- **Important**: Balena Etcher is a GUI application. It cannot be run headlessly or via SSH without X11 forwarding.
24
-
25
- ## Dependencies
26
-
27
- ### macOS (Homebrew)
28
- - **Required:**
29
- - Homebrew - Install via `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`
30
- - **Optional:** None
31
- - **Auto-installed:** None (Homebrew cask handles all application dependencies automatically)
32
-
33
- ### Ubuntu (APT/Snap)
34
- - **Required:**
35
- - `wget` - Install via `sudo apt-get install -y wget` (auto-installed by script if missing)
36
- - `sudo` privileges - Required for package installation
37
- - **Optional:** None
38
- - **Auto-installed:** Package dependencies are automatically resolved by APT when installing the .deb file
39
-
40
- ### Raspberry Pi OS (APT/Snap)
41
- - **Required:**
42
- - 64-bit Raspberry Pi OS (aarch64 architecture) - Verify with `uname -m`
43
- - `wget` - Usually pre-installed, or install via `sudo apt-get install -y wget`
44
- - Pi-Apps - Auto-installed by the script from https://github.com/Botspot/pi-apps
45
- - **Optional:** None
46
- - **Auto-installed:**
47
- - Pi-Apps and its dependencies: `yad`, `curl`, `wget` (installed during Pi-Apps setup if missing)
48
-
49
- ### Amazon Linux (DNF/YUM)
50
- - **Required:**
51
- - `wget` - Install via `sudo dnf install -y wget` or `sudo yum install -y wget` (auto-installed by script if missing)
52
- - `sudo` privileges - Required for package installation
53
- - **Optional:**
54
- - Desktop environment (GNOME, KDE, etc.) - Install via `sudo dnf groupinstall -y "Server with GUI"`
55
- - **Auto-installed:**
56
- - Runtime dependencies (may include): `libXScrnSaver`, `gtk3`, `nss`, `alsa-lib` - installed automatically by DNF/YUM when installing the .rpm package
57
-
58
- ### Windows (Chocolatey/winget)
59
- - **Required:**
60
- - Chocolatey OR winget package manager
61
- - Chocolatey - Install via PowerShell (Administrator): `Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))`
62
- - winget - Pre-installed on Windows 11 and recent Windows 10 builds
63
- - Administrator privileges - Required for installation
64
- - **Optional:** None
65
- - **Auto-installed:** All runtime dependencies are handled automatically by the package manager
66
-
67
- ### Git Bash (Manual/Portable)
68
- - **Required:**
69
- - Git Bash - Install via https://git-scm.com/download/win
70
- - Windows 10 or Windows 11 (64-bit)
71
- - Chocolatey (for package manager install) OR ability to download portable version
72
- - **Optional:**
73
- - `unzip` - Usually included with Git Bash, needed for portable version extraction
74
- - PowerShell - Alternative method for extracting zip files
75
- - **Auto-installed:** None (delegates to Windows Chocolatey installation, or uses manually extracted portable version)
76
-
77
- ## Platform-Specific Installation
78
-
79
- ### macOS (Homebrew)
80
-
81
- #### Prerequisites
82
-
83
- - macOS 10.15 (Catalina) or later
84
- - Homebrew package manager installed
85
- - Terminal access
86
-
87
- If Homebrew is not installed, install it first:
88
-
89
- ```bash
90
- /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
91
- ```
92
-
93
- #### Installation Steps
94
-
95
- Run the following command to install Balena Etcher:
96
-
97
- ```bash
98
- brew install --cask --quiet balenaetcher
99
- ```
100
-
101
- The `--cask` flag specifies this is a GUI application (cask), and `--quiet` suppresses non-essential output, making the command suitable for automation scripts.
102
-
103
- #### Verification
104
-
105
- Confirm the installation succeeded by checking the application exists:
106
-
107
- ```bash
108
- ls /Applications/balenaEtcher.app
109
- ```
110
-
111
- Expected output:
112
-
113
- ```
114
- /Applications/balenaEtcher.app
115
- ```
116
-
117
- Alternatively, launch the application:
118
-
119
- ```bash
120
- open /Applications/balenaEtcher.app
121
- ```
122
-
123
- #### Troubleshooting
124
-
125
- **Problem**: `Error: Cask balenaetcher is not available`
126
-
127
- **Solution**: Update Homebrew's cask definitions:
128
-
129
- ```bash
130
- brew update
131
- ```
132
-
133
- **Problem**: Installation blocked by macOS Gatekeeper
134
-
135
- **Solution**: The application is signed, but macOS may still block it on first launch. Open System Preferences > Security & Privacy and click "Open Anyway" for balenaEtcher.
136
-
137
- **Problem**: Permission denied errors during installation
138
-
139
- **Solution**: Fix Homebrew permissions:
140
-
141
- ```bash
142
- sudo chown -R $(whoami) /Applications
143
- ```
144
-
145
- ---
146
-
147
- ### Ubuntu/Debian (APT)
148
-
149
- #### Prerequisites
150
-
151
- - Ubuntu 18.04 or later, or Debian 10 or later (64-bit)
152
- - sudo privileges
153
- - wget or curl installed
154
-
155
- **Important**: The official Balena Etcher APT repository is deprecated and no longer receives updates. Install Balena Etcher by downloading the `.deb` package directly from GitHub releases.
156
-
157
- #### Installation Steps
158
-
159
- Download and install the latest Balena Etcher `.deb` package:
160
-
161
- ```bash
162
- wget -q -O /tmp/balena-etcher.deb "https://github.com/balena-io/etcher/releases/download/v2.1.4/balena-etcher_2.1.4_amd64.deb"
163
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y /tmp/balena-etcher.deb
164
- rm -f /tmp/balena-etcher.deb
165
- ```
166
-
167
- The `DEBIAN_FRONTEND=noninteractive` environment variable and `-y` flag ensure fully non-interactive installation. The temporary file is cleaned up after installation.
168
-
169
- #### Verification
170
-
171
- Confirm the installation succeeded:
172
-
173
- ```bash
174
- which balena-etcher || dpkg -l | grep balena-etcher
175
- ```
176
-
177
- Expected output showing the package is installed:
178
-
179
- ```
180
- ii balena-etcher 2.1.4 amd64 Flash OS images to SD cards & USB drives, safely and easily.
181
- ```
182
-
183
- Launch the application from the terminal:
184
-
185
- ```bash
186
- balena-etcher &
187
- ```
188
-
189
- #### Troubleshooting
190
-
191
- **Problem**: `dpkg: dependency problems prevent configuration`
192
-
193
- **Solution**: Fix broken dependencies:
194
-
195
- ```bash
196
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -f -y
197
- ```
198
-
199
- **Problem**: Application fails to launch with GPU/sandbox errors
200
-
201
- **Solution**: Run with sandbox disabled (for troubleshooting only):
202
-
203
- ```bash
204
- balena-etcher --no-sandbox
205
- ```
206
-
207
- For a permanent fix, ensure your system has proper graphics drivers installed.
208
-
209
- **Problem**: `wget: command not found`
210
-
211
- **Solution**: Install wget first:
212
-
213
- ```bash
214
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y wget
215
- ```
216
-
217
- ---
218
-
219
- ### Raspberry Pi OS (Pi-Apps)
220
-
221
- #### Prerequisites
222
-
223
- - Raspberry Pi OS (64-bit) - **Required**
224
- - Raspberry Pi 3, 4, or 5 (64-bit capable hardware)
225
- - Desktop environment installed (Raspberry Pi OS with Desktop)
226
- - Internet connectivity
227
-
228
- **Critical**: Balena Etcher does NOT have an official ARM installer. The x86/x64 packages from the official website will not work on Raspberry Pi. Use Pi-Apps to install a community-compiled ARM64 version.
229
-
230
- Verify you are running 64-bit Raspberry Pi OS:
231
-
232
- ```bash
233
- uname -m
234
- ```
235
-
236
- This **must** output `aarch64`. If it outputs `armv7l`, you need to install the 64-bit version of Raspberry Pi OS.
237
-
238
- #### Installation Steps
239
-
240
- First, install Pi-Apps (the Raspberry Pi app store):
241
-
242
- ```bash
243
- wget -qO- https://raw.githubusercontent.com/Botspot/pi-apps/master/install | bash
244
- ```
245
-
246
- After Pi-Apps is installed, install Balena Etcher using the Pi-Apps CLI:
247
-
248
- ```bash
249
- /home/$USER/pi-apps/manage install 'BalenaEtcher'
250
- ```
251
-
252
- **Note**: The Pi-Apps installation process may display progress in a GUI window. For fully headless installation, you can use:
253
-
254
- ```bash
255
- DISPLAY=:0 /home/$USER/pi-apps/manage install 'BalenaEtcher'
256
- ```
257
-
258
- #### Verification
259
-
260
- Confirm the installation succeeded:
261
-
262
- ```bash
263
- which balena-etcher-electron || ls /usr/bin/balena-etcher*
264
- ```
265
-
266
- Launch the application:
267
-
268
- ```bash
269
- balena-etcher-electron &
270
- ```
271
-
272
- #### Troubleshooting
273
-
274
- **Problem**: Pi-Apps installation fails
275
-
276
- **Solution**: Ensure you have a desktop environment and required dependencies:
277
-
278
- ```bash
279
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y yad curl wget
280
- ```
281
-
282
- **Problem**: `BalenaEtcher will only run on PiOS 64-bit`
283
-
284
- **Solution**: You must use the 64-bit version of Raspberry Pi OS. Download it from https://www.raspberrypi.com/software/operating-systems/ and reflash your SD card.
285
-
286
- **Problem**: Application crashes on launch
287
-
288
- **Solution**: Ensure you have sufficient GPU memory. Edit `/boot/config.txt` and set:
289
-
290
- ```
291
- gpu_mem=128
292
- ```
293
-
294
- Then reboot:
295
-
296
- ```bash
297
- sudo reboot
298
- ```
299
-
300
- **Alternative Approach**: If you need to flash SD cards on a Raspberry Pi, consider using Raspberry Pi Imager instead, which has official ARM support:
301
-
302
- ```bash
303
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y rpi-imager
304
- ```
305
-
306
- ---
307
-
308
- ### Amazon Linux/RHEL (DNF)
309
-
310
- #### Prerequisites
311
-
312
- - Amazon Linux 2023, Amazon Linux 2, RHEL 8+, or Fedora 35+
313
- - 64-bit (x86_64) architecture
314
- - sudo privileges
315
- - Desktop environment installed (GNOME, KDE, etc.)
316
-
317
- **Note**: Amazon Linux is typically used as a server OS without a GUI. If you need Balena Etcher on Amazon Linux, you must first install a desktop environment.
318
-
319
- #### Installation Steps
320
-
321
- Download and install the latest Balena Etcher RPM package:
322
-
323
- ```bash
324
- wget -q -O /tmp/balena-etcher.rpm "https://github.com/balena-io/etcher/releases/download/v2.1.4/balena-etcher-2.1.4-1.x86_64.rpm"
325
- sudo dnf install -y /tmp/balena-etcher.rpm
326
- rm -f /tmp/balena-etcher.rpm
327
- ```
328
-
329
- The `-y` flag ensures non-interactive installation without prompts.
330
-
331
- For Amazon Linux 2 (which uses `yum` instead of `dnf`):
332
-
333
- ```bash
334
- wget -q -O /tmp/balena-etcher.rpm "https://github.com/balena-io/etcher/releases/download/v2.1.4/balena-etcher-2.1.4-1.x86_64.rpm"
335
- sudo yum install -y /tmp/balena-etcher.rpm
336
- rm -f /tmp/balena-etcher.rpm
337
- ```
338
-
339
- **Note**: During installation, DNF may display a warning about skipping OpenPGP checks for packages from the commandline repository. This is expected behavior when installing local RPM files.
340
-
341
- #### Verification
342
-
343
- Confirm the installation succeeded:
344
-
345
- ```bash
346
- rpm -q balena-etcher
347
- ```
348
-
349
- Expected output:
350
-
351
- ```
352
- balena-etcher-2.1.4-1.x86_64
353
- ```
354
-
355
- The binary installs to `/usr/bin/balena-etcher`:
356
-
357
- ```bash
358
- which balena-etcher
359
- ```
360
-
361
- #### Troubleshooting
362
-
363
- **Problem**: `No package balena-etcher available`
364
-
365
- **Solution**: Ensure you are installing from the downloaded RPM file, not from a repository:
366
-
367
- ```bash
368
- sudo dnf install -y /tmp/balena-etcher.rpm
369
- ```
370
-
371
- **Problem**: Missing dependencies
372
-
373
- **Solution**: Install required libraries:
374
-
375
- ```bash
376
- sudo dnf install -y libXScrnSaver gtk3 nss alsa-lib
377
- ```
378
-
379
- **Problem**: Cannot launch - no display
380
-
381
- **Solution**: Amazon Linux servers typically do not have a GUI. Install a desktop environment first:
382
-
383
- ```bash
384
- sudo dnf groupinstall -y "Server with GUI"
385
- sudo systemctl set-default graphical.target
386
- sudo reboot
387
- ```
388
-
389
- ---
390
-
391
- ### Windows (Chocolatey)
392
-
393
- #### Prerequisites
394
-
395
- - Windows 10 or Windows 11 (64-bit)
396
- - Chocolatey package manager installed
397
- - Administrator PowerShell or Command Prompt
398
-
399
- If Chocolatey is not installed, install it first by running this command in an Administrator PowerShell:
400
-
401
- ```powershell
402
- Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
403
- ```
404
-
405
- #### Installation Steps
406
-
407
- Run the following command in an Administrator PowerShell or Command Prompt:
408
-
409
- ```powershell
410
- choco install etcher -y
411
- ```
412
-
413
- The `-y` flag automatically confirms all prompts, enabling fully non-interactive installation.
414
-
415
- **Alternative (winget)**: If you prefer winget:
416
-
417
- ```powershell
418
- winget install --id Balena.Etcher --silent --accept-source-agreements --accept-package-agreements
419
- ```
420
-
421
- The `--silent`, `--accept-source-agreements`, and `--accept-package-agreements` flags ensure non-interactive installation.
422
-
423
- #### Verification
424
-
425
- After installation, verify by checking the installation path:
426
-
427
- ```powershell
428
- Test-Path "C:\Program Files\balenaEtcher\balenaEtcher.exe"
429
- ```
430
-
431
- Expected output:
432
-
433
- ```
434
- True
435
- ```
436
-
437
- Launch the application:
438
-
439
- ```powershell
440
- Start-Process "C:\Program Files\balenaEtcher\balenaEtcher.exe"
441
- ```
442
-
443
- #### Troubleshooting
444
-
445
- **Problem**: `choco: The term 'choco' is not recognized`
446
-
447
- **Solution**: Chocolatey is not installed or not in PATH. Close all terminals, open a new Administrator PowerShell, and verify Chocolatey installation:
448
-
449
- ```powershell
450
- refreshenv
451
- choco --version
452
- ```
453
-
454
- **Problem**: Installation fails with access denied
455
-
456
- **Solution**: Ensure you are running PowerShell as Administrator. Right-click PowerShell and select "Run as administrator".
457
-
458
- **Problem**: Application does not appear in Start menu
459
-
460
- **Solution**: The Start menu shortcut may take a moment to appear. Alternatively, search for "balenaEtcher" in the Windows search bar or navigate to the installation directory.
461
-
462
- **Problem**: Windows Defender blocks the installation
463
-
464
- **Solution**: Balena Etcher is safe software. Temporarily disable real-time protection or add an exclusion for the Chocolatey and balenaEtcher directories.
465
-
466
- ---
467
-
468
- ### WSL (Ubuntu)
469
-
470
- #### Prerequisites
471
-
472
- - Windows Subsystem for Linux with Ubuntu installed
473
- - WSL 2 recommended (required for GUI support)
474
- - Windows 11 or Windows 10 with WSLg enabled
475
- - sudo privileges within WSL
476
-
477
- **Important**: Balena Etcher is a GUI application. Running GUI applications in WSL requires WSLg (Windows Subsystem for Linux GUI), which is available in Windows 11 and recent Windows 10 builds.
478
-
479
- #### Installation Steps
480
-
481
- Follow the same steps as Ubuntu/Debian:
482
-
483
- ```bash
484
- wget -q -O /tmp/balena-etcher.deb "https://github.com/balena-io/etcher/releases/download/v2.1.4/balena-etcher_2.1.4_amd64.deb"
485
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
486
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y /tmp/balena-etcher.deb
487
- rm -f /tmp/balena-etcher.deb
488
- ```
489
-
490
- #### Verification
491
-
492
- Check the package is installed:
493
-
494
- ```bash
495
- dpkg -l | grep balena-etcher
496
- ```
497
-
498
- Launch the application (requires WSLg):
499
-
500
- ```bash
501
- balena-etcher &
502
- ```
503
-
504
- #### Troubleshooting
505
-
506
- **Problem**: `cannot open display` error
507
-
508
- **Solution**: WSLg may not be enabled or configured. Verify WSLg is working:
509
-
510
- ```bash
511
- echo $DISPLAY
512
- ```
513
-
514
- This should output something like `:0`. If empty, ensure you are using WSL 2 and Windows 11 (or Windows 10 with WSLg enabled):
515
-
516
- ```powershell
517
- # In Windows PowerShell
518
- wsl --update
519
- wsl --shutdown
520
- wsl
521
- ```
522
-
523
- **Problem**: USB devices not accessible from WSL
524
-
525
- **Solution**: WSL does not have native USB passthrough. For flashing USB drives, install Balena Etcher directly on Windows instead (see Windows section). Alternatively, use USB/IP to forward USB devices to WSL.
526
-
527
- **Problem**: Application fails with sandbox errors
528
-
529
- **Solution**: Run without sandbox:
530
-
531
- ```bash
532
- balena-etcher --no-sandbox &
533
- ```
534
-
535
- **Recommended Alternative**: For USB flashing operations, install Balena Etcher on Windows directly (using Chocolatey or winget) rather than in WSL, as WSL has limited USB device access.
536
-
537
- ---
538
-
539
- ### Git Bash (Windows Installation)
540
-
541
- #### Prerequisites
542
-
543
- - Windows 10 or Windows 11 (64-bit)
544
- - Git Bash installed (comes with Git for Windows)
545
- - Balena Etcher installed on Windows (see Windows section above)
546
-
547
- **Note**: Git Bash runs on Windows and inherits the Windows PATH. Once Balena Etcher is installed on Windows, it is automatically accessible from Git Bash. There is no separate Git Bash installation required.
548
-
549
- #### Installation Steps
550
-
551
- Install Balena Etcher on Windows using Chocolatey from Git Bash:
552
-
553
- ```bash
554
- # Call Windows Chocolatey from Git Bash (requires Administrator Git Bash)
555
- /c/ProgramData/chocolatey/bin/choco.exe install etcher -y
556
- ```
557
-
558
- Alternatively, download and run the portable version without requiring Administrator privileges:
559
-
560
- ```bash
561
- # Create a local applications directory
562
- mkdir -p ~/Applications
563
-
564
- # Download the portable Windows version
565
- curl -L -o ~/Applications/balenaEtcher.zip "https://github.com/balena-io/etcher/releases/download/v2.1.4/balenaEtcher-win32-x64-2.1.4.zip"
566
-
567
- # Extract the archive
568
- unzip -q ~/Applications/balenaEtcher.zip -d ~/Applications/balenaEtcher
569
-
570
- # Clean up the zip file
571
- rm ~/Applications/balenaEtcher.zip
572
- ```
573
-
574
- #### Verification
575
-
576
- If installed via Chocolatey, verify the installation:
577
-
578
- ```bash
579
- ls "/c/Program Files/balenaEtcher/balenaEtcher.exe"
580
- ```
581
-
582
- If using the portable version:
583
-
584
- ```bash
585
- ls ~/Applications/balenaEtcher/balenaEtcher.exe
586
- ```
587
-
588
- Launch the application:
589
-
590
- ```bash
591
- # Installed version
592
- "/c/Program Files/balenaEtcher/balenaEtcher.exe" &
593
-
594
- # Or portable version
595
- ~/Applications/balenaEtcher/balenaEtcher.exe &
596
- ```
597
-
598
- #### Troubleshooting
599
-
600
- **Problem**: Chocolatey command not found
601
-
602
- **Solution**: Chocolatey may not be installed or the path is different. Install via PowerShell first (see Windows section), then access from Git Bash.
603
-
604
- **Problem**: Permission denied when installing via Chocolatey
605
-
606
- **Solution**: Git Bash must be run as Administrator for Chocolatey installations. Right-click Git Bash and select "Run as administrator".
607
-
608
- **Problem**: Cannot extract zip file
609
-
610
- **Solution**: Install unzip if not available:
611
-
612
- ```bash
613
- # unzip is typically included with Git Bash, but if missing:
614
- pacman -S unzip # Only works if pacman is available (MSYS2)
615
- ```
616
-
617
- Alternatively, use PowerShell to extract:
618
-
619
- ```bash
620
- powershell -command "Expand-Archive -Path '$HOME/Applications/balenaEtcher.zip' -DestinationPath '$HOME/Applications/balenaEtcher'"
621
- ```
622
-
623
- ---
624
-
625
- ## Post-Installation Configuration
626
-
627
- Balena Etcher requires no configuration after installation. The application is ready to use immediately.
628
-
629
- ### First Launch
630
-
631
- 1. Launch Balena Etcher from your application menu or command line
632
- 2. Click "Flash from file" to select an OS image (ISO, IMG, ZIP, etc.)
633
- 3. Click "Select target" to choose your USB drive or SD card
634
- 4. Click "Flash!" to begin the writing process
635
-
636
- ### USB Device Permissions (Linux Only)
637
-
638
- On Linux systems, you may need to add your user to the appropriate groups to access USB devices without sudo:
639
-
640
- ```bash
641
- sudo usermod -a -G disk $USER
642
- sudo usermod -a -G plugdev $USER
643
- ```
644
-
645
- Log out and log back in for group changes to take effect.
646
-
647
- ### Creating Desktop Shortcuts (Linux)
648
-
649
- If a desktop shortcut is not automatically created, you can create one manually:
650
-
651
- ```bash
652
- cat > ~/.local/share/applications/balena-etcher.desktop << 'EOF'
653
- [Desktop Entry]
654
- Name=balenaEtcher
655
- Comment=Flash OS images to SD cards and USB drives
656
- Exec=/usr/bin/balena-etcher %U
657
- Icon=balena-etcher
658
- Terminal=false
659
- Type=Application
660
- Categories=Utility;
661
- EOF
662
- ```
663
-
664
- ---
665
-
666
- ## Common Issues
667
-
668
- ### Issue: "No polkit authentication agent found"
669
-
670
- **Symptoms**: Error message about polkit when trying to flash drives on Linux.
671
-
672
- **Solution**: Install a polkit authentication agent:
673
-
674
- ```bash
675
- # Ubuntu/Debian
676
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y policykit-1-gnome
677
-
678
- # Fedora/Amazon Linux
679
- sudo dnf install -y polkit-gnome
680
- ```
681
-
682
- ### Issue: USB Drive Not Detected
683
-
684
- **Symptoms**: The USB drive does not appear in the target selection.
685
-
686
- **Solution**:
687
-
688
- 1. Ensure the USB drive is properly inserted
689
- 2. Try a different USB port (preferably USB 2.0 for compatibility)
690
- 3. On Linux, check if the device is mounted and unmount it:
691
-
692
- ```bash
693
- # Find the device
694
- lsblk
695
-
696
- # Unmount if mounted (replace sdX with your device)
697
- sudo umount /dev/sdX*
698
- ```
699
-
700
- ### Issue: Flash Validation Fails
701
-
702
- **Symptoms**: The flash completes but validation fails with errors.
703
-
704
- **Solution**:
705
-
706
- 1. The SD card or USB drive may be faulty - try a different one
707
- 2. Download the image file again (it may be corrupted)
708
- 3. Verify the image checksum before flashing:
709
-
710
- ```bash
711
- sha256sum your-image-file.img
712
- ```
713
-
714
- ### Issue: Application Crashes on Launch
715
-
716
- **Symptoms**: Balena Etcher immediately closes or shows a blank window.
717
-
718
- **Solution**:
719
-
720
- 1. Update your graphics drivers
721
- 2. Try launching with GPU acceleration disabled:
722
-
723
- ```bash
724
- # Linux
725
- balena-etcher --disable-gpu
726
-
727
- # Windows (PowerShell)
728
- & "C:\Program Files\balenaEtcher\balenaEtcher.exe" --disable-gpu
729
- ```
730
-
731
- ### Issue: "EACCES: permission denied" on Linux
732
-
733
- **Symptoms**: Permission errors when trying to write to a drive.
734
-
735
- **Solution**: Run Balena Etcher with elevated privileges (not recommended for regular use):
736
-
737
- ```bash
738
- sudo balena-etcher
739
- ```
740
-
741
- Better solution: Fix udev rules for USB device access:
742
-
743
- ```bash
744
- echo 'SUBSYSTEM=="usb", MODE="0666"' | sudo tee /etc/udev/rules.d/50-usb.rules
745
- sudo udevadm control --reload-rules
746
- sudo udevadm trigger
747
- ```
748
-
749
- ---
750
-
751
- ## References
752
-
753
- - [Balena Etcher Official Website](https://etcher.balena.io/)
754
- - [Balena Etcher GitHub Repository](https://github.com/balena-io/etcher)
755
- - [Balena Etcher GitHub Releases](https://github.com/balena-io/etcher/releases)
756
- - [Homebrew Cask - balenaetcher](https://formulae.brew.sh/cask/balenaetcher)
757
- - [Chocolatey Package - etcher](https://community.chocolatey.org/packages/etcher)
758
- - [winget Package - Balena.Etcher](https://winget.run/pkg/Balena/Etcher)
759
- - [Pi-Apps - BalenaEtcher for Raspberry Pi](https://pi-apps.io/install-app/install-balenaetcher-on-raspberry-pi/)
760
- - [BalenaEtcher ARM Builds (Community)](https://github.com/Itai-Nelken/BalenaEtcher-arm)
761
- - [PortableApps - balenaEtcher Portable](https://portableapps.com/apps/utilities/balenaetcher-portable)