USB 驱动器上的 GRUB -- 添加操作系统

Sea*_*een 9 dual-boot kernel usb boot-loader grub-legacy

一些背景:

  • 主要来自 Windows 背景(尽管我熟悉 Ubuntu 等)并使用 Windows 7 机器完成此任务
  • 已成功将 GRUB 安装到 USB 驱动器(8 GB FAT32 驱动器)的 MBR:
  • 在驱动器上创建了一个基本结构:/boot/grub、/boot/img、/boot/kernel

题:

我有一些基本的初学者问题,但我无法通过 Google/StackExchange 等找到答案。

  • 我知道 /boot/img/[SystemName] 文件夹将存储特定系统的映像,该系统可能使用存储在 /boot/kernel 目录中的各种(或相同)版本的 linux 内核(至少,我就是这样想设置它)
  • 但是,这些系统中的大多数在其目录中只有一个名为“linux”的内核(未说明版本)。我可以找出这些都使用哪个内核,但是让内核本身复制到 /boot/kernel 的最佳位置是什么?
  • 在我获得内核之后,我想剩下的主要是将设备复制到 /boot/img/ 并在 menu.lst 中创建正确的条目,对吗?一旦我可以参考内核,我就可以逐个系统地执行此操作。

总体的目标:

我正在尝试创建一个 8GB 的​​ USB 闪存驱动器,它允许我从 GRUB 启动菜单启动多个操作系统。要添加或减少操作系统,我只想将适当的文件复制到 /boot/img/[SystemName] 和 /boot/kernel 文件夹中,然后编辑 menu.lst 文件。因此,第一步是找到许多这些操作系统共享的内核,因为我希望减少重复。

小智 1

这里有两个指南:

  • Unity Linux 论坛中的一份指南
  • 另一个在PClos

我认为两者都为每个内核使用单独的分区。

“ /boot/grub/menu.lst ”中的条目如下所示:

title Unity-2010 -- With Persistence
kernel (hd0,0)/isolinux/vmlinuz vga=788 livecd=livecd fromusb
root=Label=Unity-2010 changes_dev=LABEL=Unity-2010 acpi=on fstab=rw,noauto
initrd (hd0,0)/isolinux/initrd.gz

title Unity-2010 -- No Persistence
kernel (hd0,0)/isolinux/vmlinuz vga=788 livecd=livecd fromusb
root=Label=Unity-2010  acpi=on fstab=rw,noauto
initrd (hd0,0)/isolinux/initrd.gz
Run Code Online (Sandbox Code Playgroud)