손실된 파티션과 하드 디스크 데이터를 안전하게 복구하는 방법
TestDisk와 PhotoRec을 사용하여 손실된 파티션과 파일을 복구하는 방법을 알아보세요. 원본 드라이브를 보호하고 안전하게 스캔한 다음 복구된 데이터를 다른 디스크에 저장하세요.
데비안에서 스크립트를 사용하여 PipeWire 출력을 전환하는 가장 간단하고 안정적인 방법은 wpctlWirePlumber 명령줄 도구를 사용하는 것입니다. 원하는 두 개의 싱크 노드를 식별하고 현재 기본 싱크를 확인한 다음 wpctl set-default ID다른 싱크를 호출하면 됩니다. PipeWire 객체 ID는 장치 연결 해제, 재연결 또는 세션 재시작 시 변경될 수 있으므로 숫자 노드 ID를 하드코딩하는 것보다 이 방법이 더 좋습니다.
이 가이드에서는 두 장치(예: 노트북 스피커와 블루투스 헤드폰)를 전환하는 기능을 사용하며, 현재 데비안 13(Trixie)과 데비안 12(Bookworm) 모두와 호환되도록 로직을 구성했습니다. 2026년 10월 기준으로 데비안 패키지 페이지에는 데비안 13에서 WirePlumber 0.5.8, 데비안 12에서 0.4.13이 등록되어 있습니다. 최신 WirePlumber 릴리스에서는 추가적인 목록 표시 기능이 제공되지만, 여기서는 wpctl status -n, wpctl inspect, 및 wpctl set-default가 공통적으로 필요한 기능입니다.
PipeWire가 이미 데스크톱 오디오를 처리하고 있고 키보드 단축키, 런처, 셸 별칭 또는 핫키를 사용하여 두 출력 간에 전환하려는 경우 이 방법을 사용하십시오. 내장 아날로그 출력과 USB DAC, HDMI 모니터, Bluetooth 헤드셋 또는 . 의 Sinks 섹션 에 나타나는 다른 싱크에 잘 작동합니다 wpctl status.
모든 라우팅 문제에 적합한 도구는 아닙니다. wpctl set-default자동 연결이 필요한 스트림에 사용되는 기본 대상을 변경합니다. 이미 실행 중인 모든 애플리케이션이 기존 스트림을 즉시 마이그레이션한다는 보장은 없습니다. 일부 애플리케이션은 새 기본값을 자동으로 따르지만, 다른 애플리케이션은 스트림을 별도로 이동하거나 애플리케이션을 다시 시작해야 할 수 있습니다.
사용자 수준의 PipeWire 및 WirePlumber 세션이 정상적으로 작동하는지 확인하십시오. WirePlumber 공식 문서에서는 데몬을 `pip install .wireWire` 명령으로 확인하는 것을 권장합니다 systemctl --user status wireplumber. 또한 Debian 12 이상 버전에서는 PipeWire 오디오 스택을 완벽하게 구성할 때 메타패키지를 사용하는 것을 권장합니다 pipewire-audio.
systemctl --user status wireplumber
systemctl --user status pipewire pipewire-pulse
만약 wpctl해당 파일이 없다면, 관련 없는 믹서 유틸리티로 대체하려고 하지 말고 WirePlumber와 일반 PipeWire 오디오 구성 요소를 설치하십시오.
sudo apt update
sudo apt install pipewire-audio wireplumber
wpctl`.` 옵션 없이 실행하십시오 sudo. PipeWire와 WirePlumber는 일반적으로 데스크톱 사용자 세션에서 작동하므로 명령은 해당 사용자의 미디어 그래프에 연결되어야 합니다.
달리다:
wpctl status -n
이 -n옵션은 wpctl사람이 읽기 쉬운 설명 대신 객체 이름을 표시하도록 요청합니다. 오디오 → 싱크 에서 토글하려는 두 출력의 이름을 확인하세요. 기기에 따라 내장 싱크는 와 같이 표시 alsa_output.pci-0000_00_1f.3.analog-stereo되고 Bluetooth 싱크는 로 시작할 수 있습니다 bluez_output..
wpctl status -n: 숫자 ID를 스크립트에 복사하는 대신, 싱크(Sinks) 섹션에서 안정적인 이름 조각을 식별합니다.의도하는 출력에만 정확히 일치하는 고유한 프래그먼트를 선택하십시오. 내장 사운드 카드의 경우 전체 alsa_output...노드 이름이 일반적으로 적절한 선택입니다. 블루투스 장치의 경우, bluez_output.일반적으로 블루투스 오디오 싱크를 하나만 연결하는 경우에는 짧은 프래그먼트가 편리합니다. 여러 개의 블루투스 출력을 자주 연결하는 경우에는 의도하는 장치에 고유한 더 긴 프래그먼트를 사용하십시오.
전환 스크립트를 작성하기 전에 다음에서 표시되는 ID 중 하나를 확인하십시오 wpctl status -n.
wpctl inspect 45
45시스템의 현재 ID로 교체하십시오 . node.name및 와 같은 속성을 확인하십시오 media.class. 재생 출력의 경우 는 media.class오디오 싱크를 식별해야 합니다. 숫자 ID는 검사 및 즉시 set-default명령 실행에 유용하지만, 아래 스크립트는 실행될 때마다 새로운 ID를 생성합니다.
숫자 ID를 몰라도 WirePlumber에 현재 기본 싱크대가 무엇인지 물어볼 수도 있습니다.
wpctl inspect @DEFAULT_AUDIO_SINK@
이 특수 식별자는 @DEFAULT_AUDIO_SINK@WirePlumber에 의해 문서화되며 런타임 시 현재 기본 재생 노드로 해석됩니다.
필요한 경우 개인 실행 가능 디렉토리를 생성한 다음 스크립트를 엽니다.
mkdir -p ~/.local/bin
nano ~/.local/bin/toggle-audio-output
다음 코드를 붙여넣고, SINK_A와 를 SINK_B여러분의 wpctl status -n출력 결과에서 가져온 조각들로 바꾸세요:
#!/usr/bin/env bash
set -euo pipefail
# Replace these with distinctive fragments from `wpctl status -n`.
SINK_A="alsa_output.pci-0000_00_1f.3.analog-stereo"
SINK_B="bluez_output."
find_sink_id() {
local needle="$1"
wpctl status -n | awk -v n="$needle" '
/Sinks:/ { in_sinks=1; next }
/Sources:/ { in_sinks=0 }
in_sinks && index($0, n) {
for (i=1; i<=NF; i++) {
if ($i ~ /^[0-9]+\.$/) {
gsub(/\./, "", $i)
print $i
exit
}
}
}'
}
current_name="$(
wpctl inspect @DEFAULT_AUDIO_SINK@ |
awk -F'= ' '/node.name/ {
gsub(/"/, "", $2)
print $2
exit
}'
)"
if [[ "$current_name" == *"$SINK_A"* ]]; then
target_pattern="$SINK_B"
elif [[ "$current_name" == *"$SINK_B"* ]]; then
target_pattern="$SINK_A"
else
# If the current default is neither target, switch to A first.
target_pattern="$SINK_A"
fi
target_id="$(find_sink_id "$target_pattern")"
if [[ -z "$target_id" ]]; then
printf 'No available sink matched: %s\n' "$target_pattern" >&2
exit 1
fi
wpctl set-default "$target_id"
printf 'Default audio sink changed to ID %s\n' "$target_id"
wpctl set-default.PipeWire 객체 ID는 세션 객체이므로 ID를 45영구적인 장치 식별자로 취급하는 것은 불안정합니다. 따라서 스크립트는 대신 식별 가능한 노드 이름 조각을 저장하고, 현재 싱크 섹션을 구문 분석한 후, 전환 시점에만 숫자 ID를 추출합니다.
스크립트는 @DEFAULT_AUDIO_SINK@해당 이름을 요청합니다. 이렇게 하면 현재 선택된 싱크대를 판단할 때 node.name별표의 시각적 위치에 의존하지 않게 됩니다 . 그런 다음 해당 이름을 및 와 비교합니다 .wpctl statusSINK_ASINK_B
파일을 저장한 다음 실행하세요.
chmod +x ~/.local/bin/toggle-audio-output
~/.local/bin/toggle-audio-output
wpctl status -n
대상 싱크를 사용할 수 있는 경우 스크립트는 선택한 ID를 출력해야 합니다. 스크립트를 다시 실행하면 구성된 다른 싱크를 선택해야 합니다. 결과를 확인하려면 wpctl status -n또는 를 검사하십시오 @DEFAULT_AUDIO_SINK@.
wpctl status -n의도한 싱크가 기본값으로 설정되었는지 확인하십시오.WirePlumber 문서에서는 wpctl set-default ID싱크 또는 소스를 기본 대상으로 설정하는 방법을 설명합니다. 최신 WirePlumber에서는 이러한 사용자 선택이 기억되어 자동 우선순위 선택보다 우선 순위가 높습니다. 나중에 WirePlumber에서 자동 기본 선택으로 되돌리려면 다음을 사용하십시오.
wpctl clear-default
터미널 테스트가 안정적으로 작동하면 /home/YOUR_USER/.local/bin/toggle-audio-output데스크톱 키보드 단축키에 할당하십시오. 일부 단축키 실행기는 셸 약어를 확장하지 않으므로 절대 경로를 사용하십시오 ~. 정확한 단축키 UI는 데스크톱 환경에 따라 다르므로 가장 중요한 테스트는 일반 사용자 터미널에서 스크립트가 올바르게 작동하는지 확인하는 것입니다.
바로가기 아이콘이 실행되지만 wpctl연결할 수 없다는 오류가 발생하는 경우, 실행기가 예상되는 사용자 세션 환경을 제대로 상속받지 못했을 수 있습니다. 그래픽 세션 내 터미널에서 동일한 명령을 실행하여 확인한 다음, 데스크톱 환경의 바로가기 아이콘 실행 규칙을 검토하십시오. 스크립트 앞에 .을 붙여서 이 문제를 해결하지 마십시오 sudo.
대상 연결이 끊어졌거나, 노드 이름이 변경되었거나, 패턴이 너무 구체적일 수 있습니다. wpctl status -n다시 실행하고 해당 값을 업데이트하십시오 SINK_A. SINK_B블루투스의 경우 스크립트를 실행하기 전에 헤드셋이 연결되어 있고 오디오 싱크가 노출되었는지 확인하십시오.
이는 정상적인 현상입니다. 상위 문서에서는 set-default자동 연결이 필요한 새 스트림에 대한 대상 선택이라고 설명하고 있습니다. 특정 애플리케이션의 기존 스트림이 이전 싱크에 남아 있는 경우 재생을 중지했다가 다시 시작하거나 애플리케이션을 다시 실행하세요. 기존 스트림을 마이그레이션해야 하는 경우에는 마이그레이션이 보장된다고 가정하기보다는 별도의 라우팅 작업으로 처리하는 것이 좋습니다 set-default.
더 구체적으로 명시하십시오 SINK_B. 일반적인 패턴은 bluez_output.일치하는 블루투스 싱크가 하나만 있는 경우에만 적합합니다. 여러 무선 출력을 동시에 연결할 수 있는 경우에는 전체 노드 이름 또는 고유한 중간 부분을 사용하십시오.
확인하다:
systemctl --user status wireplumber
journalctl --user -u wireplumber
상위 문서에서는 systemctl --user --now enable wireplumber데몬이 설치되었지만 활성화되지 않은 경우를 권장합니다. 이미 구성된 Debian 데스크톱 환경에서 전체 오디오 스택을 반복적으로 재시작하기 전에 사용자 서비스가 중지된 이유를 조사하십시오.
| 데비안 릴리스 | 와이어플럼버 패키지 | 이 대본의 실질적인 의미 |
|---|---|---|
| 데비안 12 (북웜) | 표준 저장소의 0.4.13 버전 | 여기에 표시된 호환 가능한 워크플로를 사용 wpctl status -n하십시오 inspect.set-default |
| 데비안 13 (트릭시) | 표준 저장소의 0.5.8 버전 | 동일한 스크립트가 작동하며, 최신 WirePlumber는 CLI 및 JSON 기반 구성 동작이 확장되었습니다. |
WirePlumber 0.5 구성 예제를 이전 버전인 0.4 설치 환경에 그대로 복사하지 마십시오. WirePlumber 0.5는 구성 시스템이 변경되었습니다. 이 튜토리얼에서는 영구 정책 파일 대신 명령줄 작업을 사용하여 버전 간 충돌을 방지합니다.
systemctl --user status wireplumber세션 관리자가 실행 중임을 보여줍니다.wpctl status -nSinks 항목 아래에 의도된 출력을 모두 나열합니다.wpctl inspect @DEFAULT_AUDIO_SINK@유효한 현재 재생 노드를 반환합니다.명령어 의미론 및 현재 WirePlumber 동작에 대한 자세한 내용은 WirePlumber 공식 wpctl 설명서 와 WirePlumber 공식 시작 가이드를 참조하십시오 . Debian 관련 패키지 및 설정 정보는 Debian PipeWire 설명서 , Debian 12 WirePlumber 패키지 페이지 및 Debian 13 WirePlumber 패키지 페이지를 참조하십시오 .
TestDisk와 PhotoRec을 사용하여 손실된 파티션과 파일을 복구하는 방법을 알아보세요. 원본 드라이브를 보호하고 안전하게 스캔한 다음 복구된 데이터를 다른 디스크에 저장하세요.
웹캠이나 이미지 파일을 사용하여 CoBang으로 Linux에서 QR 코드를 스캔하세요. Flatpak 카메라 접근 관련 설치 옵션, 설정 단계 및 문제 해결 방법을 참조하세요.
Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하세요. 노출, 색상, 깜빡임 감소 및 기타 지원되는 제어 기능을 조정하고 호환되는 비디오 모드를 확인하세요.
Linux에 PhpStorm을 설치하려면 JetBrains Toolbox 또는 독립 실행형 tar.gz 아카이브를 사용하세요. Snap 및 Arch AUR 옵션도 제공됩니다. Java는 이미 포함되어 있습니다.
Cisco Packet Tracer 9.0.1 for Ubuntu 64비트 버전을 다운로드하고, APT를 사용하여 DEB 패키지를 설치한 다음, 터미널에서 라이선스에 동의하고 로그인하여 실습을 시작하십시오.
각 디스플레이마다 별도의 XFCE 4 패널을 생성하고, 두 번째 패널을 올바른 출력에 할당하고, 위치와 크기를 조정한 다음, 필요한 실행기와 상태 항목을 추가합니다.
GNOME Disks 또는 dd 명령어를 사용하여 Linux에서 CD-ROM ISO 파일을 생성합니다. 광학 드라이브를 식별하고, 복사 과정을 모니터링하고, 이미지 유효성을 검사하고, 손상된 디스크나 오디오 디스크에 다른 도구가 필요한 경우를 알 수 있습니다.
GIMP를 사용하여 Linux에서 사진 배경 제거하기: 피사체를 따라 그리고, 선택한 배경을 삭제하고, 투명도를 유지한 다음, 재사용 가능한 PNG 파일로 내보낼 수 있습니다.
FlightGear를 공식 사이트에서 무료로 다운로드하세요. Windows, macOS, Linux 패키지를 비교하고, 데이터 파일을 설치한 후 첫 비행을 시작하세요.
브라우저에서 Google Tasks를 열거나, Chrome 바로가기 또는 앱 스타일 실행을 추가하고, 캘린더 및 Gmail을 통해 날짜별 할 일을 관리하세요.