Невозможно установить гостевые дополнения: неизвестный тип файловой системы iso9660

27

Запуск Ubuntu 14.04 на Oracle VirtualBox 4.3.24 и полностью застрял с подключением гостевых дополнений. Я провел довольно много времени в поисках решения в Интернете, но ничего не помогло ...

введите описание изображения здесь

Как предлагается ниже, я попытался смонтировать вручную, а также загрузить ISO из Интернета (версия соответствует VirtualBox). Та же ошибка:

введите описание изображения здесь

РЕДАКТИРОВАТЬ:

Теперь некоторые папки стали «только для чтения», что вызывает большие проблемы. Даже установка свежего образа Ubuntu 14.04 не помогает ... Так что переустановка самого VirtualBox ...

Олег Широких
источник

Ответы:

45

Я смог решить проблему с монтированием путем переустановки образа Linux:

sudo apt-get install --reinstall linux-image-$(uname -r)

Кстати, все началось с обновления VirtualBox. Перестал работать двунаправленный буфер обмена, поэтому я попытался переустановить гостевые дополнения ISO. Это вызвало вышеуказанные вещи. Теперь гостевые дополнения монтируются обратно, но буфер обмена не работает ...

Олег Широких
источник
5
У меня были те же проблемы сегодня (буфер обмена сломан, образ компакт-диска не будет монтироваться). Ваше решение плюс переустановка гостевых дополнений решает оба.
Марк Смит
1
Также работал для версии 5.x
Карл Моррисон
14

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 будет работать, и обновление будет «проходить».

LSerni
источник
1
Этот ответ должен быть оценен намного выше, потому что это правильный ответ. Для полноты картины вы правильно объяснили основную проблему, а также два шага исправления, необходимые для достижения решения.
zero2cx
1
@Iserni У меня недостаточно репутации, чтобы редактировать абзац вашего ответа вверху. Там мы должны упомянуть шаг # 2, то есть переустановку гостевого дополнения ISO. Люди могут пропустить этот необходимый шаг, не читая до конца ответа.
zero2cx
7

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

Каким-то образом модуль "iso9660" не загружен. depmodсканирует все модули и создает зависимости модулей.

sudo depmod -a
sudo mount /dev/sr0 /mnt
ls -l /mnt

это решит проблему.

Arul
источник
Это сработало для меня. "sudo depmod -a" было достаточно. Спасибо.
Mombip
2

В моем случае помог следующий обход:

в гостевой убунту

sudo apt-get install virtualbox-guest-additions-iso

Я думаю, что некоторые зависимости, которые были установлены, решили проблему

Потерявшийся мальчик
источник
1

Я решил это (в Ubuntu 16.04) путем обновления пакетов и перезапуска:

sudo apt-get update
sudo apt-get upgrade
sudo reboot
Йоханнес Хофф
источник
0

Попробуйте вручную установить его:

  • Откройте терминал.
  • Введите следующие команды:

    sudo mount /dev/sr0 /mnt
    ls -l /mnt
    
  • Затем, если содержимое компакт-диска было показано, откройте / mnt в Nautilus (он же File Manager) и введите Guest Additions.

Если эти шаги не сработали, попробуйте это:

  • Загрузите гостевые дополнения ISO с виртуальной машины (через веб-сайт virtualbox).
  • Щелкните правой кнопкой мыши по нему -> Открыть с помощью ... -> Установщик образа диска.
  • Откройте только что смонтированный диск.
гелиограф
источник
Привет Хелио, я попробовал оба, это не сработало. Та же ошибка. Пожалуйста, смотрите отредактированный ответ
Олег Широких
Причина, по которой это не работает, заключается в том, что эта процедура исправит большинство проблем, возникающих из-за того, что Linux не находит устройство . Linux здесь будет найти устройство, даже распознает файловую систему ( «iso9660»), проблема в том , что он не знает , как прочитать его.
LSerni