标签 grub 下的文章

需要在虚拟机中访问 GRUB 菜单吗?以下是做法。

大多数现代虚拟机都配置为跳过 GRUB 引导加载程序 以获得无缝体验。

但是,你有时可能需要访问 GRUB 菜单。例如,如果你想切换回旧内核或进入恢复模式以 重置密码

? TLDR:重启虚拟机并在再次启动时按住 Shift 键。这将为你提供 GRUB 菜单。

在这篇简短的文章中,我将向你展示两种访问虚拟机中运行的 Linux 中的 GRUB 菜单的方法:

  • 临时方案(当你需要访问 GRUB 一两次时)
  • 永久方案(每次启动时都会显示 GRUB)

由于大多数用户不会每天与 GRUB 交互,因此我将从一个临时解决方案开始,你可以无需任何调整即可访问 GRUB。

? 我在此处的教程中使用了 Ubuntu,但这些步骤也适用于其他 Linux 发行版。

在虚拟机中访问 GRUB 引导加载程序(快速方式)

如果你偶尔想访问 GRUB,这应该是最好的方法,因为它不需要任何配置。

只需重新启动系统并按住 shift 键即可。

就是这样!

你将拥有没有任何时间限制的 GRUB 菜单:

Accessing grub menu in VM using shift key

很简单的方法。不是吗?

但它仅适用于特定的启动。那么如果你想在每次启动时都进入 GRUB 该怎么办呢? 请参考下面的方法。

永久在虚拟机中启用 GRUB 菜单(如果你愿意)

? 此方法需要在命令行中更改 GRUB 配置文件。请确保你能够轻松地在终端中进行编辑。

如果你需要处理 GRUB 菜单来访问其他操作系统或经常更改 从旧内核启动,那么此方法非常适合你。

要使 GRUB 在每次引导时都可访问,你必须在配置文件中进行更改。

首先,使用以下命令打开 GRUB 配置文件:

sudo nano /etc/default/grub

在这里,将 GRUB_TIMEOUT_STYLE=hidden 更改为 GRUB_TIMEOUT_STYLE=menu

change grub timeout style

接下来,在同一个配置文件中,指定你希望 GRUB 显示的秒数。

我建议 5 秒,因为它似乎在太长和太短之间取得了平衡(是的,非常相关):

GRUB_TIMEOUT=5

configure grub timeout in ubuntu

最后,你可以 保存更改并退出 nano 编辑器。

要激活对配置文件所做的更改,请使用以下命令更新 GRUB:

sudo update-grub

就是这样。重启系统,GRUB 应该会显示 5 秒钟。

将 GRUB 主题化如何?

大多数 Linux 发行版都会使用 GRUB 引导加载程序,因为它的配置非常简单,而且能完成工作。

但在默认情况下,除了黑色背景和纯文本外,它没什么样式。因此,我们制作了一份指南,教你如何让它看起来更漂亮:

定制 GRUB 以获得更好的体验

希望本指南对你有所帮助,如果你有任何疑问,请在评论中告诉我。

(题图:MJ/f75daf37-20c2-4bae-8a68-dc6a82ad0d61)


via: https://itsfoss.com/access-grub-virtual-machine/

作者:Sagar Sharma 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在 Linux 中安装和应用现代的漂亮的 GRUB 主题。

GRUB ,意即 大统一引导程序 GRand Unified Bootloader ,它是大多数 Linux 操作系统的默认引导加载程序。GRUB 引导加载程序是计算机启动时运行的第一个程序。正如你可能注意到的,GRUB 菜单的默认主题是朴素的。它只有一个黑色的背景和一些白色的字符。你们中的一些人可能不喜欢默认的 GRUB 主题。在这篇教程中,我将演示如何 更改 GRUB 主题 或应用华丽的主题,以使你的 GRUB 菜单在 Linux 中更加精美。

数年前,我们发布了一篇指南,阐释了如何在 Ubuntu 中 配置 GRUB2 引导加载程序设置 。在这篇文章中,我们将向你展示如何更改 GRUB 背景。

但是,只更改背景不是真正的自定义。在这篇指南中,我们不仅会更改壁纸,也会更改 GRUB 的字体、主题和整体的设计。

免责声明: 安装 GRUB 主题可能会破坏你的系统。我强烈建议你在一个虚拟机中尝试和测试一个主题来查看它是否没有正常工作。然后再在实际的系统上安装主题。

介绍

在互联网上可以找到很多社区开发的 GRUB 主题。然而,它们却散落在不同的网站上。因此,找到一个好的 GRUB 主题可能会事倍功半。

