Computer >> 컴퓨터 >  >> 문제 해결 >> Linux

리눅스 깨진 파이프 오류 해결 방법: APT-GET 설치 문제 완벽 가이드

아주 드문 경우이긴 하지만, 평소에는 안정적으로 잘 돌아가던 리눅스 시스템에서 어느 날 갑자기 패키지를 하나도 설치하지 못하게 되는 상황이 발생할 수 있습니다. 데비안(Debian)과 우분투(Ubuntu), 그리고 이들에서 파생된 배포판들은 apt-get 패키지 관리자를 사용합니다. 일반적으로 관리자(superuser) 권한만 있다면 apt-get install -f 명령으로 필요한 추가 패키지를 손쉽게 설치할 수 있습니다.

그러나 아주 드물게 “dpkg-deb: error”라는 메시지가 출력되면서 깨진 파이프(broken pipe) 오류가 발생했다는 내용이 함께 표시될 때가 있습니다.

‘깨진 파이프’라는 용어는 보통 명령줄에서 파이프(|) 문자를 잘못 사용했을 때 나타나는 오류를 가리킵니다. 특히 MS-DOS 환경에 익숙했던 사용자에게 익숙한 개념입니다. 하지만 이 경우에는 명령을 잘못 입력한 것이 아닐 가능성이 높습니다. apt-get 명령에 | 문자를 전혀 사용하지 않았는데도 이 오류가 발생한다면, 파일 시스템에 문제가 생겨 읽기 전용(read-only)으로 마운트되었을 가능성을 의심해야 합니다.

다소 사소해 보일 수 있지만, 본격적인 진단에 앞서 가장 먼저 확인할 것은 설치 명령을 올바르게 입력했는지 여부입니다. 명령에 문제가 없다면 다음 단계로 넘어가 파일 시스템 상태를 점검해야 합니다.

방법 1: 입력한 명령 확인하기

실제 원인은 아니겠지만, 최악의 상황을 가정하기 전에 명령을 정확히 입력했는지부터 확인하는 것이 중요합니다. 숙련된 프로그래머도 가끔 오타를 내곤 하며, 실수로 | 문자를 누르기도 쉽습니다. 키보드 위쪽 화살표로 이전 명령을 불러오지 말고 명령을 직접 다시 입력해 보세요.

파괴적인 동작이 없는 apt-get install -f 또는 apt-get update 명령을 실행해 보는 것이 좋습니다. 반복해서 실행했는데도 같은 오류가 계속된다면 시스템을 재부팅한 후 다시 시도해 보세요. 그래도 오류가 사라지지 않는다면 파일 시스템 문제를 의심해야 합니다. 이때의 깨진 파이프 오류 메시지는 더 큰 문제를 알려주는 증상에 불과할 수 있습니다.

방법 2: 파일 시스템 문제로 인한 깨진 파이프 오류 복구하기

명령을 다시 입력하는 것만으로 해결되지 않는다면, 터미널 출력에 “Read-only file system”(읽기 전용 파일 시스템)이라는 오류 메시지가 포함되어 있는지 주목하세요. 이 메시지가 보인다는 것은 어떤 이유로든 부팅 파티션이 읽기 전용 볼륨으로 마운트되었다는 뜻입니다. 대체로 파일 시스템에 일종의 손상이 발생했고, GNU/리눅스 운영체제가 데이터를 쓰는 것이 안전하지 않다고 판단한 것입니다. 이런 안전 장치 덕분에 일부 데이터가 손상되었더라도 리눅스는 설치된 시스템을 최대한 보호한 것입니다.

같은 유형의 오류 때문에 sudo 명령을 사용할 때 이상한 메시지를 받을 수도 있습니다. 이런 메시지는 “sudo: unable to open”(sudo: 열 수 없음)으로 시작하고 그 뒤에 특정 리소스의 이름이 붙습니다. 유닉스 계열 시스템에서는 모든 리소스가 파일로 저장되기 때문에, 읽기 전용으로 마운트된 파티션은 sudo의 정상 동작까지 막을 수 있습니다.

