실수로 "/ usr / share"폴더를 삭제했습니다


16

시스템이 시작되지 않습니다. rm - R실수 로 사용 했습니까? 시스템을 어떻게 복구 할 수 있습니까?


/usr/share폴더 를 제거 /usr/share/usr/share
했습니까?

1
@PRATAP이 제안한 내용은 다시 로그인 할 수 있지만 많은 사용자 프로그램이 응용 프로그램 데이터를 거기에 저장하므로 '라이브'(설치 미디어) 시스템에서 사용하는 프로그램 만 최상으로 수정합니다. 그런 다음 install --reinstall다른 프로그램 을 사용해야합니다. 또는 '다른 것'을 사용하여 다시 설치하고 형식이 없으며 설치된 앱을 기록하고 시스템 디렉토리를 지우고 설치 한 다음 추가 프로그램을 다시 설치하십시오 (우분투 저장소의 경우). 그러나이 옵션은 어쨌든 폴 백이 될 수 있습니다. 먼저 스스로 수정하는 방법에 대해 더 많이 배우게 될 것입니다. 항상 백업을 복원하고 있습니다.
guiverc

/ usr / share에 rm -R 만있는-> NOTHING이 삭제됩니다. 컨텐츠는 루트가 소유하므로 일반 사용자는 삭제할 수 없습니다
Rinzwind

@Rinzwind 그렇다면 그렇다면 왜 시스템이로드되지 않습니까? 루트를 수정하려면 어떻게해야합니까?
Mouvre

아마 sudo rm -R했습니까? n0rbert가 게시 한 답변은 나에게 잘 어울립니다. 갈 길입니다
Rinzwind

답변:


48

에 파일이있는 모든 응용 프로그램을 다시 설치해야합니다 /usr/share.

  1. 에서 부팅 시스템 복구 모드루트 프롬프트 .

  2. 를 사용하여 rootfs를 읽기 / 쓰기 모드로 다시 마운트하십시오 mount -o rw,remount /.

  3. 이더넷 인터페이스를 올리고 DHCP 서버에서 IP 주소를 얻습니다 dhclient enp0s3( ip a또는 올바른 인터페이스 이름을 확인하십시오 ifconfig -a).

  4. 다음으로 DNS 서버 지정

    rm /etc/resolv.conf
    echo "nameserver 192.168.1.1" > /etc/resolv.conf
    

    ( 192.168.1.1귀하의 게이트웨이 / 라우터로 변경 )

  5. 파일 dpkg이 누락 되어 패키지 를 수정해야 /usr/share/dpkg/cputable합니다 (그렇지 않으면 "E: error reading the cpu table"apt / apt-get 명령에서 직면하게 됩니다)

    wget http://mirrors.kernel.org/ubuntu/pool/main/d/dpkg/dpkg_1.19.0.5ubuntu2.1_amd64.deb
    dpkg -i dpkg_1.19.0.5ubuntu2.1_amd64.deb
    

    또는 캐시에서 설치 :

    dpkg -i /var/cache/apt/archives/dpkg_*.deb
    
  6. 패키지 캐시 업데이트 :

    apt-get update
    
  7. 필수 구성 요소 재설치

    apt-get install --reinstall debconf linux-base
    mkdir /usr/share/python
    apt-get install --reinstall python2.7-minimal python3-minimal
    
  8. 아래에 하나의 라이너를 사용하십시오.

    apt-get install --reinstall $(dpkg -S /usr/share/ | sed 's/,//g' | sed 's/: \/usr\/share//g')
    

    위 :

    • dpkg -S /usr/share/ 쉼표로 구분 된 패키지 목록을 보여줍니다.
    • sed 's/,//g' -쉼표를 제거합니다
    • sed 's/: \/usr\/share//g'- : /usr/share결국 제거

    이 부분은 일부 패키지에 대한 메시지와 함께 실패 할 수 있습니다. 예를 들어 내 VM에서에 문제가 있었 bsdmainutils으므로 다음과 같이 다시 설치했습니다.

    dpkg -i /var/cache/apt/archives/bsdmainutils_*.deb
    

    그런 다음 위의 하나의 라이너를 다시 장착하십시오.

  9. 깨진 패키지를 수정

    dpkg --configure -a
    apt-get install -f
    
  10. 마지막으로 /etc/resolv.conf링크를 수정

    rm /etc/resolv.conf
    ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
    
  11. 재부팅하십시오.

참고 : 실행하는 동안 생성 된 고정 시스템이 문제가 표시되지 않습니다 sudo apt-get checksudo debsums --all --changed.


이 명령은 라이브 세션에서 사용해야합니까?
PRATAP

복구 모드에서 @PRATAP이면 충분합니다.
N0rbert

그래, 좋아 ..하지만 삭제 한 후에도 /usr/share정상적으로 작동 하지만 그럽 메뉴가 표시됩니까? 나는 그것을 삭제하고 내 실용적인 PC에서 볼 수 있다고 생각합니다 .. 좋은 답변 .. 감사합니다 ..
PRATAP

1
방금 VM에서 이것을 테스트했습니다. 거의 작동하는 솔루션입니다.
N0rbert

1
@ N0rbert 도움 주셔서 감사합니다, 정말 작동합니다!
Mouvre

2

짧은 답변 : 이전 답변에서 제안한대로 앱을 다시 설치할 수 없으며 다시 설치해야합니다.

그러나 그 전에 다른 컴퓨터에 드라이브를 마운트하고 ext3 / ext4에 사용할 수있는 삭제 취소 유틸리티를 테스트했습니다. Google에서 빠른 검색은 다음 중 하나를 가리 킵니다.

extundelete : http://extundelete.sourceforge.net/

easeus : https://www.easeus.com/resource/drive/ext3.htm

테스트 디스크 : https://www.cgsecurity.org/wiki/TestDisk

안내 방법 : http://translatedby.com/you/howto-recover-deleted-files-on-an-ext3-file-system/original/

기타


나는 testdelete한 번 경험했기 때문에 제안한다 : p
αғsнιη
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.