命令行分区重新引导select

我想从X86 Linux机器上的命令行安排重新启动到临时分区,而不需要手动干预。 这可以做到吗?

正如我所看到的那样,现在只有一个选项。使用程序更改引导装载程序configuration文件,然后在引导到临时分区(正如您可能想象的是非常危险和愚蠢的)之后恢复。

我认为你正在寻找一次启动解决scheme 。 下面的例子用Grub v1显示; 他们应该可以轻松转换成Grub v2风格的configuration。

您需要为临时分区添加一个基本的启动configuration。 你的grubconfiguration可能如下所示。 您可以通过执行grub-set-default 1然后reboot来激活重新启动到临时分区。

在使用Grub v1的Debian上,启动configuration是/boot/grub/menu.lst ,保存的默认启动被写入/boot/grub/defaultgrub-set-default命令将此文件中的值更改为在重新引导时自动引导的引导条目。 重新启动时, grub启动该项,并且savedefault 0 /boot/grub/default复位回到后续启动的常规启动项。

有了这个解决scheme,您不需要编辑configuration,并在每次启动临时分区时重置它。 但是,您确实需要在grubconfiguration文件中开始。 如果您事先不知道kernel和/或initrd行,那么可以使它与链式链接器一起工作。 (我从来没有尝试过使用Grub来加载Grub,所以我不知道这会起什么作用。)

  default saved # boot entry 0 title Default boot root hd(0,0) kernel /boot/vmlinuz-2.6.xx UUID=xxxxxxx ro savedefault # boot entry 1 title Temp boot root hd(0,1) kernel /boot/vmlinuz UUID=yyyyyyyy ro savedefault 0 # boot entry 2, chainloader version of boot entry 1 title Temp boot root hd(0,1) savedefault 0 makeactive chainloader +1 

我看不出有什么危险或愚蠢的事情:

  • 添加行以从临时分区引导
  • 使临时分区默认
  • 重启
  • 完成后,请删除线条并将其设置回去

如果出现任何问题,您可以随时select正常的操作系统。

我有一个问题,你打算做什么? 无论你做什么在chroot或虚拟机上做更简单的事情。

启动的性质意味着启动时唯一可用的东西是启动程序及其configuration。 因此,如果你要修改任何东西,它将不得不在bootloader的某个地方。

幸运的是,修改configuration (在grub中是一个文本文件)是一个非常安全的操作。 您甚至可以保存备份副本以重新使用。 如果你遇到困难的情况,grub本身可以从命令行工作。

如果你想看到“危险”,那将是那些重写分区表的选项或程序! Grub在几年前已经(或者也许已经)有了这样一个命令,而且我第一次尝试的时候就把笔记本擦掉了。 (我修好了,但花了长时间)。

你的项目的关键是(在grub中),有一个关键字的默认值 ,你可以用它来指定你想从哪个分区启动。 我认为只是移动该关键字将改变你的启动。 你也可以考虑从一个拇指驱动器启动作为你的“临时”启动分区。