GRUB 主题的一个重要的贡献者是 Pling 网站。但是,Pling 中的大部分主题是非常简单的或过时的。

幸运的是,我遇到一个名称为 Gorgeous GRUB 的项目,它是一个可以找到各种精美的 GRUB 主题的地方。相信我,作者付出了巨大的努力来收集这些主题,肯定会你喜欢的主题。

Gorgeous GRUB:一个可以找到很棒的 GRUB 主题的地方

Gorgeous GRUB 是一个由不同用户所创建的质量上乘的 GRUB 社区主题的收藏集合。这个项目的开发者从 Pling/r/unixporn 和其它很多的论坛中手工挑选漂亮的 GRUB 主题,并将它们放置到一起,以便用户可以很容易的浏览它们。

如上所述,在 Pling 中的很多主题都是粗糙和过时的。Gorgeous GRUB 的作者翻遍了 Pling 和其它一些论坛的整个 GRUB 部分,并将所有令人满意的 GRUB 主题放置到一个地方。

它们不是一些粗制滥造的主题。他们付出了大量的努力来将定制的背景、字体和颜色等融合在一起。

请注意,Gorgeous GRUB 并不是一个安装你最喜欢的 GRUB 主题的应用程序。它只是一个良好工作的 GRUB 主题的展览列表。

这个项目托管在 GitHub 中。如果你有一些很酷的 GRUB 主题,你也可以将其添加到 Gorgeous GRUB 主题列表之中。

如何更改 GRUB 主题

应用或更改 GRUB 主题并不难。

转到 Gorgeous GRUB 的 GitHub 网页 ,单击任意你想要应用的主题的标题。接下来,你将会被带到该主题的实际主页。一些主题托管在 Pling 之中,一些主题托管在 GitHub 之中。我将会看看如何安装来自 Pling 或 GitHub 的 GRUB 主题。

首先,让我们看看如何应用 “Descent” 主题,它托管在 Pling 中。

1、从 Pling 安装 GRUB 主题

如果主题托管在 Pling 网站,遵循这些操作说明。

在主题主页,单击 文件 Files 标签页。你将会在图像预览的下方找到这个标签页。单击文件链接来下载它。

Download GRUB Theme From Pling

转到下载位置并提取存档文件:

$ tar xzf 173860-20150926\ descent.tar.gz

存档文件的内容将被提取到当前工作目录中一个名称为 descent 目录中。

使用下面的命令复制 descent 目录到 /boot/grub/themes/ 目录:

$ sudo cp -r descent/ /boot/grub/themes/

如果 themes 目录不存在,只需要创建它:

$ sudo mkdir /boot/grub/themes

并给 themes 目录分配适当的权限:

$ sudo chown $USER /boot/grub/themes/

接下来,如上所述复制 descent 目录中内容到 themes 目录。

现在,你应该在 themes 目录中有一个以主题名称命名的文件夹:

$ ls /boot/grub/themes/
descent

并且,这个主题文件夹(例如 descent)应该包含 theme.txt 和该主题附带的其它一些相关的文件(例如,背景图像、自定义文件)。

$ ls /boot/grub/themes/descent/
background1280x800.png    descent_score_14.pf2  menu_ne.png  menu_s.png         progresshigh_c.png  scrollframe_c.png   scroll_thumb_n.png
background_original.jpg   descent_score_18.pf2  menu_n.png   menu_sw.png        progresshigh_e.png  scrollframe_n.png   scroll_thumb_s.png
copyright                 menu_c.png            menu_nw.png  menu_w.png         progresshigh_w.png  scrollframe_s.png   select_os.png
descent_logo_bold_18.pf2  menu_e.png            menu_se.png  progressbar_c.png  readme              scroll_thumb_c.png  theme.txt

在复制下载的主题到 /boot/grub/themes/ 目录后,编辑 /etc/default/grub 文件:

在进行任意更改前,请备份 grub 文件,以防万一:

$ sudo cp /etc/default/grub /etc/default/grub.bak

现在,使用你喜欢的编辑器编辑文件:

$ sudo nano /etc/default/grub

找到 GRUB_THEME= 代码行,并添加路径到你想要使用的主题的 theme.txt 。并且,也要取消 GRUB_GFXMODE= 代码行的注释,输入背景图像的分辨率。通常,背景图像的文件名称包含其分辨率(例如 background1280x800.png)。

[...]
GRUB_THEME=/boot/grub/themes/descent/theme.txt
GRUB_GFXMODE=1280x800
[...]

Enter Theme Txt File Path And Background Image Resolution

再强调一次,如果这些代码行不存在,简单地添加它们。按下 CTRL+O 组合键 和 CTRL+X 组合键(LCTT 校注:这是 nano 中的快捷键,如果你使用 Vi/Vim,请使用相应的快捷键)来保持更改并关闭文件。

