Неможливо встановити додатки для гостей: невідомий тип файлової системи '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. Двонаправлений буфер обміну перестав працювати, тому я спробував знову вставити додатки для гостей. Це спричинило вищевказані речі. Тепер додатки для гостей встановлені назад, але буфер обміну не працює ...


5
У мене були такі ж проблеми сьогодні (буфер обміну зламаний, зображення CD не монтується). Ваше рішення плюс перевстановлення додатків для гостей вирішує і те, і інше.
Марк Сміт

1
Також працював над версією 5.x
Карл Моррісон

14

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 і всі його модулі та заголовки є.

Отже, після перезавантаження, гостьові доповнення запрацюють, а оновлення буде «брати».


1
Цю відповідь слід оцінити набагато вище, оскільки це правильна відповідь. Для повноти ви правильно пояснили основну проблему, а також 2 крокові виправлення, необхідні для досягнення рішення.
zero2cx

1
@Iserni У мене недостатньо репутації, щоб редагувати tl; абзац dr у верхній частині. Там слід зазначити крок №2, тобто перевстановлення ISO-додатків для гостей. Люди можуть пропустити той необхідний крок, не читаючи до кінця відповіді.
zero2cx

7

Відповідно до інших відповідей, це зазвичай можна виправити перезавантаженням.

Якось модуль "iso9660" не завантажений. depmodсканує всі модулі та створює залежність модулів.

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

це вирішить проблему.


Це працювало для мене. "sudo depmod -a" вистачило. Дякую.
мамбіп

2

У моєму випадку наступне рішення допомогло:

в гостьовому ubuntu

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 (він же файловий менеджер) і вставте гостьові доповнення.

Якщо ці кроки не спрацювали, спробуйте:

  • Завантажте гостьові доповнення ISO з VM (через веб-сайт virtualbox).
  • Клацніть правою кнопкою миші на ньому -> Відкрити за допомогою ... -> Дисковий образ.
  • Відкрийте щойно змонтований диск.

Привіт Геліо, я спробував і те, і інше не вийшло. Та сама помилка. Дивіться відредаговану відповідь
Олег Широких

Причина, чому це не працює, полягає в тому, що ця процедура виправить більшість проблем, що виникають у зв'язку з тим, що Linux не знайде пристрій . Linux тут знаходить пристрій, він навіть розпізнає файлову систему ("iso9660"), проблема полягає в тому, що він не знає, як її читати .
LSerni
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.