기본 콘텐츠로 건너뛰기

Btrfs 부팅 문제

Btrfs을 사용할 경우에서, 컴퓨터 재시작 후에 부팅이 되지 않는 문제가 증가하고 있다고  보고되고 있습니다.  https://lore.kernel.org/linux-btrfs/283624a8-dc79-4dd0-b6e5-9d5e83e31648@gmx.com/T/#ma9fa3134de084a38c2b208def66619e7a8561085 문제의 해결 방법으로, chroot 후에 다음으로 수정 가능하다고 알려져 있습니다: sudo btrfs rescue zero-log /dev/sdX  이 문제는 지속적으로 재현할 수 있는 방법이 없다고 알려져 있습니다.  대체로 6.15.3을 푸시한 이후 CachyOS에서 약 50-80개의 보고서가 제출되었고, Fedora 및 archlinux에서도 보고서가 증가했다고 알려져 있습니다. 한편, 데비안 13 시스템에서, 커널을 지속적으로 컴파일해서 사용해 왔지만, 이런 현상을 만날 수 없었습니다. 데비안 시스템은 /boot를 별도로 ext4 파티션으로 나누어 두었기 때문에, 이것과 관련이 있는지는 확인하지 못했습니다.  

리눅스 배우기

원문 보기: https://dawoum.duckdns.org/wiki/리눅스_배우기

이 기사는 윈도우를 벗어나서 다른 운영 시스템을 찾다가 결국 리눅스 배포판을 선택한 분들을 위한 글입니다.

2022년 현재, 잘 알려진 것처럼, 리눅스 배포판은 적어도 수백개가 존재합니다. 이러다 보니 배포판을 선택하는 것이 초보자에게 문제가 되기도 하지만, 처음 선택한 배포판을 그대로 사용할 가능성이 매우 낮을 수 있습니다.

이런 상황 아래에서, 처음에 어떤 배포판을 선택하더라도 나중에 또 다른 배포판으로 전환했을 때, 많은 시간 투자없이 해당 시스템을 잘 사용하기를 희망할 수 있습니다.

한편, 윈도우에서 사용했던 경험, 주로 GUI 환경에서 시스템을 설정하던 습관은 리눅스를 배우는 데 가장 큰 장애물 중 하나입니다. 만약 처음에 배포판을 선택했을 때, 그런 습관으로 인해, GUI에서 시스템을 설정하게 하고 그런 도구를 찾아 헤매는 것은 좋은 습관은 아닐 수 있습니다.

왜냐하면, 리눅스는 많은 부분이 자원자들에 의해 코드가 작성되고, 해당 프로젝트를 진행하는 주요 작성자가 시간적 여유가 사라지면, 프로젝트 자체가 사라지는 경우가 생깁니다. 이러다 보니, 초보자를 위한 GUI 환경을 제공하는 것보다는 필요한 기능 자체를 구현하는 것이 일차적인 목표입니다.

게다가, 프로젝트를 진행하는 당사자들은 대부분 그 프로젝트에서 금전적 이익을 취하지 않아서, 판매를 전제로 프로그램을 작성하지 않기 때문에, 굳이 GUI 도구를 만들지 않을 수 있습니다.

반면에, 아주 오랫동안 지속되고 많은 사용자 층을 가진 일부 프로그램, 예를 들어, Wine은 GUI 도구 PlayOnLinux를 가지기도 합니다.

또한, 일부 배포판에서 그런 GUI 도구를 일부 개발하고 제공하기도 하지만, 다른 배포판이 그것을 채택할지 여부는 배포판 제작자의 의도에 있고, 우분투와 같은 상업적 패포판이라면, 자신의 특색을 강조하기 위해 아마도 다른 배포판에서 만든 GUI 도구를 사용하기를 꺼릴 수 있습니다.

어쨌든, 초보자들이 윈도우에서의 경험을 살리기 위해, 어쩌면 유일한 경험이기 때문에, 이런 GUI 도구를 제공하는 배포판을 선택하기도 하지만, 대체로 리눅스 배포판의 많은 선택이 있기 때문에, 어느 정도 지식을 쌓은 후에는 다른 배포판으로의 이동도 아주 자연스러운 현상입니다.

이 기사는 리눅스를 배우는 과정을 다루지만, 배포판 사이의 이동을 전제로 가능한 공통적인 방법을 다루고자 합니다.

프로그램 설치와 제거

배포판을 선택하고 나면, 프로그램을 설치 또는 제거할 수 있어야 합니다. 리눅스는 윈도우에서 처럼 해당 아이콘을 클릭함으로써 명령을 실행할 수도 있지만, 리눅스는 가상 터미널, 예를 들어, 그놈 터미널에서 명령을 실행하는 것을 더 좋아할 수 있습니다.