现在,应用更改到 GRUB ,使用命令:

$ sudo update-grub

示例输出:

Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found theme: /boot/grub/themes/descent/theme.txt
Found linux image: /boot/vmlinuz-5.15.0-41-generic
Found initrd image: /boot/initrd.img-5.15.0-41-generic
Found linux image: /boot/vmlinuz-5.15.0-39-generic
Found initrd image: /boot/initrd.img-5.15.0-39-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
done

Update GRUB

如果你是在基于 RPM 的系统上(例如 Fedora),运行下面的命令来更新 GRUB :

$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg instead

重新启动你的系统。你就会看到更新后的 GRUB 主题。如果 GRUB 菜单没有出现。在打开硬件系统的电源时,立即按下 ESC 按键,直到启动菜单出现。

这是我的 Ubuntu 22.04 LTS 桌面的默认 GRUB 菜单。

Ubuntu Default Grub Menu

这是更新后的带有复古主题的 GRUB 菜单。

Updated GRUB Menu With Descent Theme

很酷,是吧?

移除 GRUB 主题

为移除一个主题,简单地删除主题文件夹:

$ sudo rm -fr /boot/grub/themes/descent/

接下来,编辑 /etc/default/grub 文件:

$ sudo nano /etc/default/grub

移除下面的代码行:

[...]
GRUB_THEME=/boot/grub/themes/descent/theme.txt
GRUB_GFXMODE=1280x800
[...]

保存文件并关闭它。

最后,应用更改到 GRUB ,并重新启动你的系统:

$ sudo update-grub
$ sudo reboot

2、从 GitHub 安装 GRUB 主题

如果一个 GRUB 主题托管在 GitHub 中,它很可能有安装程序脚本和卸载程序脚本。让我们以 Modern GRUB Themes 为例。它托管在 GitHub 中。

使用 Git 复刻项目的 GitHub 存储库:

$ git clone https://github.com/vinceliuice/grub2-themes.git

转到项目的文件夹:

$ cd grub2-themes/

运行安装程序脚本:

$ sudo ./install.sh

选择你喜欢的 GRUB 主题背景(例如 tela)。

Choose GRUB Theme Background

选择图标样式:

Choose Icon Style

选择你的显示分辨率。

Choose Display Resolution

现在选择将会安装和应用的 GRUB 主题。

Checking for the existence of themes directory... 
  
 Installing tela color 1080p theme... 
  
 Setting tela as default... 
  
 Updating grub config...
 
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found theme: /usr/share/grub/themes/tela/theme.txt
Found linux image: /boot/vmlinuz-5.15.0-41-generic
Found initrd image: /boot/initrd.img-5.15.0-41-generic
Found linux image: /boot/vmlinuz-5.15.0-39-generic
Found initrd image: /boot/initrd.img-5.15.0-39-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
done
  
 * All done! 
  
 * At the next restart of your computer you will see your new Grub theme: 'tela'

Install Tela Modern Grub Theme

重新启动你的系统来查看更改。

Tela GRUB Theme

这是一个漂亮的 GRUB 主题,前所未见。

你也可以明确地给定主题的名称和屏幕分辨率,像下面一样。

$ sudo ./install.sh -t whitesur -s 1080p

这将应用一个名称为 “Whitesur” 的主题,使用 1080p 屏幕分辨率。你可能会提及到其它的分辨率,例如 2k4k 、超宽(ultrawide)、超宽 2k(ultrawide2k) 。如果你不提及分辨率,将默认采用 1080p

安装 Tela 主题到 /boot/grub/themes 文件夹:

$ sudo ./install.sh -b -t whitesur

重新启动你的系统来查看更改。

Whitesur GRUB Theme

移除 GRUB 主题

为移除已安装的一个主题,转到项目的复刻目录:

$ cd grub2-themes/

随后,运行:

$ sudo ./install.sh -r -t tela

使用你已安装的主题的名称来替换 tela

请注意,每个主题的安装说明可能有所不同。详细地参考每个项目的 GitHub 页面,并相应地安装主题。

总结

有些人喜欢使用艺术化的 Linux 发行版。他们以美化其 Linux 发行版而感到高兴和自豪。如果你是他们中的一员,你可以看看 Gorgeous GRUB 项目来美化你的 GRUB 菜单。

转到 Gorgeous GRUB 主题网站,从列表中选择你最喜欢的主题,并按照每个项目的主页说明来安装和应用 GRUB 主题。

资源

Gorgeous GRUB 的 GitHub 存储库

