Как восстановить /lib/modules/4.4.0-116-generic/kernel/drivers/usb/serial/usbserial.ko?

Я случайно перезаписал /lib/modules/4.4.0-116-generic/kernel/drivers/usb/serial/usbserial.ko на Ubuntu 14.04. Как я могу вернуть это?

0
задан 23 March 2018 в 05:38

4 ответа

Так как это не похоже на то, что установка помогает, я думаю, вы могли бы попытаться вручную загрузить ядро, извлечь файлы, а затем скопировать файл вручную.

Загрузите ядро ​​в каталог /tmp :

cd /tmp apt download linux-image-extra-4.4.0-116-generic

Затем извлеките файлы из загруженного файла .deb:

ar -x linux-image-extra-4.4.0-116-generic_4.4.0-116.140_amd64.deb

Теперь извлеките содержимое data.tar.gz:

tar xvf data.tar.gz

Теперь вы можете копировать недостающий файл обратно в свою папку.

sudo cp /tmp/lib/modules/4.4.0-116-generic/kernel/drivers/usb/serial/usbserial.ko /lib/modules/4.4.0-116-generic/kernel/drivers/usb/serial/

Спасибо @Olorin за классную команду из одной строки после загрузки ядра файл dpkg-deb, чтобы извлечь один файл и поместить его в папку назначения:

dpkg-deb --fsys-tarfile linux-image-extra-4.4.0-116-generic_4.4.0-116.140_amd64.deb | sudo tar xv ./lib/modules/4.4.0-116-generic/kernel/drivers/usb/serial/usbserial.ko -C /

Затем очистите папку /tmp или перезагрузите ее:

Надеюсь, это поможет!

2
ответ дан 17 July 2018 в 18:16

Просто переустановите пакет, содержащий файл.

Чтобы найти какой пакет содержит /lib/modules/4.4.0-116-generic/kernel/drivers/usb/serial/usbserial.ko, запустите:

dpkg -S /lib/modules/4.4.0-116-generic/kernel/drivers/usb/serial/usbserial.ko

Это должно выводить (в вашем случае): [ ! d2] linux-image-4.4.0-116-generic: /lib/modules/4.4.0-116-generic/kernel/drivers/usb/serial/usbserial.ko

Просто переустановите пакет:

sudo apt-get install --reinstall linux-image-4.4.0-116-generic

Если это не исправить:

sudo apt-get purge linux-image-4.4.0-116-generic sudo apt-get install linux-image-4.4.0-116-generic
1
ответ дан 17 July 2018 в 18:16

Так как это не похоже на то, что установка помогает, я думаю, вы могли бы попытаться вручную загрузить ядро, извлечь файлы, а затем скопировать файл вручную.

Загрузите ядро ​​в каталог /tmp :

cd /tmp apt download linux-image-extra-4.4.0-116-generic

Затем извлеките файлы из загруженного файла .deb:

ar -x linux-image-extra-4.4.0-116-generic_4.4.0-116.140_amd64.deb

Теперь извлеките содержимое data.tar.gz:

tar xvf data.tar.gz

Теперь вы можете копировать недостающий файл обратно в свою папку.

sudo cp /tmp/lib/modules/4.4.0-116-generic/kernel/drivers/usb/serial/usbserial.ko /lib/modules/4.4.0-116-generic/kernel/drivers/usb/serial/

Спасибо @Olorin за классную команду из одной строки после загрузки ядра файл dpkg-deb, чтобы извлечь один файл и поместить его в папку назначения:

dpkg-deb --fsys-tarfile linux-image-extra-4.4.0-116-generic_4.4.0-116.140_amd64.deb | sudo tar xv ./lib/modules/4.4.0-116-generic/kernel/drivers/usb/serial/usbserial.ko -C /

Затем очистите папку /tmp или перезагрузите ее:

Надеюсь, это поможет!

2
ответ дан 23 July 2018 в 19:05
  • 1
    Вы можете использовать dpkg-deb вместо ar: dpkg-deb --fsys-tarfile linux-image-extra-4.4.0-116-generic_4.4.0-116.140_amd64.deb | tar xv ... фактически вся операция может быть выполнена в одном конвейере: dpkg-deb --fsys-tarfile linux-image-extra-4.4.0-116-generic_4.4.0-116.140_amd64.deb | sudo tar xv lib/modules/4.4.0-116-generic/kernel/drivers/usb/serial/usbserial.ko -C / – Olorin 23 March 2018 в 07:49
  • 2
    @Olorin Я это понимаю. Но я проверяю все команды, прежде чем помещать их в свои ответы. К сожалению, это не сработает. Даже когда я пытаюсь извлечь только файл из файла tar.bz2, он сообщает мне, что файл не найден, но когда я извлекаю все его содержимое, файл есть, и я могу его скопировать. – Terrance 23 March 2018 в 08:14
  • 3
    @Olorin На самом деле команда должна быть dpkg-deb --fsys-tarfile linux-image-extra-4.4.0-116-generic_4.4.0-116.140_amd64.deb | sudo tar xv ./lib/modules/4.4.0-116-generic/kernel/drivers/usb/serial/usbserial.ko -C /. Если вы укажете содержимое файла bz2, оно отобразит их с ./ перед именем. Затем он извлекает штраф. Тогда я добавлю это к своему ответу. – Terrance 23 March 2018 в 08:26
  • 4
    О да. Другой экземпляр xkcd.com/1168 – Olorin 23 March 2018 в 08:28

Просто переустановите пакет, содержащий файл.

Чтобы найти какой пакет содержит /lib/modules/4.4.0-116-generic/kernel/drivers/usb/serial/usbserial.ko, запустите:

dpkg -S /lib/modules/4.4.0-116-generic/kernel/drivers/usb/serial/usbserial.ko

Это должно выводить (в вашем случае): [ ! d2] linux-image-4.4.0-116-generic: /lib/modules/4.4.0-116-generic/kernel/drivers/usb/serial/usbserial.ko

Просто переустановите пакет:

sudo apt-get install --reinstall linux-image-4.4.0-116-generic

Если это не исправить:

sudo apt-get purge linux-image-4.4.0-116-generic sudo apt-get install linux-image-4.4.0-116-generic
1
ответ дан 23 July 2018 в 19:05
  • 1
    Спасибо, я запустил команду dpkg, но путь ../usbserial.ko не существует. Может, что-то еще каким-то образом установило его? – Elijah Lynn 23 March 2018 в 06:01
  • 2
    О, я вручную ввел путь, и он вернул linux-image-extra-4.4.0-116-generic: /lib/modules/4.4.0-116-generic/kernel/drivers/usb/serial/usbserial.ko, как вы сказали. Однако команда -reinstall завершена успешно, но файл еще не существует. Я удалил файл после того, как перезаписал его неправильно. – Elijah Lynn 23 March 2018 в 06:03
  • 3
    @ElijahLynn переустановка linux-image-extra-4.4.0-116-generic не вернула файл? – Olorin 23 March 2018 в 06:13
  • 4
    Правильно, это не принесло файла. – Elijah Lynn 23 March 2018 в 06:14
  • 5
    Как насчет очистки и переустановки? как я добавил к моему ответу – ubashu 23 March 2018 в 08:26

Другие вопросы по тегам:

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