grub 启动项,grub命令行启动

  grub 启动项,grub命令行启动

  Grub可以以某种方式引导多种内核,但是对于一些自由操作系统,我们需要使用特殊的方法。如何启动操作系统:

  Grub有两种不同的引导方法。一种是直接引导操作系统,另一种是将引导权交给另一个引导加载程序,后者将引导操作系统。一般来说,前者更令人满意,因为我们不需要安装和维护另一个引导加载程序。Grub足够灵活,可以从单个磁盘或分区加载操作系统。然而,后一种方法也是必要的,因为Grub并不支持所有现有的操作系统。

  如何通过Grub直接引导:

  Grub支持多种引导格式。为了方便起见,Grub还将支持Linux、FreeBSD、NetBSD和OpenBSD的引导。如果我们想引导其他操作系统,我们必须使用链加载来引导。

  通常,Grub的启动步骤如下:

  使用root命令将Grub的引导设备设置为存储系统引导映像的驱动器。

  使用kernel命令加载内核映像。

  如果我们仍然需要模块,使用module命令或modulenounzip命令来加载所需的模块。

  运行boot命令。

  Linux、FreeBSD、NetBSD、OpenBSD都可以通过类似的简单方法启动。我们使用命令kernel来加载内核,然后运行命令boot。如果内核需要一些参数,只需要在内核的文件名后面加上需要的参数即可。

  如果我们想启动一个Grub不支持的操作系统,我们需要用链式加载来启动它。通常,引导程序存储在系统安装分区的引导扇区中。这种系统的引导如下:

  1用rootnoverify命令设置Grub的引导设备:

  grub rootnoverify (hd0,0)

  2使用makeactive命令设置活动标志:

  grub makeactive

  3使用命令chainloader命令加载启动程序:

  grub链式装载机1

  表示Grub将从起始分区读取一个扇区。

  4执行命令boot

  在下面的小节中,我们来谈谈在启动一个具体的系统时应该注意的一些问题:

  GNU/Hurd

  因为GNU/Hurd适合多次启动,所以我们可以轻松启动,并没有什么特别之处。但是我们不要忘记,我们必须为内核指定引导分区:

  1设置Grub的引导设备。通常,我们可以使用以下命令来帮助我们:

  find /boot/gnumach

  2使用以下命令加载内核和模块:

  grub kernel/boot/gnumach root=hd0s 1

  grub模块/引导/服务器引导

  执行引导命令。

  GNU/Linux

  我们可以通过Grub轻松启动Linux。启动方法如下:

  1设置Grub的引导设备。通常,以下命令可以帮助我们确定引导分区:

  find /vmlinuz

  2加载内核:

  grub内核/vmlinuz root=/dev/hda1

  如果我们需要指定一个参数,我们可以像下面这样指定它:

  grub内核/vmlinuz root=/dev/hda1 vga=ext

  我们可以在Linux的源代码树中获得所有可用的选项。

  3如果我们使用initrd,我们将执行initrd命令:

  grub initrd /initrd

  执行引导命令。

  这里我们应该注意的是,如果我们使用mem选项来指定内核使用的内存,我们也应该为Grub指定相同大小的内存。

  FreeBSD:

  Grub可以以ELF或者a.out格式直接加载到内核中。但是我们不建议这样做,因为有时候FreeBSD的引导接口变化很大,所以有时候Grub传入内核参数不正确。在这种情况下,我们建议使用更灵活的/boot/loader。例如:

  grub内核/引导/加载程序

  grub靴子

  NetBSD:

  Grub可以直接以ELF或a.out格式启动NetBSD,我们可以通过以下步骤来实现:

  1指定Grub的引导设备。

  使用2 kernel命令加载内核。如果我们想以ELF格式开始,我们将添加- type=netbsd选项。例如下面的命令:

  grub kernel-type=netbsd/netbsd-elf

  执行引导命令。

  OpenBSD:

  与NetBSD的启动命令相同。

  DOS/WINDOWS

  Grub不能直接启动WINDOWS,所以我们只能通过链式加载来启动这样的系统。但是,他们的引导程序有一些特殊的定义,所以我们不能仅仅通过使用chainload来做好我们的工作。为了克服这个问题,Grub为我们提供了两个帮助函数。

  如果我们没有在第一个硬盘上安装DOS或WINDOWS,就需要使用硬盘交换技术,因为这样的系统只能从第一个硬盘启动,而不能从其他硬盘启动。在Grub中,我们需要使用map命令,如下所示:

  grub映射(hd0) (hd1)

  grub映射(hd1) (hd0)

  这个命令在我们的第一个硬盘和第二个硬盘之间进行虚拟交换。

  这里要注意的是,如果系统使用BIOS访问磁盘,这种方法是非常有效的。如果系统使用特殊驱动器,此方法将不起作用。

  这里还有一个问题:如果我们在一个硬盘上安装了多个DOS或WINDOWS系统,并且有多个DOS或WINDOWS的主分区,那么启动时就会混淆。我们应该避免这种情况,如果做到了,也可以解决。我们可以使用分区隐藏技术。

  如果我们隐藏一个DOS或WINDOWS分区,DOS或WINDOWS系统会忽略这个分区。如果我们取消隐藏一个DOS或WINDOWS分区,DOS或WINDOWS会检测到这个分区。因此,如果我们在第一个硬盘的第一个分区和第二个分区上安装DOS或WINDOWS系统,并且我们想开始复制第一个分区,我们应该这样做:

  grub取消隐藏(hd0,0)

  幼虫皮(hd0,1)

  grub rootnoverify (hd0,0)

  grub makeactive

  grub靴子

  操作系统

  要启动这个系统,我们需要使用- force选项来链接loade,如以下命令所示:

  grub rootnoverify (hd1,0)

  grub链式装载机- force 1

  grub makeactive

  grub靴子

  QNX:

  QNX似乎使用了一个更大的引导加载程序,所以我们必须像下面这样引导他:

  grub rootnoverify (hd1,1)

  grub链式装载机4

  grub靴子

  个人资料:

  从这里我们可以看到,如果我们要启动一个系统,我们必须输入许多命令。Grub为我们提供了一个菜单界面来解决这个问题。从这个启动菜单中,我们可以选择我们想要启动的系统。

  从菜单开始,我们需要在启动目录中创建一个名为men.lst的配置文件。我们来分析一下这个配置文件。

  该文件头包含一些与菜单界面相关的常规设置和选项。我们可以把这些内容放在任何内容之前。

  #

  #启动菜单配置文件示例

  #

  正如我们所想的,这些语句是注释行。Grub会忽略Grub中以#和空格开头的那些。

  #默认情况下,引导第一个条目。

  默认为0

  第一个输入是默认选择。这里要注意的是,它是以0开始的,而不是1。

  # 30秒后自动启动。

  超时30

  如评论所说,默认系统会在30秒后自动在Grub启动,除非我们不得不做出选择。

  #退回到第二个条目。

  回退1

  如果因为某种原因,第一个方案效果不好,我们可以进入第二个系统。

  现在我们要开始真正的系统定义了。这里的每一个选择都是由一些特殊的命令开始的:title,然后是动作的描述。这里要注意的是,每个内容后面都没有引导命令。这是因为如果Grub成功加载了其他命令,它将自动执行引导命令。

  title命令的参数是启动屏幕上显示的内容。因为title是要显示的参数,所以我们可以在这里写任何内容。

  #用于引导GNU/Hurd

  标题GNU/Hurd

  根(hd0,0)

  kernel/boot/gnumach . gz root=hd0s 1

  模块/boot/serverboot.gz

  这将从第一块硬盘启动GNU/Hurd。

  #用于引导GNU/Linux

  标题GNU/Linux

  内核(hd1,0)/vmlinuz root=/dev/hdb1

  这将从第二块硬盘启动GNU/Linux。

  #用于启动机器(从软盘获取内核)

  标题犹他州Mach4多重引导

  根(hd0,2)

  暂停插入软盘now^G!

  内核(fd0)/引导/内核根=hd0s3

  这将启动Mach系统,但是这个系统的内核在软盘上,而文件系统在hd0s3上。它还将包含一个暂停行,这将有助于Grub在执行其他命令之前显示一个提示和暂停。

  #用于引导FreeBSD

  标题免费b

  根(hd0,2,a)

  内核/引导/加载程序

  这个内容会从第三个硬盘的第三个个人电脑片的一个分区启动FreeBSD .

  #用于引导操作系统/2

  标题操作系统/2

  根(hd0,1)

  激活

  #从第一个扇区链式加载操作系统/2引导加载程序

  链式装载机一

  #这类似于“链条负载”,但是加载特定的文件

  #chainloader /boot/chain.os2

  这个内容会使用链式负载启动操作系统/2

  标题视窗NT /视窗95启动菜单

  根(hd0,0)

  激活

  链式装载机一

  #如果安装了Windows NT,则用于加载磁盘操作系统

  # chainload /bootsect.dos

  与上面的内容相同的,只是用来启动窗户。

  #用于将食物安装到硬盘中

  标题将食物安装到硬盘中

  根(hd0,0)

  设置(hd0)

  这个命令内容会将食物安装在硬盘上。

  #改变颜色。

  标题改变颜色

  颜色浅绿/棕色闪烁-红色/蓝色

  在最后的一个内容中我们使用了颜色命令来改变启动菜单的颜色。这是一个相对特殊的命令,因为这个命令可以在命令行和菜单中使用。在食物还有许多类似的命令。

grub 启动项,grub命令行启动