TL; DR ini dapat dengan cepat diperbaiki dengan me-reboot . Kemudian CD-ROM akan berfungsi dan Penambahan Tamu akan dapat diinstal:
sudo reboot
Urutan "terbaik" untuk memperbarui kernel pada VirtualBox dengan Tambahan adalah:
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
(Kernel lama berikutnya yang terbaru mungkin tidak dihapus secara otomatis karena alasan keamanan, untuk memungkinkan Anda "kembali").
Bagaimana ini bisa terjadi? (jawaban panjang sebelumnya)
Persisnya masalah seperti ini akan muncul jika Anda:
- tingkatkan kernel (katakanlah dari .66 ke .67)
- jalankan
apt-get autoremove
dan entah bagaimana hapus kernel yang berjalan, atau secara manual hapus kernel "lama", sehingga menghapus semua modul dari /lib/modules/kernel.66
- jangan reboot, dengan demikian menjaga kernel ".66" lama berjalan. Modul yang dimuat tetap di memori dan semuanya berfungsi, tetapi tidak ada modul baru yang dapat dimuat karena modul .66 telah dihapus.
- coba lakukan apa saja yang memerlukan memuat modul yang belum dimuat
Dan menginstal VirtualBox ISO mungkin memerlukan hal itu - memuat modul dukungan ISO9660.
Modul yang diminta sekarang tidak dapat lagi dimuat secara otomatis, karena kernel yang berjalan (.66) tidak menemukan apa pun di /lib/modules/kernel.66. Modul itu ada , tetapi ada di /lib/modules/kernel.67, di mana kernel .66 saat ini tidak tahu apa-apa tentang (dan tidak disarankan untuk memuat modul yang tidak cocok).
Menginstal ulang kernel yang tidak dikenal tentu saja akan menginstal ulang modul kernel yang sedang berjalan, sehingga membuat ../.66/.../isofs.ko tersedia lagi dan membuat reboot tidak perlu. Ini adalah penurunan versi kernel yang diinstal dan masalah pembaruan akan tetap ada (lihat di bawah).
Yaitu, ketika Anda menjalankan Additions CD, itu akan menginstal untuk menjalankan kernel .66, bukan kernel .67 yang diperbarui (yang masih tidak berjalan).
Jika Anda berada dalam situasi seperti itu Anda juga dapat dipastikan memperbaikinya dengan me-reboot (baru 0,67 kernel yang berjalan akan menemukan modul), dan mungkin dengan memuat modul milik kernel baru ( isofs
cukup stabil), yang kecuali Anda telah menjalani pemutakhiran kernel yang penting masih akan kompatibel ( ini masih tidak disarankan! ):
# mount /dev/cdrom /mnt
mount: unknown filesystem type 'iso9660'
Ini di atas adalah kesalahan root yang Anda dapatkan ("tipe sistem file yang tidak dikenal").
# uname -a
Linux virtual 3.13.0-66-generic ...
Jadi kami memeriksa versi modul mana yang diinstal. Seharusnya 0,66:
# ls /lib/modules
3.13.0-67-generic
... tetapi hanya ada satu direktori dan itu .67 (direktori .66 mungkin ada di sana, tetapi kosong; dalam hal ini du -sh /lib/modules/*
akan memberi tahu berapa banyak ruang yang diambil oleh berbagai direktori, yang memungkinkan untuk membedakan antara yang kosong dan yang penuh).
Menginstal ulang gambar kernel lama tanpa re-grub tidak akan memperbaiki masalah sebenarnya
Anda menginstal ulang kernel .66 dengan modul dan header-nya. Sekarang Anda memiliki kedua kernel, dengan grub
set untuk memuat .67 yang lebih baru.
ISO CD-ROM dapat dipasang (karena modul sekarang hadir) dan modul VBox akan dikompilasi (karena header telah diinstal).
Ini akan mengkompilasi modul untuk menjalankan kernel .66, dan mereka akan bekerja ... untuk sementara waktu.
Pada reboot pertama, Anda akan menemukan diri Anda dengan kernel .67 tanpa tambahan VirtualBox sama sekali.
Menginstal ulang gambar kernel lama dengan re-grub dan boot ulang juga tidak akan memperbaiki masalah sebenarnya
Seperti di atas, Anda reboot dan menemukan diri Anda dengan kernel yang diturunkan. Dengan segera, Ubuntu akan mencoba memutakhirkannya dan Anda akan kembali ke tempat Anda mulai (lihat di bawah: "downgrade kernel").
Menambal dalam modul ISO juga tidak akan memperbaiki masalah sebenarnya
Kemungkinannya adalah kita dapat memuat modul ISO9660 secara sama, karena tidak ada pekerjaan yang dilakukan antara kernel 66 dan 67 dan biner pada dasarnya tidak berubah, jadi kami mencoba:
# insmod /lib/modules/3.13.0-67-generic/kernel/fs/isofs/isofs.ko
Tidak ada kesalahan Itu berhasil. Kernel .66 memuat modul dari kernel .67. Mari kita coba lagi untuk memasang CD-ROM:
# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
Ini masih tidak akan membantu, karena CD yang diinstal adalah VirtualBox Additions, yang mengharuskan header kernel yang berjalan diinstal. Jika modul kernel yang berjalan sudah tidak ada lagi, kemungkinannya tidak ada header kernel.
Juga, modul Virtualbox yang baru dikompilasi tidak akan memiliki tempat untuk pergi, karena direktori .66 modul telah dibersihkan.
Tetapi katakan Anda memperbaiki semua itu: Anda pada dasarnya telah melakukan downgrade kernel yang mahal (dan sebagian), dan penambahan akan hilang pada upgrade berikutnya bersama dengan sisa kernel 0,66, persis seperti dalam kasus di atas.
Menurunkan versi kernel akan berfungsi ... untuk sementara waktu
Jika kita menghapus kernel .67 dan menginstal ulang kernel .66 dengan modul-modul sebagai gantinya, hal-hal akan menjadi keren untuk sementara waktu. Tidak perlu reboot, seperti pada solusi "force ISO module" di atas.
Dan reboot tidak akan kehilangan apa-apa, karena tidak ada kernel tambahan yang diinstal.
Tetapi dengan cara ini kernel akan tetap ada dalam daftar "yang akan ditingkatkan", dan masalah yang sama ini akan muncul cepat atau lambat.
Memang, Anda sekarang dapat memilikinya muncul di saat yang lebih tepat dari pilihan Anda, yang mungkin bernilai cukup banyak.
Cukup reboot!
Reboot, kernel .67 yang lebih baru akan diaktifkan dan semua modul dan header-nya ada.
Jadi, setelah reboot, Penambahan Tamu akan berfungsi, dan peningkatan akan "mengambil".