via: https://ostechnix.com/change-grub-theme-in-linux/

作者:sk 选题:lkxed 译者:robsean 校对:校对者ID

本文由 LCTT 原创编译,Linux中国 荣誉推出

极客们好,将 Ubuntu 22.04(Jammy Jellyfish)启动到 救援 Rescue 紧急 Emergency 模式可以重置忘记的用户密码、修复文件系统错误,以及在启动过程中禁用或启用 systemd 服务。

在这篇文章中,我们将学习如何启动 Ubuntu 22.04 LTS 系统进入救援和应急模式。救援模式类似于单用户模式,所有的故障排除步骤都在这里进行。救援模式加载最小的环境并挂载根文件系统。

而在紧急模式下,我们得到的是单用户 Shell,而不启动任何系统服务。因此,当我们无法启动系统进入救援模式时,就需要紧急模式。

启动 Ubuntu 22.04 进入救援或单用户模式

前往你想启动到救援或单用户模式的目标系统。在启动时按下 SHIFT + ESC 键,进入 GRUB 引导加载器页面。

Default-Grub-Screen-Ubuntu-22-04

选择第一个选项 “Ubuntu”,并按 e 键进入编辑模式。

在以 linux 开头的一行末尾,删除字符串 $vt_handoff 并添加字符串 systemd.unit=rescue.target

rescue-target-ubuntu-22-04

做完修改后,按 Ctrl + XF10 在救援模式下启动。

Troubleshooting-Commands-in-Rescue-Mode

进入救援模式后,运行所有的故障排除命令,并运行 systemctl reboot 命令来重启系统。

另一种启动系统进入救援模式的方法

重新启动系统并按下 ESC + Shift 键,进入 GRUB 启动界面。

选择第二个选项 “ Ubuntu 高级选项 Advanced Options for Ubuntu ”->选择“ 恢复模式 recovery mode ”选项并点击回车->选择 root(进入 root shell 提示符) root (Drop to root shell prompt)

下面是一个例子:

Boot-Ubuntu-22-04-Rescue-Mode

当你有了 root Shell,运行命令来恢复和修复系统问题,最后使用 systemctl reboot 来重启系统。

引导 Ubuntu 22.04 进入紧急模式

要启动系统进入紧急模式,首先进入 GRUB 页面。

Default-Grub-Screen-Ubuntu-22-04

选择第一个选项 “Ubuntu” 并按 e 键进行编辑。寻找以 linux 开头的一行,移到该行的末尾,删除字符串 $vt_handoff 并添加字符串 systemd.unit=emergency.target

Emergency-Mode-Ubuntu-22-04

Ctrl + XF10 将系统启动到紧急模式。

Command-in-Emergency-Mode-Ubuntu-22-04

同样,在紧急模式下,你可以在这个模式下执行所有的故障排除,完成后,就用 systemctl reboot 命令重启系统。

这篇文章的内容就这些。文章内容丰富,不要犹豫,请在你的技术朋友中分享它。请在下面的评论区发表你的疑问和反馈。


via: https://www.linuxtechi.com/boot-ubuntu-22-04-rescue-emergency-mode/

作者:Pradeep Kumar 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

这篇教程将介绍如何在 Ubuntu 22.04、20.04 和 18.04 LTS 版本中引导到 救援 Rescue 模式或 紧急 Emergency 模式。

你可能已经知道,在 RHEL 7 、RHEL 8 、Ubuntu 16.04 LTS 及其更新的版本的 Linux 发行版中 运行等级 Runlevels 已经被 系统目标 Systemd target 所替代。更多关于 运行等级 Runlevel 系统目标 Systemd targets 的信息,参考 这篇指南

这篇指南是针对 Ubuntu 编写的,但是,下面所给的步骤应该也适用于大多数使用 systemd 作为默认服务管理器的 Linux 发行版。

在进入主题前,让我们简单的理解:什么是 救援 rescue 模式 和 紧急 Emergency 模式,以及这两种模式的目的是什么。

什么是救援模式?

在 Linux 发行版中,救援模式等效于使用 SysV 作为默认的服务器管理器的 单用户 single user 模式。在救援模式中,将挂载所有的本地文件系统,将仅启动一些重要的服务。但是,不会启动一般的服务(例如,网络服务)。

救援模式在不能正常引导系统的情况下是很有用的。此外,我们可以在救援模式下执行一些重要的救援操作,例如,重新设置 root 密码

什么是紧急模式?

与救援模式相比,在紧急模式中,不会启动任何的东西。不会启动服务、不会挂载挂载点、不会建立套接字、什么都不会启动。你将所拥有的只是一个 原始的 shell 。紧急模式适用于调试目的。

