天天看点

Ubuntu开机后nvidia-smi英伟达驱动消失,或_解决更改内核无效的问题。

原因一:

没有在开机启动项将secure boot禁用
           

解决:开机时按del进入,找到security,在里面找secure boot 并选择disabled。(tips:进启动项也有可能是别的键)

原因二:

系统使用了新内核。
           

解决:更换内核。

首先查看系统内核:

uname -r
           

记住当前版本,然后查看所有内核:

grep menuentry /boot/grub/grub.cfg
           

选择旧版本.下面以我为例:

我的所有内核信息:

[email protected]:~$ grep menuentry /boot/grub/grub.cfg
if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
  menuentry_id_option=""
export menuentry_id_option
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-5b51bd63-24ef-4c07-a6b0-0d95283dec4f' {
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-5b51bd63-24ef-4c07-a6b0-0d95283dec4f' {
	menuentry 'Ubuntu, with Linux 4.15.0-70-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-70-generic-advanced-5b51bd63-24ef-4c07-a6b0-0d95283dec4f' {
	menuentry 'Ubuntu, with Linux 4.15.0-70-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-70-generic-init-upstart-5b51bd63-24ef-4c07-a6b0-0d95283dec4f' {
	menuentry 'Ubuntu, with Linux 4.15.0-70-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-70-generic-recovery-5b51bd63-24ef-4c07-a6b0-0d95283dec4f' {
	menuentry 'Ubuntu, with Linux 4.15.0-66-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-66-generic-advanced-5b51bd63-24ef-4c07-a6b0-0d95283dec4f' {
	menuentry 'Ubuntu, with Linux 4.15.0-66-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-66-generic-init-upstart-5b51bd63-24ef-4c07-a6b0-0d95283dec4f' {
	menuentry 'Ubuntu, with Linux 4.15.0-66-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-66-generic-recovery-5b51bd63-24ef-4c07-a6b0-0d95283dec4f' {
	menuentry 'Ubuntu, with Linux 4.15.0-64-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-64-generic-advanced-5b51bd63-24ef-4c07-a6b0-0d95283dec4f' {
	menuentry 'Ubuntu, with Linux 4.15.0-64-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-64-generic-init-upstart-5b51bd63-24ef-4c07-a6b0-0d95283dec4f' {
	menuentry 'Ubuntu, with Linux 4.15.0-64-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-64-generic-recovery-5b51bd63-24ef-4c07-a6b0-0d95283dec4f' {
menuentry 'Memory test (memtest86+)' {
menuentry 'Memory test (memtest86+, serial console 115200)' {
           

比如我想更换内核到4.15.0-64, 那么我需要复制两条信息:

第一个是跟在

Advanced options for Ubuntu

后面的id:

gnulinux-advanced-5b51bd63-24ef-4c07-a6b0-0d95283dec4f

第二个是内核版本后面的id(4.15.0-64-generic):

gnulinux-4.15.0-64-generic-advanced-5b51bd63-24ef-4c07-a6b0-0d95283dec4f

确定这两条内容后我们打开grub文件进行修改:

sudo gedit /etc/default/grub
           

修改grub文件中的GRUB_DEFAULT=“gnulinux-advanced-5b51bd63-24ef-4c07-a6b0-0d95283dec4f>gnulinux-4.15.0-64-generic-advanced-5b51bd63-24ef-4c07-a6b0-0d95283dec4f”

两个id中间用

>

分隔.

保存关闭文件,终端敲

sudo update-grub
           

最后重启:

sudo reboot