Nie można zainstalować dodatków dla gości: nieznany typ systemu plików 'iso9660'

21

Uruchomienie Ubuntu 14.04 na Oracle VirtualBox 4.3.24 i całkowite utknięcie podczas montowania dodatków dla gości. Spędziłem sporo czasu szukając rozwiązania online, ale nic nie pomogło ...

Jak sugerowałem poniżej, próbowałem zamontować ręcznie, a także pobrać ISO z sieci (wersja pasująca do VirtualBox). Ten sam błąd:

EDYCJA:

Teraz niektóre foldery stały się "tylko do odczytu", co powoduje duże problemy .. Nawet instalowanie nowego obrazu systemu Ubuntu 14.04 nie pomaga ... W takim przypadku należy ponownie zainstalować VirtualBox ...

    
zadawane Oleg Shirokikh 15.03.2015, 09:37
źródło

6 odpowiedzi

35

Udało mi się rozwiązać problem z instalacją przez ponowne zainstalowanie obrazu linuksowego:

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

BTW, wszystko zaczęło się od aktualizacji VirtualBox. Schowek dwukierunkowy przestał działać, więc próbowałem ponownie wstawić wartość ISO dla dodatków Guest. To spowodowało powyższe rzeczy. Teraz dodatki gości są montowane z powrotem, ale wtill schowka nie działa ...

    
odpowiedział Oleg Shirokikh 15.03.2015, 23:43
źródło
10

TL; DR można to szybko naprawić, restartując . Następnie CD-ROM będzie działał, a dodatki gości będą instalowane:

 sudo reboot

"Najlepsza" sekwencja aktualizacji jądra w VirtualBox za pomocą Additions to:

 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

(Ostatnie starsze jądro może nie zostać automatycznie usunięte ze względów bezpieczeństwa, abyś mógł "wrócić").

Jak to się stało? (poprzednia długa odpowiedź)

Dokładnie tego rodzaju problem powstanie, jeśli:

  • zaktualizuj jądro (powiedzmy od .66 do .67)
  • uruchom apt-get autoremove i jakoś usuń uruchomione jądro lub ręcznie usuń "stare" jądro, usuwając wszystkie moduły z /lib/modules/kernel.66
  • nie uruchamia się ponownie, dzięki czemu działa "stare" jądro .66. Załadowane moduły pozostają w pamięci i wszystko działa, ale nie można załadować nowych modułów , ponieważ usunięto moduły .66.
  • spróbuj zrobić wszystko, co wymaga załadowania modułu, który nie został jeszcze załadowany

Żądany moduł nie może być już ładowany automatycznie, ponieważ działające jądro (.66) nie znajduje niczego w /lib/modules/kernel.66. Moduł istnieje , ale znajduje się w /lib/modules/kernel.67, którego obecne jądro .66 nic nie wie (i nie jest zalecane ładowanie modułu niedopasowania).

Ponowne zainstalowanie jądra uname'd oczywiście przeinstaluje działające moduły jądra, dzięki czemu ../.66/.../isofs.ko będzie znów dostępny i nie będzie konieczne ponowne uruchomienie. To jest downgrade zainstalowanego jądra, a problem z aktualizacją pozostanie (patrz poniżej).

Oznacza to, że gdy uruchomisz dodatek CD, instaluje on dla z uruchomionym jądrem .66, nie zaktualizowanym jądrem .67 (który wciąż nie działa) .

Jeśli jesteś w takiej sytuacji, możesz również z pewnością naprawić go przez ponowne uruchomienie (nowe jądro .67 będzie znajdowało swoje moduły), a prawdopodobnie przez ładowanie moduł należący do nowego jądra ( isofs jest dość stabilny), który, chyba że przeszedłeś ważną aktualizację jądra, nadal będzie kompatybilny ( to nadal nie jest zalecane! ):

# mount /dev/cdrom /mnt
mount: unknown filesystem type 'iso9660'

To jest główny błąd, który otrzymujesz ("nieznany typ systemu plików").

# uname -a
Linux virtual 3.13.0-66-generic ...

Sprawdzamy więc, która wersja modułów jest zainstalowana. Powinno to być .66:

# ls /lib/modules
3.13.0-67-generic