首先,我们将看到如何在 Ubuntu 22.04 和 20.04 LTS 发行版中引导到救援模式或紧急模式。在 Ubuntu 22.04 和 20.04 LTS 中的过程是完全相同的!

在 Ubuntu 22.04 / 20.04 LTS 中引导到救援模式

我们可以使用两种方法来引导到救援模式。

方法 1

打开你的 Ubuntu 系统。在 BIOS 徽标出现后,按下 ESC 按键来显示 GRUB 菜单。

在 GRUB 菜单中,选择第一项,并按下 e 按键来编辑它。

GRUB Menu In Ubuntu 22.04 / 20.04 LTS

按下 按键,并找到以单词 linux 开头的一行代码,并在其结尾处添加下面的一行代码。为到达其结尾处,只需要按下 Ctrl + e 组合键,或使用你键盘上的 END 按键或 / 按键。

systemd.unit=rescue.target

Edit Grub Boot Menu Entries To Enter Into Rescue Mode In Ubuntu 22.04 / 20.04 LTS

在添加上面的代码行后,按下 Ctrl + x 组合键或按下 F10 按键来引导到救援模式。

数秒后,你将作为 root 用户来登录到救援模式(即单用户模式)。将会提示你按下回车键来进入维护。

下图是 Ubuntu 22.04 / 20.04 LTS 系统的救援模式的样子:

Boot Into Rescue Mode In Ubuntu 22.04 / 20.04 LTS

现在,在救援模式中做你想做的任何事。在救援模式中,在你执行任何操作前,你可能需要以 读/写模式来挂载根(/)文件系统。

mount -n -o remount,rw /

Mount Root File System In Read Write Mode In Ubuntu 22.04 / 20.04 LTS

在完成后,按下 Ctrl + d 组合键来引导到正常模式。或者,你可以输入下面的任意一个命令来引导到正常模式。

systemctl default

或者,

exit

如果你想重新启动系统,而不是引导到正常的模式,输入:

systemctl reboot

方法 2

在这种方法中,你不需要编辑 GRUB 启动菜单项目。

打开系统电源,并从 GRUB 启动菜单中选择 Ubuntu 高级选项 Advanced options for Ubuntu

Choose Advanced Options For Ubuntu From Grub Boot Menu

接下来,你将看到一个带有内核版本的可用的 Ubuntu 版本的列表。在 Ubuntu 中的 GRUB 启动菜单中选择 恢复模式 Recovery mode

Choose Recovery Mode In Grub Boot Menu In Ubuntu 22.04 / 20.04 LTS

数秒后,你将看到 Ubuntu 的 恢复 Recovery 菜单。从恢复菜单中,选择 进入 root 的 shell 提示符 Drop to root shell prompt 选项 ,并按下回车键。

Enter Into Root Shell Prompt In Ubuntu 22.04 / 20.04 LTS

现在,你将进入维护。

Ubuntu Maintenance Mode

通过输入下面的命令来 以读/写模式的方式 来挂载根(/)文件系统:

mount -n -o remount,rw /

Mount Root File System In Read Write Mode In Ubuntu

在救援模式中做你想做的任何事。

在完成后,输入 exit 来返回到恢复菜单。

exit

最后,选择 救援正常启动 Resume normal boot 选项,并按下回车键。

Boot Into Normal Mode In Ubuntu

再次按下回车键来退出恢复模式,并继续引导到正常模式。

Exit The Recovery Mode In Ubuntu

如果你不想引导到正常模式,从救援模式中输入 reboot 并按下回车键来重新启动你的系统。

在 Ubuntu 22.04 / 20.04 LTS 中引导到紧急模式

当 GRUB 菜单出现时,按下 e 按键来编辑它。

GRUB Menu In Ubuntu 22.04 / 20.04 LTS

找到以单词 linux 开头的一行代码,并在其结尾处添加下面的一行代码:

systemd.unit=emergency.target

Edit Grub Boot Menu Entries To Enter Into Emergency Mode In Ubuntu 22.04 / 20.04 LTS

在添加上面的代码行后,按下 Ctrl + x 组合键,或按下 F10 按键来引导到紧急模式。

数秒后,你将作为 root 用户来进入维护。将会提示你按下回车键来进入紧急模式。

下图是 Ubuntu 22.04 / 20.04 LTS 系统的紧急模式的样子:

Boot Into Emergency Mode In Ubuntu 22.04 / 20.04 LTS

现在,在紧急模式中做你想做的任何事。在紧急模式中,在你执行任何操作前,你可能需要以读/写模式来挂载根(/)文件系统。

mount -n -o remount,rw /

