TL; DR это можно быстро исправить перезагрузкой . После этого CD-ROM заработает и гостевые дополнения будут установлены:
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 были удалены.
- попробуйте сделать что-нибудь, что требует загрузки модуля, который еще не был загружен
А для установки VirtualBox ISO может потребоваться именно это - загрузка модуля поддержки ISO9660.
Запрашиваемый модуль больше не может быть автоматически загружен, поскольку работающее ядро (.66) не находит ничего в /lib/modules/kernel.66. Модуль существует , но он находится в /lib/modules/kernel.67, о котором текущее ядро .66 ничего не знает (и не рекомендуется загружать несовпадающий модуль).
Переустановка ядра uname'd, конечно, переустановит работающие модули ядра, сделав таким образом ../.66/.../isofs.ko доступным снова и сделав перезагрузку ненужной. Это понижение установленного ядра, и проблема с обновлением останется (см. Ниже).
То есть, когда вы запускаете компакт-диск Additions, он будет установлен для работающего ядра .66, а не для обновленного ядра .67 (которое до сих пор не запущено).
Если вы находитесь в такой ситуации , вы можете , конечно , исправить его путем перезагрузки (новый 0,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.
Переустановка старого образа ядра с помощью re-grub и re-boot также не решит реальную проблему
Как и выше, вы перезагружаетесь и обнаруживаете себя с пониженным ядром. Очень скоро Ubuntu попытается обновить его, и вы вернетесь туда, откуда начали (см. Ниже: «понижение версии ядра»).
Исправление в модуле ISO также не решит реальную проблему
Скорее всего, мы все равно можем принудительно загрузить модуль ISO9660, поскольку между ядрами 66 и 67 не было выполнено никакой работы, и двоичный файл практически не изменился, поэтому мы стараемся:
# insmod /lib/modules/3.13.0-67-generic/kernel/fs/isofs/isofs.ko
Нет ошибок Это сработало. Ядро .66 загружен модуль из ядра .67. Давайте попробуем снова смонтировать CD-ROM:
# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
Это по-прежнему не поможет, поскольку устанавливаемый компакт-диск представляет собой VirtualBox Additions, для которого требуется установить работающие заголовки ядра. Если работающих модулей ядра больше нет, есть вероятность, что ни один не будет заголовков ядра.
Кроме того, вновь скомпилированным модулям Virtualbox некуда будет деться, поскольку каталог модулей .66 был очищен.
Но, скажем, вы исправили все это: вы, по сути, сделали дорогой (и частичный) переход на ядро, и дополнения будут потеряны при следующем обновлении вместе с остальным ядром .66, точно так же, как и в случае выше.
Понижение ядра будет работать ... какое-то время
Если мы удалим ядро .67 и переустановим ядро .66 с модулями на его месте, какое-то время это будет непросто. Перезагрузка не требуется, как в приведенном выше решении «Force ISO Module».
И перезагрузка ничего не потеряет, так как не установлено ядро, вызываемое Additions.
Но в этом случае ядро все еще будет в списке «подлежащих обновлению», и эта же проблема рано или поздно возникнет.
Конечно, теперь вы можете вызвать его в более подходящий момент по вашему выбору, который может стоить немало.
Просто перезагрузите компьютер!
При перезагрузке будет активировано более свежее ядро .67, и все его модули и заголовки будут там.
Итак, после перезагрузки Guest Additions будет работать, и обновление будет «проходить».