데비안, 우분투, 페도라, 아치 등의 배포판은 프로그램을 설치하고 제거하는 GUI 도구를 제공합니다. 이런 도구들은 꽤 오랫동안 개발이 되어서 어느 정도는 안정적인 동작을 보장합니다.

그러나, 널리 사용되는 배포판은 터미널의 명령줄에서 간단한 입력으로 시스템 업데이트/업그레이드, 프로그램 설치/제거, 검색 등의 기능을 수행할 수 있고, 마우스를 사용할 일이 없어서 대체로 효율적이라고 생각될 수 있습니다:

  • 데비안/우분투-계열 – apt, dpkg, 등
  • 페도라-계열 – dnf, rpm, 등
  • 아치-계열 – pacman, yay, 등

실제로 데비안/우분투-계열에서 사용하던 명령어에 익숙해지면, 다른 배포판에서 같은 일을 수행할 때, 옵션이 어떻게 바뀌는지를 확인함으로써 거의 같은 정도의 숙련도를 발휘할 수 있습니다.

어느 누군가는 컴퓨터를 켜면, 가장 먼저 터미널을 열어서, 다음 명령을 입력할 것입니다:

  • sudo apt update
  • sudo dnf update
  • sudo pacman -Syu

이들 명령에서 주로 사용하는 옵션은 거의 결정되어 있어서, 이를 배우는 데애는 크게 시간이 소모되지 않습니다. 단지, 나아가서 패키지를 직접 제작할 때에는 보다 많은 지식이 필요할 수 있습니다.

각 배포판마다 자주 사용하는 프로그램 설치/제거 옵션을 확인하고 싶으면, Category:Distributions에 가셔서 확인을 하십시오.

파일시스템 계층구조 표준

윈도우 시스템은 물리적 파티션과 논리적 파티션을 드라이브 문자 C, D, 등으로 연결합니다. 반면에 리눅스는 드라이브가 없고, 슬래쉬 (/)로 표현되는 루트 디렉토리 아래에 미리-정의된 표준 파일시스템 계층구조를 가집니다. 윈도우 시스템과 다르게, 리눅스 시스템은 물리적과 논리적 파티션을 루트 디렉토리와 루트 디렉토리 아래의 특정 디렉토리 또는 사용자 지정 디렉토리에 마운트 (연결)합니다.

이 계층구조는 반드시 지켜야 할 사항은 아니지만, 배포판 사이의 가능한 공통점을 유지함으로써, 사용자들의 혼란을 최소화하기 위해 제시되었고, 특이한 몇 개의 배포판을 제외하고, 완전하지는 않지만, 지켜지는 경향이 있습니다.

사용자가 파일시스템 계층구조 표준을 외울 필요는 없는데, 왜냐하면 사용자가 설치한 프로그램의 목록 또는 설정의 조정 등을 하면서 자연스럽게 알게 되기 때문이고, 적어도 이런 계층 구조를 갖고 있다는 사실은 알아 둘 필요가 있습니다.

리눅스 기본 명령어

리눅스에서 사용되는 명령어 목록은 아래에서 볼 수 있습니다:

이 중에서 자주 사용하는 것은 특별한 순서없이 아래와 같습니다:

  • ls
  • cd
  • cp
  • tar –
  • mv –
  • rm –
  • mkdir –
  • df –
  • pwd –
  • grep
  • ln
  • chown
  • chmod
  • uname
  • less
  • ps
  • su / sudo
  • which

좋은 습관일까?

로그 보기

초보 사용자들에서 벗어날 가장 중요한 사항이 무엇일까? 라는 물음에, 여러 가지 중에서, 로그를 보는 습관을, 자주는 아니더라도, 들이는 것을 추천합니다.

잘 만들어진 프로그램은 자체의 동작 사항과 문제점을 만났을 때, 그것에 대한 기록, 로그를 남깁니다. 초보자들은 보통 문제에 부딪히면 로그를 볼 생각 자체를 전혀 하지 않기 때문에, 문제의 정확한 원인을 파악할 수 없습니다.

게다가, 초보자들의 질문을 받은 또 다른 사용자는 "먼저 로그를 확인하세요"라는 가장 중요한 말을 거의 하지 않습니다. 아마도 그런 사용자들은 로그의 중요성을 알지 못하기 때문에, 습관이 되지 않았을 것이고, 자연스럽게도 다른 사람들에게 전할 수 없을 것으로 보입니다.

대부분의 문제에 대한 해결책은 정확한 로그를 인터넷에 검색함으로써 얻을 수 있습니다. 아마도 찾지 못하는 경우는 최근 변경사항, 예를 들어 이번 주일에 발생한 내용이라서, 논의된 적이 없기 때문일 것입니다.

Chroot

중급 사용자에서 벗어날 가장 중요한 사항이 무엇일까? 라는 물음에, 여러 가지 중에서, chroot를 이해하고 사용하는 것입니다.