在完成后,按下 Ctrl + d 组合键来引导到正常模式。或者,你可以输入下面的任意一个命令来引导到正常模式。

systemctl default

或者,

exit

如果你想重新启动系统,而不是引导到正常模式,输入:

systemctl reboot

在 Ubuntu 18.04 LTS 中引导到救援模式

启动你的 Ubuntu 系统。当 GRUB 菜单出现时,选择第一项并按下按键 e 来编辑。(为到达其行尾处,只需要按下 Ctrl + e 组合键,或使用你键盘上的 END 按键或 / 按键):

Grub Menu

如果你没有看到 GRUB 菜单,只需要在 BIOS 徽标出现后,按下 ESC 按键来显示 GRUB 菜单。

找到以单词 linux 开头的一行代码,并在其结尾处添加下面的一行代码(为到达其行尾处,只需要按下 Ctrl + e 组合键,或使用你键盘上的 END按键或/→` 按键):

systemd.unit=rescue.target

Edit Grub Menu

在添加上面的代码行后,只需要按下 Ctrl + x 组合键,或按下 F10 按键来引导到救援模式。数秒后,你将作为 root 用户进入维护(即单用户模式)。

下图是 Ubuntu 18.04 LTS 服务器系统的救援模式的样子:

Ubuntu Rescue Mode

接下来,输入下面的命令来挂载根(/)文件系统为读/写模式。

mount -n -o remount,rw /

在 Ubuntu 18.04 LTS 中引导到紧急模式

引导你的 Ubuntu 到紧急模式基本与上述方法相同。你所需要做的全部工作是,在编辑 GRUB 菜单时,将 systemd.unit=rescue.target 替换为 systemd.unit=emergency.target

Edit Grub Menu

在你添加 systemd.unit=emergency.target 后,按下 Ctrl + x 组合键,或按下 F10 按键来引导到紧急模式。

Ubuntu Emergency Mode

最后,你可以使用下面的命令来以读/写模式的方式来挂载根(/)文件系统:

mount -n -o remount,rw /

在救援模式和紧急模式之间切换

如果你正在救援模式中,你不必像我上述提到的那样来编辑 GRUB 的菜单启动项。相反,你只想要输入下面的命令来立刻切换到紧急模式:

systemctl emergency

同样,为从紧急模式切换到救援模式,输入:

systemctl rescue

总结

现在,你知道了什么是救援模式和紧急模式,以及如何在 Ubuntu 22.04 、20.04 和 18.04 LTS 系统中启动到这些模式。正如我已经提到的,在这里提供的这些步骤应该也适用于大多数当前使用 systemd 作为默认服务管理器的 Linux 发行版。


via: https://ostechnix.com/how-to-boot-into-rescue-mode-or-emergency-mode-in-ubuntu-18-04/

作者:sk 选题:lkxed 译者:robsean 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

如果你曾经使用过 Linux 桌面,你一定见过这个屏幕。这就是所谓的 GRUB 屏幕。是的,它的字母全部都是大写的。

Remember this screen? This is GRUB

在 “ Linux 黑话解释 Linux Jargon Buster ”系列的这一个章节中,我将告诉你 GRUB 是什么,以及它有什么用处。此外,我还会简要地介绍一下配置和定制的部分。

GRUB 是什么?

GRUB 是一个用于加载和管理系统启动的完整程序。它是 Linux 发行版中最常见的 引导程序 bootloader 。引导程序是计算机启动时运行的第一个软件。它加载 操作系统的内核,然后再由内核初始化操作系统的其他部分(包括 Shell、显示管理器桌面环境 等等)。

引导程序和引导管理器

我不想现在就把你搞糊涂,但是我认为这个话题是不可避免的。 引导程序 boot loader 引导管理器 boot manager 之间有着一条模糊的界限。

你已经知道了引导程序是什么。它会首先启动,然后将内核加载到内存中并执行它。引导管理器则允许你在不同的操作系统之间进行选择(如果你的电脑上不止一个操作系统的话)。引导管理器并不会直接加载系统。

随着 Linux 内核 3.3 版本的推出,Linux 内核包括了一个内置的 EFI 引导程序。事实上,任何一个支持 EFI 的系统都包括一个 EFI 引导程序。在支持 EFI 的系统中,固件会读取 EFI 系统分区 EFI System Partition (ESP)中的 EFI 文件,从而获得启动信息。

这里插入一张图片,图中显示了带有 ESP 分区的分区表:

GRUB 既是一个引导程序,也是一个引导管理器。一会儿我再来谈 GRUB。让我们先看看其他类似 GRUB 的程序。

小知识:GRUB 是 GRand Unified Bootloader(大一统引导程序) 的首字母缩写。

GRUB 屏幕上的那些行是什么意思?

你会在 GRUB 屏幕上看到几行字。这些行对于不同的设置、不同的发行版会有所不同。

通常情况下,第一行是你的 Linux 发行版。如果你看到类似高级选项的东西,你可以进入其中,找到一些以 “linux-generic-x-y-z” 等开头的行。

当你的 Linux 发行版更新内核版本时,它至少会保留一个旧版本。你可以选择启动到旧的 Linux 内核,以防你的系统遇到新更新的 Linux 内核的任何问题。

在基于 Ubuntu 的发行版中,你也可以看到一个恢复选项。

在高级选项下,通常有一个旧的内核版本和恢复选项

在最后,你可能会看到一个条目,如系统设置或 UEFI 设置,以访问系统的 BIOS 设置。

还有哪些类似 GRUB 的引导管理器?

GRUB 是 Linux 中最流行的引导管理器。但它并不是唯一的一个。有一个高度可定制的引导管理器,名字叫做 rEFInd 引导管理器,它同样受到了一些 Linux 用户的喜爱。

定制化的 rEFInd 引导管理器屏幕 | 图片来源:kofler.info/pop_os

还有一个基于文本的引导管理器,名字叫做 systemd-boot。你可以猜到这是专为基于 systemd 的 Linux 发行版准备的。有一些发行版正在使用 systemd-boot,比如 Pop OS。

Pop OS 中的 systemd-boot | 图片来源:kofler.info/pop_os

访问或编辑 GRUB

通常你看到的 GRUB 屏幕是它的菜单界面。如果你安装了一个以上的操作系统,它会允许你在其中选择一个来启动。如果你的 Linux 发行版安装了不止一个内核,你也可以选择加载不同的内核。

根据不同的 Linux 发行版的配置,你的 GRUB 菜单上可能会有一些其他选项。

你可以在 GRUB 菜单界面按 e 键来编辑菜单项。这样你就可以在内核加载前修改它的参数。例如,在某些情况下,禁用内核提供的图形驱动可以帮助你解决 Linux 系统在启动时卡住的问题

你也可以在 GRUB 菜单界面上按 c 键来进入 GRUB 的命令行菜单。

GRUB 配置文件

你在菜单界面里对 GRUB 所做的任何改变都是暂时的。如果你想对 GRUB 做一些永久性的改变,比如改变默认的超时时间,你可以在 Linux 系统启动后修改 GRUB 配置文件。

默认的 GRUB 配置文件是 /etc/default/grub。还有一个 /etc/default/grub.d 目录,里面也存放一些配置。你可以直接编辑 /etc/default/grub 文件,但是我还是建议通过在这个目录中添加配置文件(.cfg 文件)进行额外的修改。

默认的 GRUB 配置文件

你必须 更新 GRUB 才能使这些修改生效

使用 GRUB 定制器来定制 GRUB

如果你不太习惯 在终端里使用文本编辑器编辑文件,你可以 使用一个叫做 GRUB 定制器的图形工具

它允许你改变启动顺序、默认超时时间等等。你还可以用它来把 GRUB 的背景设置成一张自定义的墙纸。

GRUB 定制器可以在 Ubuntu 20.04 中从 Universe 仓库安装,在 Ubuntu 18.04 中 通过 PPA 安装。它可以 通过 AUR 在基于 Arch Linux 的发行版中使用。

总结

至此,本文几乎涉及到了所有与 GRUB 相关的简单内容。至于 EFI、引导加载和 GRUB 本身,它们都是详细而复杂的话题,因此不在本文的讨论范围之内。这篇文章旨在给你一个关于 GRUB 引导程序的总体概述。

或许我以后会写一篇关于 GRUB 的详细指南,解释它底层的一些细节。目前,如果你想了解更多关于 GRUB 的信息,你可以在你的 Linux 终端里使用 info grub 命令访问到 GRUB 文档。

你可以在终端中访问 GRUB 手册

我希望你现在对什么是 GRUB 有了一点点的了解。这里有一个 GIF 动图供你一乐。

什么是 GRUB? UEFI 再也伤害不到我了 :)

或许我没有回答你关于 GRUB 的所有疑问,但请随时在评论区告诉我。我可能会根据你的问题或建议来更新这篇文章。


via: https://itsfoss.com/what-is-grub/

作者:Abhishek Prakash 选题:lujun9972 译者:lkxed 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在这篇文章中,你将学习在 Ubuntu 或任何其它 Linux 发行版上更新 grub 。你也将学习一个或两个关于更新这个 grub 过程如何工作的事情。

如何更新 grub

Ubuntu 和很多其它的 Linux 发行版提供一个易使用的称为 update-grub 命令行实用程序。

为更新 grub ,你所要的全部工作就是使用 sudo 在终端中运行这个命令。

sudo update-grub

你应该看到一个像这样的输出:

[email protected]:~$ sudo update-grub
[sudo] password for abhishek:
Sourcing file `/etc/default/grub'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.0.0-37-generic
Found initrd image: /boot/initrd.img-5.0.0-37-generic
Found linux image: /boot/vmlinuz-5.0.0-36-generic
Found initrd image: /boot/initrd.img-5.0.0-36-generic
Found linux image: /boot/vmlinuz-5.0.0-31-generic
Found initrd image: /boot/initrd.img-5.0.0-31-generic
Found Ubuntu 19.10 (19.10) on /dev/sda4
Found MX 19 patito feo (19) on /dev/sdb1
Adding boot menu entry for EFI firmware configuration
done

你可能看到一个类似的称为 update-grub2 的命令。不需要在 update-grubupdate-grub2 之间感到害怕或不知所措。这两个命令执行相同的动作。

大约在 10 年前,当 grub2 刚刚被引进时,update-grub2 命令也被引进。现在,update-grub2 只是一个链接到 update-grub 的符号,它们都更新 grub2 配置(因为 grub2 是默认的)。

不能找到 update-grub 命令?这里是在这种情况下该做什么

它可能是,你的 Linux 发行版可能没有可用的 update-grub 命令。

在这种情况下你该做什么?你如何在这样一个 Linux 发行版上更新 grub ?

在这里不需要惊慌。update-grub 命令只是一个入口,用于运行 grub-mkconfig -o /boot/grub/grub.cfg 来生成 grub2 配置文件。

这意味着你可以在任意 Linux 发行版上使用下面的命令更新 grub :

sudo grub-mkconfig -o /boot/grub/grub.cfg

当然,记住 update-grub 命令比上面的命令容易很多,这是为什么它在一开始被创建的原因。

update-grub 是如何工作的?

当你安装一个 Linux 发行版时,它(通常)要求你安装 grub 启动引导程序

grub 的一部分安装在 MBR/ESP 分区上。grub 的剩余部分保留在 Linux 发行版的 /boot/grub 目录中。

依据它的 man 页面update-grub 通过查找 /boot 目录来工作。所有以 vmlinuz- 开头的文件将被作为内核来对待,并且它们将得到一个 grub 菜单项。它也将为与所找到内核版本相同的 ramdisk 镜像添加 initrd 行。

它也使用 os-prober 为其它操作系统查找所有磁盘分区。如果找到其它操作系统,它添加它们到 grub 菜单。

Representational image of Grub Menu

为什么你需要更新 grub ?

在有很多场景下你需要更新 grub。

假设你修改 grub 配置文件(/etc/default/grub)以 更改默认启动顺序 或减少默认启动时间。除非你更新 grub ,否则你的修改将不会生效。

另一种情况是,你在同一个电脑系统上安装多个 Linux 发行版。

例如,在我的 Intel NUC 上,我有两个磁盘。第一个磁盘有 Ubuntu 19.10 ,并且我在其上面安装了 Ubuntu 18.04 。第二个操作系统(Ubuntu 18.04)安装了其自己的 grub ,现在 grub 启动屏幕由 Ubuntu 18.04 grub 控制。

在第二个磁盘上,我安装了 MX Linux ,但是这次我没有安装 grub。我希望现有的 grub(由 Ubuntu 18.04 控制)来处理所有的操作系统项目。

现在,在这种情况中,在 Ubuntu 18.04 上的 grub 需要更新,以便它能够看到 MX Linux

如上图所示,当我更新 grub 时,它在 18.04 上找到很多安装的 Linux 内核, 以及在不同的分区上 Ubntu 19.10 和 MX Linux 。

如果你想让 MX Linux 控制 grub ,我可以使用 grub-install 命令来在 MX Linux 上安装 grub,然后在 MX Linux 上的 grub 将开始控制 grub 启动屏幕。你已经明白这点,对吧?

使用一个像 Grub Customizer 的 GUI 工具是在 grub 中进行更改的一种简单的方法。

最后…

最初,我打算保持它为一篇短文作为一种快速提示。但是后来我想解释一些与之相关的东西,以便(相对)新的 Linux 用户能够学到更多,而不仅仅是一个简单命令。

你喜欢它吗?你有一些问题或建议吗?请随意发表评论。


via: https://itsfoss.com/update-grub/

作者:Abhishek Prakash 选题:lujun9972 译者:robsean 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出