小编mik*_*vis的帖子

无头 Ubuntu 服务器机器有时卡在 GRUB 菜单

我在半嵌入式环境中的单板机器上安装了 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 headless grub grub2 ubuntu-10.10

55
推荐指数
3
解决办法
4万
查看次数

如何从linux命令行将ISO映像写入USB记忆棒?

我无法弄清楚如何从 Ubuntu 的命令行将 ISO 磁盘映像写入 USB 闪存设备。我有 Startup Disk Creator 实用程序,但我需要能够编写此作业的脚本。

我找到了 usb-creator 包,但似乎没有任何文档并python -m usbcreator给出了usbcreator is a package and cannot be directly executed.

我查看了 unetbootin,但它似乎是另一个仅限 GUI 的实用程序。

是否有一些我忽略的明显解决方案?

linux ubuntu usb-flash-drive iso disk-image

23
推荐指数
3
解决办法
14万
查看次数

如何在运行overlayroot 的系统上更新grub?

我们使用以下overlayroot.conf来运送配置了overlayroot的盒子:

overlayroot=device:dev=/dev/sda6,timeout=20,recurse=0
Run Code Online (Sandbox Code Playgroud)

这会产生以下安装配置:

$ mount
overlayroot on / type overlayfs (rw,errors=remount-ro)
/dev/sda5 on /media/root-ro type ext3 (ro,relatime,errors=continue,user_xattr,acl,barrier=1,data=ordered)
/dev/sda6 on /media/root-rw type ext3 (rw,relatime,errors=continue,user_xattr,acl,barrier=1,data=ordered)
/dev/sda1 on /boot type ext3 (rw)
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,三个关键的物理分区:sda1是/boot,sda5是只读的“工厂”根目录,sda6是“用户”根目录,可以随时擦除以将机器恢复到原始出厂状态。

现在,当 update-grub 因任何原因运行时就会出现问题:

$ sudo update-grub
[sudo] password for administrator: 
/usr/sbin/grub-probe: error: cannot find a device for / (is /dev mounted?).
Run Code Online (Sandbox Code Playgroud)

可以理解,因为/是一个overlayfs。

其内容为/usr/sbin/update-grub

#!/bin/sh
set -e
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"
Run Code Online (Sandbox Code Playgroud)

作为/usr/sbin/grub-mkconfig事物的业务部分。但实际的问题是在 中/usr/sbin/grub-probe,由 grub-mkconfig 调用,并且grub-probe是一个二进制文件。

所以我的问题是,是否有一个参数或其他任何参数可以使 grub-probe 面对/成为一个overlayfs时做正确的事情?其次,有没有办法破解/修补它,以便 update-grub 脚本做正确的事情?

谢谢。

ubuntu mount grub

6
推荐指数
1
解决办法
4664
查看次数