我在半嵌入式环境中的单板机器上安装了 Ubuntu 10.10 Server;没有键盘或屏幕,只需通过 SSH 访问即可。
所以当它偶尔启动并卡在 GRUB 菜单上,等待按键选择第一个选项时,真的很令人沮丧。
如何将 GRUB 配置为在任何情况下都不等待击键?
更新 #1:没有 menu.lst,因为这是 GRUB 2。但我确实有一个 /etc/default/grub,如下所示:
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""
Run Code Online (Sandbox Code Playgroud)
更新#2:我想通了。在引导失败后的引导上,GRUB 禁用自己的超时。由于显示菜单会使启动失败,因此这是一个不可避免的循环。可以通过编辑 /etc/grub.d/00_header 文件并更改 make_timeout 函数来禁用此行为:
make_timeout ()
{
echo "set timeout=0"
}
Run Code Online (Sandbox Code Playgroud)
现在退出并重新运行 grub 配置更新程序脚本:
sudo update-grub2
Run Code Online (Sandbox Code Playgroud)
对我来说,这种行为将成为 Ubuntu Server 的默认行为是没有意义的,Ubuntu Server 是一种用于通过控制台访问的机器的产品。
操作系统:Ubuntu 8.04 LTS 服务器版
我们刚刚使用以下命令回滚了内核更新:
sudo apt-get remove linux-image-2.6.24-24-server
Run Code Online (Sandbox Code Playgroud)
卸载成功,但是apt-get退出前提示如下信息:
The link /vmlinuz is a damaged link
Removing symbolic link vmlinuz
you may need to re-run your boot loader[grub]
The link /initrd.img is a damaged link
Removing symbolic link initrd.img
you may need to re-run your boot loader[grub]
Run Code Online (Sandbox Code Playgroud)
我们应该担心这个消息吗?我们需要重新运行 GRUB 吗?如果我们必须重新运行 GRUB,我们该怎么做呢?
提前致谢。
如何判断 grub 是否安装在磁盘上,以及它是否具有什么设置(特别是它对 root 参数的设置)
我需要检查软件 RAID1 阵列中的许多磁盘,以确保两个磁盘都安装了 grub,每个磁盘上的 grub 都具有适当的根值。
一个硬盘从我的 RAID 中崩溃,我添加了一个新硬盘。
现在我想将 GRUB 安装到新硬盘上:使用grub-install /dev/sdb. 我收到这些警告:
Installing for i386-pc platform.
grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
Installation finished. No error reported.
Run Code Online (Sandbox Code Playgroud)
在update-grub2我得到:
Generating grub configuration file ...
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some …Run Code Online (Sandbox Code Playgroud) 我有以下问题:我有一个小型服务器(基于 Debian),我可以远程连接(VPN/SSH 连接)。现在我想更改一些启动选项(实际上我想将我的根文件系统迁移到另一个分区),因此我必须重新启动我的系统。
事实上,我担心出现可怕的错误并且 SSH 和 VPN 都无法启动的可能性。在这种情况下,我不得不亲自去位于很远的服务器。我可以要求某人重新启动(以防内核崩溃,...)但没有人有资格修复系统。因此我的问题:
是否有可能在 GRUB2 配置中创建一个条目,使其仅在下次引导时成为默认条目?因此,如果出现问题,我可以重新启动并使用旧系统恢复吗?如果引导运行没有问题(我希望如此),我可以更改 grub,使其默认从新系统引导。
我忘记了我的 root 密码,并试图通过启动到单用户模式来更改它,但是在启动时我看到了这个屏幕:

然后我按“e”编辑启动配置,我得到这个屏幕:

但是,在我遵循的教程中,它说我应该导航到以“kernel”开头的行,但是正如您所看到的,我没有这一行。因此,我尝试在以“linux /boot/vmlinuz ....”开头的行上将“quiet”更改为“single”,但这不会将系统引导到单用户模式。
我应该编辑哪一行才能使其正常工作?
我有一台远程服务器,运行 Linux 5.19.0-41-generic x86_64,我试图找出它是如何启动的。
显然,它不使用 systemd :
PID 1 进程是bash。
ps -p 1 -o comm=
bash
Run Code Online (Sandbox Code Playgroud)
显然,没有 GRUB,至少 /usr/sbin 中没有,并且
grub-install --version
-bash: grub-install: command not found
Run Code Online (Sandbox Code Playgroud)
我猜想,启动时并没有使用GRUB。
看起来不是虚拟机。我检查了一些文件。它似乎在裸机上运行。但配置很小:顶部仅显示少数进程,并且在 ssh 上,如果我需要更完整的功能,系统会提示我“取消最小化”。
我倾向于认为使用了 SysV:
ls /etc/init.d
apport bluetooth hwclock.sh network-manager procps rsync udev
avahi-daemon dbus iwpmd nfs-common pulseaudio-enable-autospawn saned unattended-upgrades
binfmt-support gdm3 kmod pppd-dns rpcbind ssh x11-common
Run Code Online (Sandbox Code Playgroud)
但:
runlevel
unknown
Run Code Online (Sandbox Code Playgroud)
并且 /etc/inittab 不存在。
Q1:如何诊断是什么东西启动的?
Q2:如何重启?理想情况下,使用 systemd。
sudo reboot
System has not been booted with systemd as init system (PID 1). Can't …Run Code Online (Sandbox Code Playgroud) 我在随机(远程)位置安装了一堆无头服务器,所有服务器都运行 Ubuntu 11.04。有时这些盒子会掉下来,再也不会回来了,最终有人出去检查它们,发现它们正坐在 GRUB 屏幕上。
在正常启动时,机器通过 GRUB 毫无问题地尖叫,但似乎内置了某种“故障保护”,如果机器不能正常启动,下次出现框时,它会停止在格鲁布。
我意识到这是为了我的安全,但是由于机器的设置方式,我希望它没有发生(或者至少在一两分钟后超时并尝试再次启动)。无论如何要禁用此功能?
我有奇怪的情况 - BIOS 报告的磁盘顺序与 Linux 看到的磁盘顺序不同。
这导致运行有问题 - grub 安装到 sda,但 bios 从 sdd 或类似的东西启动(这台机器有 7 个磁盘,4 个在内部控制器上,3 个在外部控制器上。
是否可以将 grub 安装(以及稍后更新)到所有磁盘,而不仅仅是 /dev/sda?我不知道 bios 想要启动哪个磁盘(所有磁盘都是一样的,而且由于我对它进行了突袭,我无法随意删除它们),所以我看到的唯一解决方案是进行 grub install在所有 sda-sdg 上。
这是 Debian 稳定版,带有 Grub2。
我想在 CentOS 7 EC2 实例上禁用 transparent_hugepage (THP),默认情况下启用:
# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
Run Code Online (Sandbox Code Playgroud)
可以手动更改此设置:
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
Run Code Online (Sandbox Code Playgroud)
...但重新启动后更改将丢失。
我试图将echo never [...]指令放入我的rc.local和cloud.cfg文件中,但没有奏效。
我也试图追加设置transparent_hugepage=never到内核行/etc/grub.conf(如解释有),但它并没有更好地工作。
那么...如何在 AWS EC2 实例上运行的 CentOS 7 上禁用 THP?
编辑:更改标题...我需要禁用 THP和THP 碎片整理