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

27

Uruchamianie Ubuntu 14.04 na Oracle VirtualBox 4.3.24 i całkowicie utknięcie w instalowaniu dodatków gości. Sporo czasu szukałem rozwiązania online, ale nic nie pomogło ...

wprowadź opis zdjęcia tutaj

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

wprowadź opis zdjęcia tutaj

EDYTOWAĆ:

Teraz niektóre foldery stały się „tylko do odczytu”, co powoduje duże problemy. Nawet zainstalowanie świeżego obrazu Ubuntu 14.04 nie pomaga ... Więc ponowna instalacja samego VirtualBox ...

Oleg Shirokikh
źródło

Odpowiedzi:

45

Byłem w stanie rozwiązać problem z instalacją poprzez ponowną instalację obrazu linux:

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

BTW, wszystko zaczęło się od aktualizacji VirtualBox. Dwukierunkowy schowek przestał działać, więc próbowałem przywrócić ISO Dodatki gości. To spowodowało ponad wszystko. Teraz dodatki gości są montowane z powrotem, ale wtill schowka nie działa ...

Oleg Shirokikh
źródło
5
Miałem dzisiaj te same problemy (uszkodzony schowek, nie można zamontować obrazu płyty CD). Twoje rozwiązanie plus ponowna instalacja dodatków gości rozwiązuje oba te problemy.
Mark Smith
1
Pracował również dla wersji 5.x
Karl Morrison
14

TL; DR można to szybko naprawić poprzez ponowne uruchomienie . Następnie CD-ROM będzie działać, a Dodatki dla gości zostaną zainstalowane:

 sudo reboot

„Najlepsza” sekwencja aktualizacji jądra w VirtualBox z dodatkami 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

(Najnowsze, najnowsze jądro może nie zostać automatycznie usunięte ze względów bezpieczeństwa, aby umożliwić „powrót”).

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

Właśnie tego rodzaju problem powstanie, jeśli:

  • zaktualizuj jądro (powiedzmy z .66 do .67)
  • uruchom apt-get autoremovei jakoś usuń działające jądro lub ręcznie usuń „stare” jądro, usuwając w ten sposób wszystkie moduły z /lib/modules/kernel.66
  • nie uruchamiaj ponownie, utrzymując w ten sposób działanie „starego” jądra .66. Załadowane moduły pozostają w pamięci i wszystko działa, ale nie można załadować nowych modułów od czasu usunięcia .66 modułów.
  • spróbuj zrobić wszystko, co wymaga załadowania modułu, który nie został jeszcze załadowany

A instalacja VirtualBox ISO może wymagać dokładnie tego - załadowanie modułu obsługi ISO9660.

Żądanego modułu nie można już ładować 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, o którym bieżące jądro .66 nic nie wie (i nie jest zalecane ładowanie modułu niezgodnego).

Ponowne zainstalowanie nienazwanego jądra spowoduje oczywiście ponowną instalację działających modułów jądra, dzięki czemu ../.66/.../isofs.ko będzie ponownie dostępny, a ponowne uruchomienie nie będzie konieczne. Jest to obniżenie wersji zainstalowanego jądra i problem z aktualizacją pozostanie (patrz poniżej).

Oznacza to, że po uruchomieniu dysku CD Dodatki zostanie zainstalowany dla działającego jądra .66, a nie zaktualizowanego jądra .67 (które nadal nie działa).

Jeśli znajdujesz się w takiej sytuacji, z pewnością możesz to naprawić poprzez ponowne uruchomienie (nowe uruchomione jądro .67 znajdzie swoje moduły) i prawdopodobnie poprzez załadowanie modułu należącego do nowego jądra ( isofsjest dość stabilny), co chyba, że ​​masz przeszedł ważną aktualizację jądra będzie nadal kompatybilny ( nadal nie jest to zalecane! ):

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

Powyżej jest wyświetlany błąd główny („nieznany typ systemu plików”).

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

Sprawdzamy więc, która wersja modułów jest zainstalowana. Powinien wynosić .66:

# ls /lib/modules
3.13.0-67-generic