... ale jest tylko jeden katalog i jest .67 (katalog .66 może być tam, ale pusty, w tym przypadku du -sh /lib/modules/* powie, ile przestrzeni zajmuje różne katalogi, pozwalając powiedzieć między pustymi te i pełne).

Ponowna instalacja starego obrazu jądra bez ponownej instalacji nie naprawi prawdziwego problemu

Ponownie instalujesz jądro .66 z jego modułami i nagłówkami. Teraz masz oba jądra, z grub ustawionym na ładowanie nowszego .67.

Można zainstalować dysk CD-ROM ISO (ponieważ moduł jest już obecny) i moduły VBox będą się kompilować (ponieważ zostały zainstalowane nagłówki).

Będzie kompilował moduły dla działającego jądra .66 i będą działać ... przez jakiś czas.

Przy pierwszym uruchomieniu znajdziesz jądro .67 bez żadnych dodatków VirtualBox.

Ponowna instalacja starego obrazu jądra z ponownym uruchomieniem i ponownym uruchomieniem również nie naprawi prawdziwego problemu

Jak wyżej, uruchamiasz ponownie i odnajdziesz się z obniżonym jądrem. Wkrótce Ubuntu spróbuje go zaktualizować, a wrócisz tam, gdzie zacząłeś (patrz poniżej: "downgrading kernel").

Poprawianie w module ISO również nie naprawi prawdziwego problemu

Jest szansa, że ​​możemy wymusić ładowanie modułu ISO9660 w ten sam sposób, ponieważ nie wykonano żadnej pracy między jądrami 66 i 67, a plik binarny jest zasadniczo niezmieniony, dlatego próbujemy:

# insmod /lib/modules/3.13.0-67-generic/kernel/fs/isofs/isofs.ko

Brak błędów. Zadziałało. Kernel .66 ładowany moduł z jądra .67. Spróbujmy ponownie zainstalować CD-ROM:

# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only

To nadal nie pomoże, ponieważ instalowana płyta CD to VirtualBox Additions, która wymaga zainstalowania uruchomionych nagłówków jądra. Jeśli uruchomione moduły jądra już tam nie ma, istnieje ryzyko, że nagłówki jądra również nie będą.

Ponadto, nowo skompilowane moduły Virtualbox nie będą miały dokąd iść, ponieważ katalog modułów .66 został wyczyszczony.

Ale mówisz, że to wszystko naprawiasz: zasadniczo wykonałeś kosztowne (i częściowe) obniżenie wersji jądra, a dodatki zostaną utracone podczas następnej aktualizacji wraz z resztą jądra .66, dokładnie tak, jak w powyższym przypadku.

Obniżenie poziomu jądra będzie działać ... przez chwilę

Jeśli usuniemy jądro .67 i zainstalujemy jądro .66 z modułami zamiast niego, to na jakiś czas wszystko będzie w porządku. Bez konieczności ponownego uruchamiania, jak w powyższym rozwiązaniu "force ISO module".

Ponowne uruchomienie niczego nie straci, ponieważ nie jest zainstalowane jądro z dodatkami.

Ale w ten sposób jądro pozostanie na liście "do uaktualnienia", a ten sam problem pojawi się wcześniej czy później.

Oczywiście, teraz możesz to zrobić w wybranym przez ciebie momencie, który może być warty wiele.

Po prostu uruchom ponownie!

Ponowne uruchomienie powoduje, że nowsze jądro .67 zostanie aktywowane, a wszystkie jego moduły i nagłówki będą dostępne.

Tak, po ponownym uruchomieniu, dodatki dla gości będą działać, a aktualizacja "zajmie".

    
odpowiedział LSerni 08.11.2015, 12:44
źródło
4

Jak zwykle w przypadku innych odpowiedzi, można to zazwyczaj naprawić, uruchamiając ponownie.

Jakoś nie załadowano modułu "iso9660". depmod skanuje wszystkie moduły i tworzy zależności modułów.

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

to rozwiąże problem.

    
odpowiedział Arul 20.05.2016, 13:40
źródło
1

W moim przypadku następne obejście pomogło:

w guest ubuntu

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

Myślę, że niektóre zależności, które zostały zainstalowane, rozwiązały problem

    
odpowiedział Lostboy 08.06.2016, 10:44
źródło
1

Rozwiązałem to (w Ubuntu 16.04), aktualizując pakiety i uruchamiając ponownie:

sudo apt-get update
sudo apt-get upgrade
sudo reboot
    
odpowiedział Johannes Hoff 08.07.2016, 11:39
źródło
0

Spróbuj ręcznie zamontować:

  • Otwórz terminal.
  • Wpisz następujące polecenia:

    sudo mount /dev/sr0 /mnt
    ls -l /mnt
    
  • Następnie, jeśli zawartość CD została wyświetlona, ​​otwórz / mnt w Nautilusie (a.k.a File Manager) i przejdź do dodatków dla gości.

Jeśli te kroki nie działały, spróbuj tego:

  • Pobierz dodatek gości ISO z VM (poprzez witrynę Virtualbox).
  • Kliknij prawym przyciskiem myszy - & gt; Otwórz za pomocą ... - & gt; Image mounter dysku.
  • Otwórz nowo zamontowany dysk.
odpowiedział Helio 15.03.2015, 09:52
źródło

Przeczytaj inne pytania na temat tagów