ゲスト追加機能をインストールできません:不明なファイルシステムタイプ「iso9660」


27

Oracle VirtualBox 4.3.24でUbuntu 14.04を実行し、ゲストの追加を完全に停止しました。オンラインで解決策を探すのにかなりの時間を費やしましたが、何も助けませんでした...

ここに画像の説明を入力してください

以下に示すように、手動でマウントし、WebからISO(VirtualBoxに一致するバージョン)もダウンロードしようとしました。同じエラー:

ここに画像の説明を入力してください

編集:

現在、いくつかのフォルダは「読み取り専用」になり、大きな問題が発生します。Ubuntu14.04の新しいイメージをインストールしても解決しません...したがって、VirtualBox自体の再インストール...

回答:


45

Linuxイメージを再インストールすることで、マウントの問題を解決できました。

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

ところで、それはすべてVirtualBoxのアップグレードから始まりました。双方向クリップボードが機能しなくなったため、Guest Additions ISOを再挿入しようとしました。これは上記のものを引き起こしました。これで、Guest Additionsがマウントされますが、クリップボードが機能しません...


5
今日も同じ問題がありました(クリップボードが壊れ、CDイメージがマウントされません)。ソリューションとGuest Additionsの再インストールにより、両方が解決します。
マークスミス

1
バージョン5.xでも働いていました
カールモリソン

14

TL; DR これは、再起動することですばやく修正できます。その後、CD-ROMが機能し、Guest Additionsがインストール可能になります。

 sudo reboot

Additionsを使用して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からすべてのモジュールを削除します。
  • 再起動しないでください。これにより、「古い」0.66カーネルが実行されたままになります。ロードされたモジュールはメモリに残り、すべてが機能しますが、0.66モジュールが削除されたため、新しいモジュールをロードできません
  • まだロードされていないモジュールのロードを必要とすることを何でも試みてください

そして、VirtualBox ISOのインストールには、まさにそれが必要な場合があります-ISO9660サポートモジュールをロードします。

実行中のカーネル(.66)が/lib/modules/kernel.66で何も検出しないため、要求されたモジュールを自動ロードできなくなりました。モジュールは存在しますが、/ lib / modules / kernel.67にありますが、現在の.66カーネルはそれについて何も認識していません(不一致のモジュールをロードすることはお勧めしません)。

uname'dカーネルを再インストールすると、もちろん実行中のカーネルモジュールが再インストールされるため、.. /。66 /.../ isofs.koが再び利用可能になり、再起動が不要になります。これはインストールされたカーネルのダウングレードであり、更新の問題は残ります(以下を参照)。

つまり、Additions CDを実行すると、更新された.67カーネル(まだ実行されていない)ではなく実行中の .66カーネルにインストールされます。

このような状況にある場合は、リブート(新しい.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

...ただし、ディレクトリは1つだけで、.67です(.66ディレクトリは存在する可能性がありますが、空です。この場合du -sh /lib/modules/*、さまざまなディレクトリがどれだけのスペースを占有しているかを知ることができ、空のディレクトリと完全なディレクトリを区別できます)。

再カーネルなしで古いカーネルイメージを再インストールしても、実際の問題は修正されません。

.66カーネルとそのモジュールおよびヘッダーを再インストールします。これでgrub、新しい.67をロードするように設定された両方のカーネルができました。

ISO CD-ROMは(モジュールが存在するため)マウントでき、VBoxモジュールはコンパイルされます(ヘッダーがインストールされているため)。

実行中の.66カーネル用のモジュールをコンパイルし、しばらく動作します。

最初の再起動時に、VirtualBoxがまったく追加されていない.67カーネルが表示されます。

re-grubおよびre-bootで古いカーネルイメージを再インストールしても、実際の問題は修正されません。

上記のように、再起動すると、ダウングレードされたカーネルが見つかります。すぐに、Ubuntuはそれをアップグレードしようとし、あなたは始めたところに戻ります(以下を参照してください:「カーネルのダウングレード」)。

ISOモジュールにパッチを当てても、実際の問題は修正されません。

カーネル66と67の間で作業が行われず、バイナリは本質的に変更されていないため、ISO9660モジュールをすべて強制的にロードできる可能性があります。

# 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

インストールされるCDはVirtualBox Additionsであり、実行中のカーネルヘッダーをインストールする必要があるため、これはまだ役に立ちません。実行中のカーネルモジュールが存在しない場合、カーネルヘッダーも存在しない可能性があります。

また、.66モジュールディレクトリがクリーンアップされたため、新しくコンパイルされたVirtualboxモジュールはどこにも行きません。

ただし、すべてを修正するとしましょう。本質的に高価な(および部分的な)カーネルダウングレードを行ったので、上記の場合とまったく同様に、追加は.66カーネルの残りと共に次のアップグレードで失われます。

カーネルのダウングレードは動作します...しばらくの間

.67カーネルを削除し、代わりに.66カーネルを再インストールした場合、しばらくの間は物事が厄介になります。上記の「ISOモジュールを強制する」ソリューションのように、再起動する必要はありません。

また、Additionsチャレンジカーネルがインストールされていないため、再起動しても何も失われません。

ただし、この方法ではカーネルは「アップグレード対象」リストに残り、この同じ問題は遅かれ早かれ発生します。

確かに、あなたは今、あなたが選択したより適切な瞬間にそれを起こすことができます。それはかなり価値があるかもしれません。

リブートするだけです!

再起動すると、最新の.67カーネルがアクティブになり、そのすべてのモジュールとヘッダーがそこにあります。

そのため、再起動にGuest Additionsが機能し、アップグレードが「実行」されます。


1
この答えは正解であるため、格段に高く評価する必要があります。完全を期すために、根本的な問題とソリューションに到達するために必要な2つのステップ修正について適切に説明しました。
zero2cx

1
@Iserni回答のtl; dr段落の上部を編集するほどの評判はありません。そこで、ステップ#2、つまりGuest Additions ISOの再インストールに言及する必要があります。答えの最後まで読んでいないため、人々はその必要なステップを逃しているかもしれません。
zero2cx

7

他の回答によると、これは通常、再起動することで修正できます。

何らかの理由で「iso9660」モジュールがロードされていません。depmodすべてのモジュールをスキャンし、モジュールの依存関係を作成します。

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

これにより問題が修正されます。


それは私のために働いた。「sudo depmod -a」で十分でした。ありがとうございました。
mombip

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
    
  • 次に、CDの内容が表示された場合、Nautilus(別名ファイルマネージャー)で/ mntを開き、Guest Additionsをインストールします。

これらの手順が機能しない場合は、これを試してください:

  • VMから(virtualbox Webサイト経由で)ゲスト追加ISOをダウンロードします。
  • それを右クリック->で開く...->ディスクイメージマウンター。
  • 新しくマウントされたディスクを開きます。

こんにちはヘリオ、私はそれがうまくいかなかった両方を試してみました。同じエラー。編集された回答
オレグシロキフ

これが機能しない理由は、この手順がLinuxがデバイスを見つけられないことから生じるほとんどの問題を解決するからです。ここ Linux はデバイスを見つけており、ファイルシステム( "iso9660")も認識しています。問題は、その読み方がわからないことです。
LSerni
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.