두 경우 중 하나에 해당한다면 시스템을 종료해야 합니다. 깨끗한 리눅스 설치 ISO가 담긴 USB 드라이브를 미리 만들어 두었다면 연결한 뒤, BIOS나 UEFI에서 요구하는 키를 눌러 외부 장치로 부팅하세요. 부팅 드라이브에 별도의 리눅스 파티션이 있다면 재시작할 때 GRUB을 통해 해당 파티션으로 진입하면 됩니다. 어느 쪽이든 손상된 파티션에서 직접 부팅하지 않으면서도 그 파티션에 접근할 수 있는 안정적인 작업 환경이 필요합니다.

아직 백업하지 않은 데이터가 있다면, 리눅스가 이 상태에서 장치 연결을 허용하는 한 이 기회에 다른 파티션이나 이동식 저장장치로 백업하세요. 다만 일반적으로 읽기 전용 파일 시스템에는 새 장치를 마운트할 수 없으므로, 백업을 수행하려면 라이브 USB 또는 DVD 환경으로 재부팅해야 할 것입니다.

이후에는 부팅 드라이브에 설치된 파일 시스템에 맞는 적절한 fsck 명령을 실행해 안정적인 상태로 되돌려야 합니다. 예를 들어 ext4 파일 시스템으로 포맷된 /dev/sda1 파티션이 손상되었다면, 라이브 USB나 DVD 환경의 루트(root) 터미널에서 다음 명령을 입력합니다.

fsck.ext4 -fv /dev/sda1

-fv 옵션은 상세한(verbose) 출력을 제공하고, 파일 시스템이 깨끗해 보여도 강제로 검사를 진행합니다. 디스크에 물리적인 문제가 의심된다면 -c 또는 -ck 옵션을 추가해 badblocks 프로그램으로 표면 검사를 수행할 수도 있습니다. 참고로 fsck.ext2와 fsck.ext3도 사용할 수 있으며, 세 명령 모두 내부적으로 e2fsck 프로그램을 호출하거나 심볼릭 링크인 경우가 많습니다.

검사를 마친 후 파티션이 안정적이라면 해당 파티션으로 다시 부팅하고, 터미널에서 다음 명령을 실행해 읽기·쓰기 권한을 복구하세요.

sudo mount -o rw,remount /

루트 권한이 있어야 /lost+found 디렉터리를 열람할 수 있는데, 반드시 확인해야 합니다. fsck.ext# 명령이 잃어버린 클러스터들을 이 디렉터리에 옮겨두었을 수 있기 때문입니다. GNU/리눅스 설치 환경으로 돌아온 후 파일이 사라졌다면 이곳에 있을 가능성이 높으며, 다만 이름이 변경되어 있을 수 있습니다. 가능하다면 터미널에서 file 명령을 사용해 각 파일의 유형을 확인해 보세요.

부팅에 사용할 라이브 USB나 DVD가 없다면, 다른 깨끗한 컴퓨터에서 리눅스 배포판 ISO를 내려받아 하나를 만들어야 합니다. 터미널 명령만 사용할 것이므로 배포판 전용 부팅 장치가 굳이 필요하지 않을 수도 있습니다. KNOPPIX처럼 이런 문제 해결을 위해 특별히 설계된 배포판도 있습니다. SD 카드나 microSD 카드 슬롯이 있는 넷북이나 노트북을 사용한다면, SDHC 또는 microSDHC 카드에 구운 ISO로 부팅할 수도 있습니다. 이런 슬롯을 갖춘 우분투 태블릿에서도 마찬가지입니다.


저자 소개

케빈 애로우즈(Kevin Arrows)

케빈 애로우즈는 10년 이상의 업계 경험을 지닌 베테랑 기술 전문가로, Microsoft Certified Technology Specialist(MCTS) 자격증을 보유하고 있습니다. 최신 기술 동향을 끊임없이 학습하는 데 큰 열정을 가지고 있으며, 소프트웨어 개발, 사이버 보안, 클라우드 컴퓨팅 등 폭넓은 분야의 기술 주제에 대해 다수의 글을 집필했습니다. 복잡한 기술 개념을 명확하고 간결하게 설명하는 능력으로 동료들의 인정을 받고 있으며, 기술 분야에서 폭넓게 존중받는 필자입니다.