ubuntu禁用自动更新,开启grub选择界面,自动更新导致软件和驱动异常修复
禁用自动更新
在没有安装多个操作系统的服务器上,Ubuntu默认会在启动时进入最新的内核。然而,Ubuntu有一个需要注意的地方,即全新安装的系统默认会自动更新内核,并在下次启动时使用新内核。一些驱动程序需要特定版本的内核才能正常工作。因此,经常会出现服务器重启后驱动程序丢失的情况。为了避免这种情况,对于全新安装的Ubuntu系统,可以关闭更新内核的相关服务。这样可以确保内核版本不会在未经测试的情况下更改,从而增加系统的稳定性。
systemctl disable unattended-upgrades.service #禁止开机启动无人更新
systemctl stop unattended-upgrades.service #停止无人更新服务
systemctl disable apt-daily.timer #禁止自动下载
systemctl stop apt-daily.timer #停止自动下载
systemctl disable apt-daily-upgrade.timer #禁止自动更新
systemctl stop apt-daily-upgrade.timer #停止自动更新
#服务有可能是.timer也有可能是.service
apt-daily.timer是一个由systemd管理的定时器,用于在系统启动时和每天运行时自动更新软件包列表并检查可用更新。这有助于确保您的系统保持最新并且安全。您可以使用systemctl命令来管理此定时器,例如启用、禁用或查看其状态。
apt-daily-upgrade.timer是一个由systemd管理的定时器,用于在系统启动时和每天运行时自动升级所有软件包。这有助于确保您的系统保持最新并且安全。您可以使用systemctl命令来管理此定时器,例如启用、禁用或查看其状态。请注意,如果您使用的是服务器或生产环境,建议在自动升级之前进行测试,并确保备份了重要的数据和配置文件。
unattended-upgrades.service是一个由systemd管理的服务,用于在后台自动升级软件包。这个服务可以在系统启动时自动启动,也可以手动启动。它会定期检查可用的软件包更新并自动安装它们。如果您的系统上有许多软件包需要更新,这个服务可能会在后台运行一段时间。您可以使用systemctl命令来管理此服务,例如启用、禁用或查看其状态。请注意,在自动升级之前进行测试,并确保备份了重要的数据和配置文件,特别是在服务器或生产环境中。
grub解析
grub文件解析
默认情况下,Ubuntu的/etc/default/grub文件包含以下内容:
GRUB_DEFAULT=0 #默认选择第一个内核 GRUB_TIMEOUT_STYLE=hidden #隐藏引导菜单 GRUB_TIMEOUT=0 #引导菜单超时时间 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX="" #导入到每个启动项(包括recovery mode启动项)的'linux'命令行,当有英伟达显卡驱动异常时添加GRUB_CMDLINE_LINUX=“pci=realloc=off”
这些设置指定了GRUB引导菜单的默认行为,例如默认选择第一个内核、隐藏引导菜单、不等待用户输入等。如果您想更改这些设置,可以编辑此文件并重新生成GRUB配置文件。请注意,在更改此文件之前,请备份原始文件以防止不必要的问题。
grub显卡的特殊配置
GRUB_CMDLINE_LINUX="pci=realloc=off"是一个用于配置GRUB引导菜单的设置。在这个例子中,pci=realloc=off是一个内核参数,它告诉Linux内核在启动时禁用PCI内存重映射。这可能会解决某些硬件问题,例如系统不稳定或出现错误消息等。要更改此设置,请编辑/etc/default/grub文件并确保以下行存在:
GRUB_CMDLINE_LINUX="pci=realloc=off"
然后,运行以下命令以使更改生效:
sudo update-grub
这将重新生成GRUB配置文件并应用新的设置。请注意,在更改此文件之前,请备份原始文件以防止不必要的问题。
显示并进入GRUB菜单
grub等待用户手动选择(默认不选择内核)
echo 'GRUB_TIMEOUT_STYLE=menu' | sudo tee -a /etc/default/grub
sudo update-grub
GRUB_TIMEOUT_STYLE=menu是一个用于配置GRUB引导菜单的设置。默认情况下,GRUB会在启动时等待5秒钟,然后自动启动默认内核。如果您将GRUB_TIMEOUT_STYLE设置为menu,则GRUB将显示引导菜单并等待用户选择内核。这对于需要在多个内核之间切换或测试新内核的用户非常有用。要更改此设置,请编辑/etc/default/grub文件并确保以下行存在:
GRUB_TIMEOUT_STYLE=menu
然后,运行以下命令以使更改生效:
sudo update-grub
这将重新生成GRUB配置文件并应用新的设置。
切换内核版本选择 Advanced options for Ubuntu
然后选择对应的版本,后按 Enter 启动对应的内核
grub显示10s超时自动选择默认内核
编辑/etc/default/grub文件确保以下字段
#GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
然后,运行以下命令以使更改生效:
sudo update-grub
内核操作
查看内核
sudodpkg --get-selections | grep linux
#查看现有内核
dpkg --get-selections | grep linux 是一个用于在Ubuntu系统上列出已安装的Linux内核的命令。它将列出包含“linux”字符串的所有软件包,因此您将看到所有与Linux内核相关的软件包。这对于查找已安装的内核版本以及卸载不需要的版本非常有用。请注意,此命令需要使用管理员权限运行,因此您需要在命令前加上sudo。
删除内核
sudo apt-get remove linux-image-2.6.35-22-generic
#删除'linux-image-2.6.35-22-generic'内核
通知grub
sudo update-grub
其他实用命令
获得当前GRUB2有效的启动项
$ grep menuentry /boot/grub/grub.cfg
该项将使用grub-set-default和grub-reboot命令来配置默认启动项
$ sudo grub-set-default 0
#上面这条语句将会持续有效,直到下一次修改##只有下一次启动的时候生效:
$ sudo grub-reboot 0
#只有下一次启动的时候生效
GRUB_SAVEDEFAULT=true
#将下次选择的启动项设为默认只需要在/etc/default/grub中添加这行