어제, 오랜만에 라이브 디스크 이미지를 받아 예전 방식으로 사용해보려 했는데, 실패하고 말았다.
왜 이러는지는 알 수가 없다. refind 도 최신판으로 했는데.. refind 는 당연히 떴고, 진입(KDE Neon)도 되는데, 최종 부팅까진 성공하지 못했다. 뭔 문제가 있을까..??
아무튼, 맘도 급하고, 당시 문제는 그게 아니었으므로, 당장 발등의 불을 해결해야 해서 이미지를 USB 드라이브로 옮기는 작업을 하려 했는데..
그냥 알고 있는 대로 dd
를 썼으면 간단했을걸(결국 이렇게 하긴 했는데..), KDE Neon 에 소개된 ‘Rosa Image Writer’ 가 또 한번 심기를 건드렸다.
문제는 이렇다. Rosa Image Writer 는 그냥 실행 파일이고, balena-etcher 는 AppImage 형식으로 배포되고 있다. 따라서 그냥 실행은 터미널에서 ./xxx
로 하든가, 아니면 파일 관리자에서 두번 따닥~하면 되는데, 이게 모두 아무런 반응이 없었다.
아래 실험은 모두, ArchLinux, KDE Plasma 상황에서 진행되었다.
터미널에서 실행
$ ./balenaEtcher-1.7.9-x64.AppImage [Axios v1.7.9] Transitional option 'clarifyTimeoutError' has been deprecated since v1.0.0 and will be removed in the near future [Axios v1.7.9] Transitional option 'forcedJSONParsing' has been deprecated since v1.0.0 and will be removed in the near future [Axios v1.7.9] Transitional option 'silentJSONParsing' has been deprecated since v1.0.0 and will be removed in the near future {"message":"connect ENETUNREACH 2406:da18:880:3802:bc32:fc44:302b:aad2:443 - Local (:::0)","stack":"Error: connect ENETUNREACH 2406:da18:880:3802:bc32:fc44:302b:aad2:443 - Local (:::0)\n at internalConnect (net.js:921:16)\n at defaultTriggerAsyncIdScope (internal/async_hooks.js:430:12)\n at GetAddrInfoReqWrap.emitLookup [as callback] (net.js:1064:9)\n at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:69:8)","config":{"url":"https://balena.io/etcher/static/config.json","method":"get","headers":{"Accept":"application/json, text/plain, */*","User-Agent":"axios/1.7.9"},"transformRequest":[null],"transformResponse":[null],"timeout":0,"responseType":"json","xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1,"maxBodyLength":-1,"transitional":{"silentJSONParsing":true,"forcedJSONParsing":true,"clarifyTimeoutError":false}},"code":"ENETUNREACH"}
etcher 는 여기까지 나오고 아무런 반응이 없다.
Rosa Image Writer 는, 실행하면 대화상자가 뜨면서 ‘관리자 권한’ 취득을 위해 비밀번호를 요청하는데, 넣어줘도 잘못된 비밀번호라고 나오면서 더 이상 진행이 되지 않는다.
pkexec 로 실행
역시 둘 모두 되지 않는다.
$ pkexec ./RosaImageWriter QXcbConnection: Could not connect to display [1] 19676 IOT instruction (core dumped) pkexec ./RosaImageWriter $ pkexec ./balenaEtcher-1.7.9-x64.AppImage /tmp/.mount_balena5qA4EB/balena-etcher-electron: 줄 10: 19796 세그멘테이션 오류 (코어 덤프됨) "${script_dir}"/balena-etcher-electron.bin "$@" --no-sandbox
kdesu ?
$ kdesu ./RosaImageWriter ... 대화창 나오고..
RosaImageWriter 는, kdesu 를 안붙이고 실행했을 때와 같은 결과를 보여준다. 즉, 대화상자가 뜨고, 비밀번호를 묻지만..
$ kdesu ./balenaEtcher-1.7.9-x64.AppImage ... 대화창 나오고.. (Rosa 와 동일한 결과)
Etcher 도 마찬가지. 대화창이 나오고 비밀번호를 묻지만, 진행은 안된다.
유일한 해결 방법은 sudo
뿐. 이게 아치리눅스에서만 이러는지, 다른 배포판에선 어떤지 확인하진 못했다.
헌데, 도대체 GUI 프로그램을 관리자 권한으로 실행할 때 가장 좋은 방법은 뭘까?
이 우문에 정답은, ‘사용하지 말라‘다. 복잡한 내용이라 내가 알 수 있는 영역을 벗어났지만.. 프로그램 자체에 권한을 부여하는 영역이 구현된 프로그램(아마도 KDE Partition Manager 같은?)을 제외하고는, 인위로 root 권한을 주는 행위는 보안에 문제가 될 소지가 다분하다.. 이런 내용으로 보인다.
이 글을 다 쓰고 나서, ArchLinux 문서를 찾아보니, Etcher 류 프로그램은 권하지 않는다는 내용이 있었다. 몰랐었네, 이런건. Etcher 는 스파이웨어라는 평도 있네!
그래서 결론은…
예전에도 예전 방식을 권장하는 Arch 문서를 읽은 적이 있었다. 그 때도, cat
이나 cp
로 되는구나?? 하고 놀랐었는데, 이 기회에 또 한번 머릿 속에 담아두기로.