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 autoremove
i 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 ( isofs
jest 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 grub
ustawionym ł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ąć”.