어떤 문제점에 부딪혔을 때, 시스템이 부팅되면, 부팅과 관련된 부분이 작동하고 있어서, 로그를 찾아보고 검색 등을 통해 해결책을 찾기가 쉬울 수 있지만, 부팅이 되지 않으면, 외부의 부팅 디스크를 사용해서 부팅한 후에, 시스템 내부로 들어가서 커널 재설치, 파일 시스템 검사, 부터로더 복구 등의 시스템 복원을 하는 과정이 필요합니다.

이때, 다른 방법이 있을지라도, chroot가 무난하게 이용할 수 있는 방법입니다.

이 과정은 오히려 초보자에게 매우 필요한데, 왜냐하면 초보자는 안전한 것과 위험한 것을 구별할 능력이 대체로 없고 주로 부팅이 되지 않을 상황을 만들 가능성이 높기 때문입니다.

게다가, 초보자는 자신이 처리할 수 없는 상황에 이르면 대체로 시스템을 다시 설치하려는 손쉬운 방법을 선택하기 쉽고, 이런 경향은 초보자를 영원히 현재 위치에 남겨둘 것입니다.

만약 시스템을 다시 설치하려고 시도한다면, 내부에 중요한 자료가 없기 때문이고, 이런 과정을 시도해 보기에 더할 나위없이 좋은 상황이므로, 이 과정을 통해 리눅스 시스템에서 생기는 거의 모든 문제점을 해결할 능력을 가질 수도 있습니다.

Gui 프로그램 배우기

예를 들어, 윈도우 시스템과의 파일 교환을 위해, 여러가지 방법이 있을지라도, 가장 친숙한 삼바 서버를 이용한다고 생각해 보십시오. 아마도 특정 배포판은 그 설정을 돕기 위해, GUI 도구를 제공하고, 초기에 인기를 얻을 수 있습니다. 그러나, 초보자에게 GUI 도구가 있는 것은 진입 장벽은 낮출 수 있지만, 반대 급부로 유용한 지식을 쌓는데에는 방해가 될 수 있습니다.

삼바 서버의 설정은 거의 모든 배포판에서 /etc/smb.conf 또는 /etc/samba/smb.conf에 저장됩니다. Samba (software)의 기사에서 제공되는 두 가지 설정은 십 몇년 전과 전혀 달라지지 않았습니다. 사실, 이런 설정이 있는 곳은 대체로 정해져 있고, 그것을 찾는 것도 명령-줄에서 확인하는 것이 훨씬 간편하고 빠릅니다.

초보자들은 이 내용을 복사해서 해당 위치로 옮기는 것이 힘들 수 있어서, 그 내용을 GUI 도구를 이용해서 입력하도록 만든 배포판을 사용합니다. 그러나, GUI 도구에서 어떤 위치에서 선택이 어떤 의미를 가지는지 알지 못하면, 초보자들 입장에서 그림에 나오는 것과 똑같이 했다고 주장하더라도, 그렇게 동작하지 않는 결과를 낳기도 합니다.

GUI 도구는 편안한 점이 없진 않지만, 그런 도구를 지속적으로 사용하고 그 습관에 머물러 있으면, 리눅스를 사용함으로써 얻을 수 있는 여러가지 재미있는 지식에 거의 접근할 수 없게 될 수도 있습니다.

더구나, GUI 환경이 작동하지 않으면, 오로지 명령어로 복구할 수 밖에 없다는 사실이 항상 존재합니다.

부지런한 관리자 vs. 게으른 관리자

부지런한 관리자가 되지 말자!!

이상한 소리로 들릴 수 있겠지만, 관리자는 같은 일을 무턱되게 부지런히 하는 습관을 버려야 합니다. 대신에 같은 일을 반복적으로 처리하고 있다면, 크론, systemd timer 등을 사용하여, 컴퓨터에 대신 지시하고, 그 결과를 이메일로 통보 받는 식으로 전환할 필요가 있습니다.

과거에 정보가 부족한 시절에는 이런 설정을 위해 긴 문서를 읽어야 하는 부담이 있었지만, 지금은 거의 모든 설정이 인터넷에 공개되어 있습니다.

따라서, 반복적 작업이 필요할 때에는 자동으로 처리할 방법을 찾아서 설정하고 관리자는 단지 시기별로 확인하는 습관을 가질 필요가 있습니다.

 


 

댓글

이 블로그의 인기 게시물

리눅스 한글 입력기 (Wayland 편)

