MRTG를 설치하는 동안 실수로 삭제 /usr/lib/*.so.*
하고/usr/lib/*.so
이제 시스템을 부팅 할 수 없습니다. 시작 화면에서 멈추고 PAGEDOWN 버튼을 누르면로드에 실패한 몇 가지가 있음을 알 수 있습니다.
그러나 DHCP와 WebMin이 실행 중이며 Webmin에서 컵이로드되지 않고 있음을 알리는 시스템 로그를 볼 libpipeline.so.1
수 있습니다.
내 컴퓨터가 11.04를 실행 중입니다
MRTG를 설치하는 동안 실수로 삭제 /usr/lib/*.so.*
하고/usr/lib/*.so
이제 시스템을 부팅 할 수 없습니다. 시작 화면에서 멈추고 PAGEDOWN 버튼을 누르면로드에 실패한 몇 가지가 있음을 알 수 있습니다.
그러나 DHCP와 WebMin이 실행 중이며 Webmin에서 컵이로드되지 않고 있음을 알리는 시스템 로그를 볼 libpipeline.so.1
수 있습니다.
내 컴퓨터가 11.04를 실행 중입니다
답변:
을 삭제 /usr/lib/*
하고 삭제 하지 않았으므로 /lib/*
복구 할 수 있습니다. 시스템 복구에 필요한 모든 프로그램은에서 라이브러리 만 사용한다고 생각합니다 /usr/lib
.
텍스트 로그인 프롬프트로 부팅하십시오. 일반 부팅 login:
에서 텍스트 모드 로 프롬프트가 표시 되지 않으면 최소한의 서비스로 부팅하십시오. Shift컴퓨터가 Grub 프롬프트를 표시하기 시작할 때 길게 누릅니다 . BIOS가 키보드를 초기화 한 후 Grub을로드하기 전에 키를 눌러야합니다. Grub이로드되기 전에 일부 시스템에서는 시간이 약간만 남아 있고 몇 번의 시도가 필요할 수 있습니다. Grub 프롬프트에서을 눌러 Down단일 사용자 모드 부팅 항목을 강조 표시하고 부팅합니다.
명령 행 apt-get --reinstall install PACKAGE1 PACKAGE2 …
이 있으면에 파일이있는 패키지를 다시 설치하십시오 /usr/lib
. 이 셸 스 니펫을 실행하여 다시 설치할 패키지 이름 목록을 얻을 수 있습니다.
egrep -l '/usr/lib/[^/]*\.so\.' /var/lib/dpkg/info/a*.list |
sed -e 's!^/var/lib/dpkg/info/!!' -e 's!\.list$!!'
일부 패키지 설치 스크립트에는 다른 패키지의 라이브러리가 있어야하므로 특정 순서로 재설치를 실행해야 할 수도 있습니다. 패키지의 설치 스크립트가 특정 프로그램을 사용하려고하면이 프로그램에 필요한 라이브러리를 찾을 수 있습니다 ldd
. 예를 들어, 이것은 파이썬에 다시 설치해야하는 세 개의 라이브러리가 없음을 나타냅니다.
$ ldd /usr/bin/python | grep 'not found'
libssl.so.0.9.8 => not found
libcrypto.so.0.9.8 => not found
libz.so.1 => not found
dpkg -S /usr/lib/libz.so.1
이 파일의 출처 등이 밝혀 zlib1g
졌습니다.
apt-get
패키지를 다운로드 할 수없는 경우 먼저 라이브 CD에서 몇 가지 주요 패키지를 다운로드하십시오. zlib1g
그리고 libssl0.9.8
당신이 초기에 필요로 매우 가능성이 두 패키지입니다.
/usr/lib
솔직히 시작 핵심 소프트웨어를 제외한 모든 것의 공유 라이브러리를 포함했습니다 ( /lib/
패키지 관리자를 통해 설치하지 않은 것들 (보통 /usr/local/lib
)).
짧은 버전, 당신은 당신의 시스템을 호스로 막았습니다.
자, 여전히 당신 /var/cache/apt/archives
이 물건으로 가득 찬, 약간의 신중한 마술사가 있다면 상황을 구할 수 있습니다.
다음 패키지에 대한 아카이브가 여전히 포함되어 있는지 확인하십시오.
libxapian
libsigc++
apt
libcwidget
libsqlite
libboost-iostreams
이러한 패키지에는 작동 /usr/lib
하는 데 aptitude
필요한 라이브러리가 포함되어 있습니다. 패키지를 찾을 수있는 경우 패키지를 사용 /var/cache/apt/archives
하여 수동으로 다시 설치할 수 있으며 모든 패키지가 dpkg -i <packagename
설치되면 적성을 실행할 수 있습니다.
그런 다음 명령 aptitude reinstall ~i
을 실행하면 이미 설치된 모든 패키지를 강제로 다시 설치하여 시스템을 복원해야합니다. 이 경우에 당신이 한 피해는 정말 대단하기 때문에 절대 보장 할 수 없습니다 ...
우분투 11.04 라이브 CD로 부팅하고 누락 된 파일을 다시 복사하려고합니다.
작업을 수행하기 전에 사용자 생성 데이터 파일의 백업이 올바른지 확인하십시오. 그렇지 않은 경우 라이브 CD를 부팅하여 HDD를 읽기 전용으로 마운트하고 최대한 빨리 백업합니다.
비슷한 작업을 수행했을 때 재부팅을 시도하기 전에 깨달을 수있었습니다. 이 시점에서 시스템은 여전히 대부분 작동합니다. 내 접근 방식은 동일한 버전의 OS로 가상 상자를 만들고 누락 된 파일을 복사하는 것입니다. ssh가 virtualbox 게스트에 액세스하도록 허용하면 기본 시스템의 터미널에서 rsync를 사용하여 누락 된 파일 및 링크 만 빨아 들일 수 있습니다. 필자의 경우 scp를 사용하여 수동으로 복사하는 것이 가장 쉽고 안전한 파일이 거의 없기 때문에 다음은 테스트되지 않은 것입니다!
sudo rsync -avu user@guestVB:/usr/lib /usr/lib
-a는 아카이브 모드입니다 (재귀 적, 심볼릭 링크 복사 및 타임 스탬프, 권한 등의 속성)
대상 복사가 최신 인 경우 -u를 건너 뜁니다.
-v는 장황하다