Не удается установить Kubuntu 12.04.3 с wubi [дубликаты]

Если ваша текущая система все еще имеет запущенную оболочку и доступ в Интернет, это можно сделать с помощью инструментов, существующих в других местах системы. Я предполагаю, что вы только удалили /bin. /bin, конечно, имеет самую удобную утилиту, которую вы могли бы использовать в такой ситуации (busybox), но без этого нам придется проявить немного творчества.


Поскольку у вас уже есть работающая оболочка, а поскольку sudo находится в /usr/bin, давайте возьмем себе работающую корневую оболочку, прежде чем наносить дальнейший ущерб. Но /bin/bash и большинство других оболочек исчезли! К счастью, в Linux все еще есть копия оболочки, которую вы используете. Итак:

sudo /proc/$/exe

Строго говоря, нам не нужна корневая оболочка для большей части следующего. Но все равно.

Теперь, dpkg все еще работает, по крайней мере, для определения, какие пакеты имеют файлы в /bin:

dpkg -S /bin

Мы можем использовать awk, чтобы обработать его и получить имена пакетов, и [ 1119] и apt-get для загрузки пакетов (все в /usr/bin). Если у вас есть временный каталог, который вы можете использовать, cd там, потому что ваш текущий каталог будет немного запутанным:

dpkg -S /bin | awk -F '[, :]' '{NF--}1' | xargs apt-get download

Теперь самая большая проблема у нас заключается в том, что /bin/tar отсутствует, и без него dpkg не может извлечь архивы. Мы можем получить две трети пути, потому что:

  1. .deb файлы на самом деле являются ar архивами (снова в /usr/bin):

    ar x tar_*.deb
    
    [ 1146]
  2. Состоит из двух .tar.* архивов, data и control:

    $ echo *.tar.*
    control.tar.gz data.tar.xz
    
  3. В то время как утилиты gzip находятся в /bin, [ 1132] находится в /usr/bin:

    unxz data.tar.xz
    

Теперь у нас есть файл data.tar без tar для извлечения tar из него.

Питон на помощь ! Вот где действительно требуется sudo:

$ sudo python -c 'import tarfile; tarfile.open("data.tar").extractall("/")'
$ echo /bin/*
/bin/tar

Теперь мы можем использовать dpkg для извлечения оставшихся файлов deb, чтобы получить достаточно полный /bin:

for i in *.deb; do dpkg-deb -x "$i" /; done

Однако, мы все равно должны сделать правильную установку файлов deb, чтобы символические ссылки и т. Д., Которые были бы созданы пакетами, были воссозданы:

sudo apt install --reinstall ./*.deb

Или:

sudo dpkg -i *.deb
sudo apt-get install -f

Примечания:

  1. Мы не можем использовать Python 2 для непосредственного извлечения файла data.tar.xz, поскольку Python 2 поддерживает только сжатие gzip и bzip2. Python 3, однако, поддерживает его, поэтому вы можете использовать Python 3 напрямую без unxz:

    sudo python3 -c 'import tarfile; tarfile.open("data.tar.xz").extractall("/")'
    
  2. После возвращения /bin/tar вам все равно нужно извлечь некоторые файлы deb. прежде чем вы сможете использовать apt-get: оболочки, coreutils и т. д. Проще просто извлечь их все и переустановить позже.

0
задан 15.04.2020, 20:41

1 ответ

Ваш wubi.exe не обновлен. Для 12.04.3 вам понадобится rev.279.

0
ответ дан 15.04.2020, 20:41
  • 1
    Вы могли включать, где получить обновленную версию? – hijarian 15.04.2020, 20:42

Теги

Похожие вопросы