원문 보기: https://dawoum.duckdns.org/wiki/한글 입력기/On_Wayland 최근 소프트웨어들의 버전 업그레이드로 인해, X11에서도 님프 입력기에서 문제들이 발생하고 있습니다. 따라서 이제는 X11이든, Wayland이든 kime을 사용하는 것이 바람직해 보입니다!! 리눅스 생태계에서 X11에서 Wayland로의 전환은 여러 가지 새로운 장점과 단점을 만들어 냅니다. 일반 사용자들은 이런 전환이 가진 장점에 열광하기도 하지만 기존에 작동하는 메커니즘이 작동하지 않을 때 더욱 불만을 표출합니다. 리눅스에서 가장 큰 문제점은 한글 입력에 있습니다. 그러나, 이 문제는 거의 한국 사람들에 국한된 문제입니다. 물론, 중국과 일본도 비슷한 처지에 있어서 CJK로 묶어서 얘기가 되지만, 한글은 다른 두 언어에 비해 더 고려할 사항이 있어서 한글 입력기 개발에 어려움이 더해진다고 알려져 있습니다. 이런 상황 아래에서, kime과 nimf는 최근에 한국에서 개발된 두 개의 한글 입력기입니다. 먼저, 개인적인 경험을 기반으로 결론부터 얘기하자면, X11에서는 nimf를 추천합니다. Wayland에서는 kime을 추천합니다. 이유는 간단하게도, X11에서는 nimf가 더 많은 프로그램에서 올바르게 동작했지만, Wayland에서는 X11에서 잘 입력되던 프로그램에서 입력이 되지 않거나 잘못 입력되는 경우가 발생합니다. 반면에 kime은 Wayland에서 nimf가 입력하지 못하는 프로그램에서 입력이 되거나 잘못 입력되던 것이 제대로 입력되는 경우가 있기 때문입니다. 예를 들어, 그놈 Wayland에서 적어도 아래의 현상이 있습니다: gnome-calendar : nimf 입력기 전환 안됨. kime 정상 작동. nimf 이 문제는 gooroom에서 제공되는 gtk4 패치를 이용해 보십시오. kakaotalk (bottles: wine) : nimf 마지막 점을 찍으면 마지막 글자 앞에 찍힘. kime 정상 작동. alac...

KeePassXC

원문 보기: https://dawoum.duckdns.org/wiki/KeePassXC Original article: w:KeePassXC KeePassXC 는 자유와 오픈-소스 암호 관리 기 입니다. 그것은 KeePassX (그 자체로 KeePass 의 크로스-플랫폼 포트)의 커뮤니티 포크로 시작되었습니다. [2] [3] 그것은 Qt5 라이브러리 를 사용하여 구축되어, Linux , Windows , macOS , 및 BSD 에서 실행될 수 있는 다중-플랫폼 응용 프로그램입니다. [4] [5] [6] KeePassXC는 기본적으로 KeePass 2.x (.kdbx) 암호 데이터베이스 형식을 사용합니다. [7]   그것은 역시 버전 2 및 이전 KeePass 1 (.kdb) 데이터베이스를 가져올 수 있습니다 (그리고 변환할 수 있습니다). KeePassXC는 추가 보안을 위해 키 파일과 YubiKey 챌린지-응답을 지원합니다. [2] Electronic Frontier Foundation 은 KeePassXC를 "사용하기 쉽고 강건한 소프트웨어"라고 언급합니다. [8]   KeePassXC 버전 2.7.4의 보안 검토는 2022년 말에 완료되었습니다. [9] 함께 제공되는 브라우저 확장 프로그램은 Firefox , [10] Tor-Browser, Google Chrome , [11] Vivaldi , Microsoft Edge , [12] 및 Chromium 에서 사용할 수 있습니다. [13] 확장은 데스크탑 응용 프로그램에서 브라우저 통합을 활성화함으로써 연결될 수 있습니다. [14] Installation 데비안 저장소에서 설치할 수 있습니다: sudo nala install keepassxc  

Btrfs 압축 수준 설정

원문 보기:  https://dawoum.duckdns.org/wiki/Btrfs 보통, 마운트 옵션에서 compress=zstd를 사용할 경우에 압축 레벨 3를 사용하고, HDD와 느린 플래시 스토리지에 적합하다고 알려져 있습니다. 좀 더 빠른 SATA SSD는 압축 레벨 2가 적당하고, NVME는 압축 레벨 1이 적당하다고 합니다: Yup, this is it. On slow storage higher compression levels tend to yield higher total storage throughput because you spend less time bound by slow storage bandwidth, instead you spend CPU time compressing/decompressing that data. The rick is to pick a compression level that yields greater total throughput than storage bandwidth can accommodate on its own. This approach works well on bandwidth limited storage like HDD pools, slow flash nand, flash nand attached to the system via slow USB, etc. On the flip side you don't want to constrain high bandwidth storage by sending data through a compression algorithm that limits throughput so lower compression levels (like zstd:1 on nvme storage, or zstd:2 on fast SATA SSDs) are usually safe choices. —  seaQueue, Btrfs compress level, https://...