我正在尝试使用闪存驱动器作为启动 Ubuntu 的密钥。我将 Ubuntu 安装在与 Windows 不同的硬盘上。我想做的是让它默认启动 Windows,但插入闪存驱动器后启动 Ubuntu。我似乎无法弄清楚。我在安装 Ubuntu 时尝试将引导加载程序安装在闪存驱动器上,但这似乎不起作用,而且我一直收到某种错误。
任何帮助将非常感激。
答案1
你知道这很简单。你想要实现的是创建一个分区,在其上安装 ubuntu,无需引导加载程序,然后使用安装在 USB 驱动器上的引导加载程序来启动 ubuntu 安装。
您只需调整一些用于创建多启动USB的步骤即可。
使用这个脚本作为示例,这是可以实现的。
概括:
- 首先安装没有引导加载程序的 ubuntu。我认为使用 -b 标志运行 ubiquity 应该可以解决问题。安装 ubuntu 后不要删除安装介质。首先我们需要安装 grub2。
- 清理 USB 驱动器。并创建 gpt 分区表
- 假设您有 UEFI 系统。创建一个不小于 50 MB 大小的分区。将其命名为 EFI。使用 Fat32 格式化。
- 现在创建另一个分区,将其命名为 Files。使用 FAT32/ext* 格式化。
- 在 usb 上安装 grub bootloader。现在我不知道您是否能够从 windows 访问第二个分区。
- 创建一个指向您的 ubuntu 安装的 grub.cfg 文件。
命令:
假设USB设备是/dev/sdb
。大小为16GB。
$ sgdisk --zap-all /dev/sdb
使用 fdisk 创建新的 gpt(分区表)
$ fdisk /dev/sdb
输入 n(新的 gpt 分区表),然后输入 w(写入)。
$ sgdisk --new 1::+50M --typecode 1:ef00 --change-name 1:"EFI" /dev/sdb
$ sgdisk --new 2::"rem_space": --typecode 2:8300 --change-name 2:"Files" /dev/sdb
我为此使用了 cgdisk。
$ wipefs -af /dev/sdb1
$ mkfs.vfat -v -F 32 /dev/sdb1
$ wipefs -af /dev/sdb2
$ mkfs.ext4 -L Files /dev/sdb2
暂时安装它们。
$ cd tmp
$ mkdir EFI Files
$ mount /dev/sdb1 EFI
$ mount /dev/sdb2 Files
$ mkdir -p Files/boot
安装 GRUB。
$ grub-install --target=x86_64-efi --efi-directory=/tmp/EFI --boot-directory=/tmp/Files/boot --removable --recheck
就是这样。
- 现在将 grub.cfg 文件复制并粘贴到 /tmp/Files/boot/grub,可以从 live ISO 复制或从互联网上下载并进行相应的格式化。
编辑:要以普通用户身份创建 grub.cfg,请在文件分区上递归使用 chown。
答案2
下载一个名为的程序由美,一个 Win 程序,然后制作可启动 USB。
从 LINUX 运行 YUMI:WINE 以前曾用于从 Linux 操作系统运行 YUMI,但 Fat32 格式化 USB 驱动器除外。
YUMI UEFI 版本正在进行中,它利用 GRUB2 进行 EFI 和 BIOS 启动。