В работающей системе Ubuntu 16.04 были выполнены следующие команды:
$ wget https://ftp.gnu.org/gnu/libc/glibc-2.26.tar.gz
$ tar -xvzf glibc-2.26.tar.gz
$ mkdir build_gcc && cd build_gcc
$ ../glibc-2.26/configure --prefix=/usr
$ make
$ sudo checkinstall
При установке вылезли ошибки:
Makefile:106: recipe for target 'install-symbolic-link' failed
После этого не удалось запустить ни одну команду, что привело к ошибке сегментации.
Очевидно, что glibc
был поврежден/переписан плохими двоичными файлами. Теперь пытаемся восстановить систему, загрузившись с живого флеша Ubuntu и пытаясь переустановить libc6
. Эти попытки были предприняты:
Понизьте версию libc6 и обновите снова:
$ sudo apt-get -o Dir=<partition_path> install libc6=2.23-0ubuntu3 $ sudo apt-get -o Dir=<partition_path> install libc6
Это не помогло, так как попытка chroot в раздел приводит к segfault:
$ chroot <partition_path>
Используйте
apt-get -o RootDir
:$ sudo apt-get -o RootDir=<partition_path> install libc6=2.23-0ubuntu3 … Chrooting into <partition_path> E: Sub-process /usr/sbin/dpkg-preconfigure —apt || true received a segmentation fault E: Failure running script /usr/sbin/dpkg-preconfigure —apt || true
Как видно, он также не удался из-за chroot в поврежденную среду.
Как следует подойти к восстановлению системы?