Случайно удалил папку «/ usr / share»

16

Система не запускается. Сделал это с помощью rm - Rслучайно. Как я могу восстановить систему?

Mouvre
источник
Вы уверены, что удалили /usr/shareпапку .. попробуйте .. войдите в систему с сеансом Live .. скопируйте и вставьте /usr/shareпапку из сеанса Live в корневые разделы/usr/share
YuganTej,
1
То, что предложил @PRATAP, может получить его, чтобы вы могли снова войти в систему, но многие пользовательские программы хранят там данные приложений, так что в лучшем случае будут исправлены только те программы, которые используются вашей «живой» (установкой носителя) системой. Вы тогда должны будете к install --reinstallдругим программам; или вы можете просто переустановить, используя «что-то другое», без формата, и он примет к сведению ваши установленные приложения, сотрет системные каталоги, затем установит, а затем переустановит дополнительные программы (если в репозиториях Ubuntu); но этот вариант в любом случае может быть запасным вариантом, так как вы, вероятно, узнаете больше, пытаясь исправить его самостоятельно. Там всегда восстановление ваших резервных копий.
Guiverc
-> только с помощью rm -R в / usr / share НИЧЕГО не удаляется. Содержимое принадлежит пользователю root, поэтому обычный пользователь не может его удалить
Rinzwind,
@Rinzwind И если так, почему система не загружается? Как я могу получить рут, чтобы это исправить?
Mouvre
ты возможно сделал sudo rm -R? Ответ n0rbert выглядит хорошо для меня. Это путь
Rinzwind

Ответы:

48

Вам необходимо переустановить все приложения, в которых есть файлы /usr/share.

  1. Загрузите систему из режима восстановления с приглашением root .

  2. Переустановите rootfs в режим чтения-записи с помощью mount -o rw,remount /.

  3. Поднимите интерфейс Ethernet и получите IP-адрес от сервера DHCP: 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в конце

    Эта часть может не работать с сообщениями о некоторых пакетах. Например, на моей виртуальной машине у меня были проблемы 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 checkили sudo debsums --all --changed.

N0rbert
источник
эта команда будет использоваться из живого сеанса?
YuganTej
@ PRATAP из режима восстановления достаточно.
Nrrbert
Хорошо, это хорошо .. но даже после удаления /usr/shareбудет ли работать grub нормально и показывать меню grub? Я думаю, что я должен удалить его и увидеть в моем практическом ответе. Спасибо. ..
YuganTej
1
Я только что проверил это на ВМ. Это почти рабочий раствор.
Nrrbert
1
@ N0rbert Спасибо за помощь, это действительно работает!
Mouvre
2

Краткий ответ: вы не можете и должны переустанавливать приложения, как было предложено в предыдущем ответе.

Однако перед этим я бы подключил диск к другому компьютеру и протестировал утилиты, которые доступны для ext3 / ext4. Быстрый поиск в Google указывает на следующие:

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

Мольберт: https://www.easeus.com/resource/drive/ext3.htm

TestDisk: https://www.cgsecurity.org/wiki/TestDisk

Как руководить: http://translatedby.com/you/howto-recover-deleted-files-on-an-ext3-file-system/original/

и т.п.

Хосе Мануэль Гомес Альварес
источник
Я предлагаю, testdeleteпотому что я испытал один раз: р
αғsнιη