我有一个 16GB USB 驱动器。我发现 USB 驱动器上可以有多个分区。我需要创建两个分区,一个包含 Linux 操作系统,另一个用于存储文件。与任何其他系统类似的系统(具有不同文件存储分区的操作系统分区)。我希望Windows能够访问存储分区,这意味着USB中存储分区应该位于操作系统分区之前。问题是,当存储分区位于操作系统分区之前时,操作系统分区毫无用处,并且如果我在启动时选择 USB,BIOS 无法检测到操作系统。我认为安装 GRUB 可能会解决问题,但“install-grub”会引发错误。
答案1
具有 2 个(或更多)分区的可启动 USB 拇指驱动器,以及用于访问数据分区的窗口。
编辑:此示例使用 ISO 而不是已安装的操作系统。针对已安装的操作系统进行调整应该很简单。
Windows 和其他系统可能只能看到第一的即使有多个分区,也要对 USB 设备进行分区。因此,请将您的第一个主分区设置为 fat32 或 NTFS 分区,以便 Windows 可以看到并使用它。
- 分区 1 - ntfs 或 vfat
- 分区 2 - ext4
- 分区 3 - Linux 交换区
第二个分区是存储可启动 iso 或已安装操作系统的位置。使用 grub 加载并选择您要使用的操作系统。
脚步:
1:将 USB 设备上的分区表清零。
dd if=/dev/zero of=/dev/sdx bs=512 count=4
2:创建分区(使用cli“fdisk”或gui“gparted”)
创建“msdos”类型的分区表。
创建分区。
格式化分区。
3:将 grub 引导加载程序安装到 USB 设备。
将 USB 上的 ext 分区挂载到 PC。 mount /dev/sdx2 /mnt/usbp2
sudo grub-install --boot-directory /mnt/usbp2/boot /dev/sdx
核实:如果这些存在的话,到目前为止一切都很好......
/mnt/usbp2/boot/grub/fonts
-- 最小 unicode.pf2
/mnt/usbp2/boot/grub/i386-pc
-- *.mod 模块加载到 grub.cfg 中
/mnt/usbp2/boot/grub/local
-- 语言
/mnt/usbp2/boot/grub/grubenv
-- 环境变量存储
4grub.cfg
:为主机上的操作系统创建文件。
sudo grub-mkconfig --output=/mnt/usbp2/boot/grub/grub.cfg
通过启动到 USB 进行测试。
当您启动 USB 驱动器时,您应该会获得主机 PC 上的操作系统列表,而不是空 USB,但这将测试 USB 上的 grub 和 grub 配置。
5:将支持文件复制到 USB。
iso文件
从clonezilla 等安装的操作系统映像。
内存盘二进制文件-- 从 syslinux 获取
6grub.cfg
:在 USB 上编辑您的 ISO 和已安装的操作系统。
每个实时 ISO 可能需要不同的 grub 信息。
如果您只获得 grub 命令行,则grub.cfg
可能包含错误。从最小化开始,就像单个 ISO 一样。