내가 선호하는 Fedora Silverblue 설정
Source: Dev.to
왜 Fedora Silverblue인가?
- 불변 베이스 – 핵심 시스템이 깨질 수 없어 디버깅이 간단합니다.
- 원자적 업데이트 – 전체 시스템이 한 번에 업데이트됩니다.
- 계층적 접근 – 추가하는 모든 것이 베이스 위에 쌓이므로 잔여물(설정 파일 포함) 없이 처음부터 다시 시작할 수 있습니다.
- “깨지지 않음” – 어머니나 할머니도 실수로 시스템을 망가뜨릴 수 없습니다.
목차
- 투명 디스크 압축 활성화
- 보안 DNS 리졸버 사용
- BBR 활성화 (더 나은 혼잡 제어)
ptrace_scope = 1활성화- 기본 ZRAM 구성 변경
- 비자유 코덱을 위한 RPM Fusion 활성화
- 불필요한 Flatpak 앱 제거 및 저장소 비활성화
- 베이스 이미지에서 사용되지 않는 패키지 제거
- 시스템 자동 업데이트 활성화
투명 디스크 압축 활성화
Btrfs는 실시간 압축을 지원하지만, 기본적으로 비활성화되어 있습니다.
저는 zstd 레벨 1을 사용합니다 (CPU 사용량 최소, 적절한 압축 비율).
# 현재 커널 부팅 인자를 표시합니다 (중복 방지)
rpm-ostree kargs
# 압축 플래그를 추가합니다
sudo rpm-ostree kargs --append="rootflags=subvol=root,compress=zstd:1"
# 변경 사항을 적용하려면 재부팅합니다
sudo reboot
Note: 이 명령은 새로운 데이터만 압축합니다. 기존 데이터를 압축하려면:
sudo btrfs filesystem defragment -r -v -f -czstd /var
자세한 내용은 제 compression write‑up에서 확인하세요.
보안 DNS 리졸버 사용
나는 악성코드 차단 기능이 있는 Cloudflare DNS를 선호합니다.
| IPv4 | IPv6 |
|---|---|
1.1.1.21.0.0.2 | 2606:4700:4700::11122606:4700:4700::1002 |
단계
# systemd‑resolved 소켓 및 서비스 비활성화
sudo systemctl disable --now systemd-resolved-monitor.socket \
systemd-resolved-varlink.socket systemd-resolved
# 자동 생성된 resolv.conf 삭제
sudo rm -f /etc/resolv.conf
# NetworkManager에 dnsmasq 사용하도록 설정
sudo nano /etc/NetworkManager/NetworkManager.conf
[main] 섹션을 추가(또는 편집)합니다:
[main]
dns=dnsmasq
# NetworkManager 재시작
sudo systemctl restart NetworkManager
이제 NetworkManager는 /etc/NetworkManager/dnsmasq.d/(또는 GUI)를 통해 설정한 DNS 서버로 DNS 요청을 전달합니다.
자세한 내용은 내 DNS 가이드를 참고하세요.
BBR 활성화 – 향상된 네트워크 혼잡 제어
모듈이 이미 로드되었는지 확인
lsmod | grep bbr
아무것도 반환되지 않으면, 모듈을 로드합니다:
echo "tcp_bbr" | sudo tee /etc/modules-load.d/bbr.conf
sudo reboot
sysctl 설정
sudo nano /etc/sysctl.conf
다음 줄을 추가합니다:
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
# 즉시 적용 (또는 재부팅)
sudo sysctl -p
# 확인
sysctl net.ipv4.tcp_congestion_control
ptrace_scope = 1 활성화
Chromium 기반 브라우저에서 전체 샌드박싱을 위해 필요합니다 (Ubuntu, Arch, openSUSE에서는 기본적으로 활성화되어 있습니다).
cat /proc/sys/kernel/yama/ptrace_scope
출력이 0이면 활성화합니다:
# 기본 설정을 복사하고 편집
sudo cp /usr/lib/sysctl.d/10-default-yama-scope.conf /etc/sysctl.d/
sudo nano /etc/sysctl.d/10-default-yama-scope.conf
마지막 줄을 다음과 같이 변경합니다:
kernel.yama.ptrace_scope = 1
sudo sysctl -p /etc/sysctl.d/10-default-yama-scope.conf
sudo reboot
자세한 배경은 제 ptrace_scope write‑up 를 참고하세요.
기본 ZRAM 구성 변경
Fedora는 ZRAM을 기본으로 제공하지만, 기본 크기는 보수적으로 설정되어 있습니다. 저는 이를 RAM × 1.5 로 설정하고 높은 스와프 우선순위를 부여했습니다.
# 재정의 규칙을 위한 디렉터리 생성
sudo mkdir -p /etc/systemd/zram-generator.conf.d
# 사용자 정의 설정 파일 만들기
sudo nano /etc/systemd/zram-generator.conf.d/zram-generator.conf
붙여넣기:
[zram0]
zram-size = ram * 1.5
compression-algorithm = zstd
swap-priority = 100
메모리 압박에 대한 추가 sysctl 튜닝
sudo nano /etc/sysctl.conf
다음 항목을 추가:
vm.page-cluster = 0
vm.swappiness = 180
vm.watermark_boost_factor = 0
vm.watermark_scale_factor = 125
sudo sysctl -p
sudo reboot
이 값들은 Pop!_OS의 “RAM 내 압축 스와프” 최적화를 참고한 것입니다.
비무료 코덱을 위한 RPM Fusion 활성화
많은 미디어 파일(예: MP3, H.264)은 RPM Fusion의 코덱이 필요합니다.
# Free repository
sudo rpm-ostree install \
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
# Non‑free repository (contains proprietary codecs)
sudo rpm-ostree install \
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
재부팅 후 ffmpeg, gstreamer1-plugin-openh264 등과 같은 패키지를 설치할 수 있습니다.
원치 않는 Flatpak 앱 제거 및 저장소 비활성화
대부분의 소프트웨어는 기본 RPM 패키지를 선호합니다.
# List installed Flatpaks
flatpak list
# Remove each unwanted app, e.g.
flatpak uninstall org.gnome.Todo
# Disable the Flathub remote (if you don’t want any Flatpaks)
flatpak remote-delete flathub
베이스 이미지에서 사용되지 않는 패키지 제거
Fedora Silverblue는 꽤 최소화된 베이스를 제공하지만, 필요 없는 부분은 여전히 정리할 수 있습니다.
# Example: remove the default GNOME games
rpm-ostree override remove gnome-2048 gnome-robots gnome-taquin
패키지 이름을 필요 없다고 생각하는 것으로 교체하십시오.
시스템 자동 업데이트 활성화
Silverblue는 이미 systemd.timer를 통해 자동 업데이트를 지원합니다. 이를 활성화하려면:
sudo systemctl enable --now rpm-ostreed-automatic.timer
상태를 확인하려면 다음을 실행하세요:
systemctl status rpm-ostreed-automatic.timer
Closing Thoughts
Fedora Silverblue의 불변 설계는 나에게 견고한 기반을 제공합니다. 압축, DNS, 네트워킹, 메모리 처리 및 코덱 지원을 조정함으로써 우리 할머니도 부수지 못할 빠르고 안전하며 미디어 준비가 된 워크스테이션을 얻었습니다.
위의 스니펫을 자유롭게 복사하고, 하드웨어에 맞게 조정하여 불변 OS의 단순함을 즐기세요!
모든 명령은 Fedora Silverblue 38 (2025년 12월 기준)에서 테스트되었습니다.
시스템에서 RPM Fusion
OSTree 시스템에 대한 공식 RPM Fusion 문서를 여기에서 참조하십시오.
GNOME 소프트웨어를 통한 앱 설치
GNOME Software GUI를 통해 앱을 설치할 수 있습니다(위 스크린샷을 참고하세요). 필요하다면 Flathub에서 이 앱들을 다시 설치할 수 있습니다.
Note: Fedora의 Flatpak 구현은 Fedora의 기본 RPM 패키지와 동일한 독점 코덱 제한을 가지고 있습니다. 필요하지 않다면 추가적인 이점이 없으므로 제거할 수 있습니다.
기본 불변 이미지에서 패키지 제거
베이스 이미지에 포함된 애플리케이션(예: Firefox)을 제거하려면 다음을 실행합니다:
sudo rpm-ostree override remove firefox firefox-langpacks
그런 다음 시스템을 재부팅합니다.
이미지 상태를 확인하려면 다음을 사용합니다:
rpm-ostree status
이 명령은 동일한 이미지를 사용하는 다른 시스템과의 대부분의 문제나 기능 동등성 차이를 식별하는 데 도움이 됩니다.
시스템 레이어에 패키지 추가
추가 패키지를 레이어링하려면 rpm-ostree install을 사용합니다. 예를 들어 distrobox를 설치하려면:
sudo rpm-ostree install distrobox
필요할 때만 이 방법으로 패키지를 설치하십시오.
자동 소프트웨어 업데이트
GNOME Software에서 “자동 소프트웨어 업데이트”를 활성화해도 시스템이 자동으로 업데이트되지 않으며, 공식 문서에도 자동 업데이트에 대한 언급이 없습니다.
자동 업데이트 활성화 (stage 정책)
-
/etc/rpm-ostreed.conf파일을 편집합니다:sudo nano /etc/rpm-ostreed.conf다음과 같이 (또는 추가하여) 라인을 변경합니다:
AutomaticUpdatePolicy=stage -
데몬을 다시 로드합니다:
sudo rpm-ostree reload -
타이머를 활성화하고 시작합니다:
sudo systemctl enable rpm-ostreed-automatic.timer --now -
상태를 확인합니다:
rpm-ostree status다음과 같은 출력이 나타나야 합니다:
AutomaticUpdates: stage; rpm-ostreed-automatic.timer: last run 3h 4min ago
표지 사진: Unsplash의 Alexandru Acea