TL; DR це можна швидко виправити перезавантаженням . Тоді компакт-диск буде працювати, і гостьові доповнення будуть встановлені:
sudo reboot
"Найкраща" послідовність для оновлення ядра на VirtualBox з доповненнями:
apt-get update
apt-get upgrade (or apt-get dist-upgrade)
reboot
(re)install VirtualBox Additions on the new kernel that is now running
apt-get autoremove
(Старе ядро від останнього до останнього не може бути автоматично видалено з міркувань безпеки, щоб ви могли "повернутися назад").
Як це сталося? (попередня довга відповідь)
Саме така проблема виникне, якщо ви:
- оновити ядро (скажімо, від .66 до .67)
- запустіть
apt-get autoremove
і якось видаліть запущене ядро або вручну видаліть "старе" ядро, тим самим видаливши всі модулі з /lib/modules/kernel.66
- не перезавантажуйте, тим самим підтримуючи «старе» .66 ядро. Завантажені модулі залишаються в пам'яті, і все працює, але нові модулі не можуть бути завантажені, оскільки .66 модулів було видалено.
- спробуйте зробити все, що вимагає завантаження ще не завантаженого модуля
А для встановлення ISO VirtualBox може знадобитися саме це - завантаження модуля підтримки ISO9660.
Запитаний модуль тепер не можна автоматично завантажувати, оскільки запущене ядро (.66) нічого не знаходить у /lib/modules/kernel.66. Модуль існує , але він знаходиться в /lib/modules/kernel.67, про який поточне ядро .66 нічого не знає (і не рекомендується завантажувати модуль, що не відповідає).
Перевірка ядра uname'd, звичайно, перевстановить працюючі модулі ядра, тим самим зробивши ../.66/.../isofs.ko знову доступними та зробивши непотрібним перезавантаження. Це зменшення рівня встановленого ядра, і проблема з оновленням залишиться (див. Нижче).
Тобто, коли ви запустите компакт-диск Additions, він встановить для запущеного ядра .66, а не оновленого ядра .67 (яке досі не працює).
Якщо ви опинилися в такій ситуації, ви, безумовно, можете це виправити, перезавантажившись (нове запущене ядро .67 знайде свої модулі) і, ймовірно , завантаживши модуль, що належить до нового ядра ( isofs
досить стабільний), який, якщо ви не маєте пройшло важливе оновлення ядра, як і раніше буде сумісним ( це все ще не рекомендується! ):
# mount /dev/cdrom /mnt
mount: unknown filesystem type 'iso9660'
Це вище - коренева помилка, яку ви отримуєте ("невідомий тип файлової системи").
# uname -a
Linux virtual 3.13.0-66-generic ...
Отже ми перевіряємо, яка версія модулів встановлена. Це має бути .66:
# ls /lib/modules
3.13.0-67-generic
... але є лише одна директорія, і це .67 (каталог .66 може бути там, але порожній; в цьому випадку du -sh /lib/modules/*
буде вказано, скільки місця займають різні каталоги, що дозволяє визначати між порожніми і повними).
Перевстановлення старого зображення ядра без повторної роботи не виправить справжню проблему
Ви перевстановлюєте ядро .66 з його модулями та заголовками. Тепер у вас є обидва ядра, grub
встановлені для завантаження новіших .67.
CD-ROM ISO може бути змонтований (оскільки модуль зараз присутній), і VBox-модулі будуть компілюватися (оскільки заголовки встановлені).
Він складе модулі для запущеного ядра .66, і вони працюватимуть деякий час.
Під час першої перезавантаження ви опинитеся з ядром .67, у якому взагалі відсутні додатки до VirtualBox.
Перевстановлення старого зображення ядра за допомогою повторної роботи та перезавантаження також не виправить справжню проблему
Як зазначено вище, ви перезавантажуєтесь і опиняєтесь з пониженим ядром. Зовсім скоро Ubuntu спробує оновити його, і ви повернетесь туди, де ви почали (див. Нижче: "пониження ядра").
Виправлення в модулі ISO також не виправить справжню проблему
Цілком ймовірно, що ми можемо змусити завантажувати модуль ISO9660 все одно, оскільки жодної роботи між ядрами 66 та 67 не було, і двійковий файл по суті є незмінним, тому ми намагаємося:
# insmod /lib/modules/3.13.0-67-generic/kernel/fs/isofs/isofs.ko
Немає помилок. Це спрацювало. Ядро .66 завантажений модуль з ядра .67. Спробуємо знову встановити компакт-диск:
# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
Це все одно не допоможе, оскільки на компакт-диску, що встановлюється, є VirtualBox Additions, для чого потрібні встановлені запущені заголовки ядра. Якщо запущених модулів ядра вже немає, то ймовірність полягає в тому, що і заголовки ядра не будуть.
Крім того, щойно складені модулі Virtualbox нікуди не діватимуться, оскільки каталог модулів .66 очищено.
Але скажіть, що ви виправите все це: ви, по суті, зробили дороге (і часткове) оновлення ядра, і додатки будуть втрачені при наступному оновлення разом з рештою ядра .66, точно так само, як у випадку вище.
Поновлення ядра буде працювати ... деякий час
Якщо ми видалимо ядро .67 і знову встановимо ядро .66 з замість нього модулями, на деякий час справи будуть неполадки. Не потрібно перезавантажувати, як у вищезгаданому рішенні "силовий модуль ISO".
І перезавантаження нічого не втратить, оскільки не встановлено жодне ядро, яке оскаржує додатки.
Але таким чином ядро все ще буде в списку "бути оновленим", і ця сама проблема неодмінно може виникнути рано чи пізно.
Зрозуміло, ви можете зараз зробити це у якийсь більш відповідний момент, який ви обрали, що може коштувати чимало.
Просто перезавантажте!
Перезавантажившись, буде активізовано більш нове ядро .67 і всі його модулі та заголовки є.
Отже, після перезавантаження, гостьові доповнення запрацюють, а оновлення буде «брати».