Как восстановить /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?

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

решение1

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

Чтобы узнать, что содержит пакет /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

Это должно вывести (в вашем случае):

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

решение2

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

Загрузите ядро ​​в /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папку, или перезагрузка очистит ее:

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

Связанный контент