... ale jest tylko jeden katalog i to .67 (katalog .66 może tam być, ale pusty; w tym przypadku du -sh /lib/modules/*pokaże, ile miejsca zajmują różne katalogi, pozwalając odróżnić puste i pełne).

Ponowna instalacja starego obrazu jądra bez ponownego gruba nie naprawi prawdziwego problemu

Ponownie instalujesz jądro .66 z jego modułami i nagłówkami. Teraz masz oba jądra, z grubustawionym ładowaniem nowszej wersji .67.

CD-ROM ISO można zamontować (ponieważ moduł jest już obecny), a moduły VBox będą się kompilować (ponieważ zostały zainstalowane nagłówki).

Skompiluje moduły dla działającego jądra .66 i będą działać ... przez chwilę.

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

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

Jak wyżej, uruchomisz się ponownie i znajdziesz obniżone jądro. Wkrótce Ubuntu spróbuje go zaktualizować i wrócisz tam, gdzie zacząłeś (patrz poniżej: „obniżanie wersji jądra”).

Poprawki w module ISO również nie naprawią prawdziwego problemu

Możliwe, że możemy wymusić takie samo obciążenie modułu ISO9660, ponieważ nie wykonano żadnej pracy między jądrem 66 i 67, a plik binarny jest zasadniczo niezmieniony, więc próbujemy:

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

Bez błędów. Zadziałało. Moduł ładowany przez jądro .66 z jądra .67. Spróbujmy ponownie zamontować CD-ROM:

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

To nadal nie pomoże, ponieważ instalowany dysk CD to VirtualBox Additions, który wymaga zainstalowanych działających nagłówków jądra. Jeśli nie ma już uruchomionych modułów jądra, istnieje prawdopodobieństwo, że nagłówki jądra również nie będą.

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

Ale powiedz, że to wszystko naprawiłeś: zasadniczo dokonałeś drogiego (i częściowego) obniżenia wersji jądra, a dodatki zostaną utracone przy kolejnej aktualizacji wraz z resztą jądra .66, dokładnie tak jak w powyższym przypadku.

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

Jeśli usuniemy jądro .67 i ponownie zainstalujemy jądro .66 z modułami, to przez chwilę będzie strasznie strasznie. Ponowne uruchomienie nie jest konieczne, jak w powyższym rozwiązaniu „force ISO module”.

Ponowne uruchomienie niczego nie straci, ponieważ nie jest zainstalowane jądro, którego dotyczy wyzwanie.

Ale w ten sposób jądro nadal będzie na liście „do uaktualnienia”, a ten sam problem z pewnością pojawi się wcześniej czy później.

To prawda, że ​​teraz możesz sprawić, by pojawił się w bardziej odpowiednim momencie, który możesz wybrać, co może być warte sporo.

Po prostu uruchom ponownie!

Po ponownym uruchomieniu jądro najnowszej wersji .67 zostanie aktywowane, a wszystkie jego moduły i nagłówki będą dostępne.

Tak więc, po restarcie, Gość Zwiększenia będzie działać, a uaktualnienie będzie „wziąć”.

LSerni
źródło
1
Ta odpowiedź powinna być oceniana znacznie wyżej, ponieważ jest poprawną odpowiedzią. Dla kompletności poprawnie wyjaśniłeś podstawowy problem, a także 2-krokową poprawkę niezbędną do znalezienia rozwiązania.
zero2cx 18.09.16
1
@Iserni Nie mam wystarczającej reputacji, aby edytować tl; dr akapit na górze. Powinniśmy tam wspomnieć o kroku 2, tj. Ponownej instalacji ISO Dodatków dla gości. Ludzie mogą przegapić ten niezbędny krok, nie czytając do końca odpowiedzi.
zero2cx
7

Zgodnie z innymi odpowiedziami można to zwykle naprawić przez ponowne uruchomienie.

Jakoś moduł „iso9660” nie został załadowany. depmodskanuje 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.

Arul
źródło
To zadziałało dla mnie. „sudo depmod -a” wystarczyło. Dziękuję Ci.
mombip
2

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

w gościnnym 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

Zagubiony chłopiec
źródło
1

Rozwiązałem to (w Ubuntu 16.04) poprzez aktualizację pakietów i restartowanie:

sudo apt-get update
sudo apt-get upgrade
sudo reboot
Johannes Hoff
ź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 pokazano zawartość CD, otwórz / mnt w Nautilus (aka File Manager) i zainstaluj dodatki dla gości.

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

  • Pobierz ISO dodatków gości z VM (za pośrednictwem strony virtualbox).
  • Kliknij go prawym przyciskiem myszy -> Otwórz za pomocą ... -> Narzędzie do montażu dysków.
  • Otwórz nowo zamontowany dysk.
Helio
źródło
Cześć Helio, próbowałem obu, to nie działało. Ten sam błąd. Proszę zobaczyć zredagowaną odpowiedź
Oleg Shirokikh
Powodem, dla którego to nie działa, jest to, że ta procedura naprawi większość problemów wynikających z braku znalezienia urządzenia przez Linuksa . Linux tutaj znajduje urządzenie, rozpoznaje nawet system plików („iso9660”), problem polega na tym, że nie wie, jak go odczytać .
LSerni,