Tom*_*liy 5 grub2 dual-boot fat32
安装 Ubuntu 16.04 期间是否可以在 fat32 分区上安装 GRUB?
当我在安装过程中尝试执行此操作时,会打印以下错误:
文件系统类型 fat32 不能挂载
/boot,因为它不是一个功能齐全的 Unix 文件系统。请选择不同的文件系统,例如 ext2。
我需要它进行双启动(与 Windows 一起),并且我想从 Windows 编辑 GRUB 配置以更改启动屏幕上的默认操作系统,而 Windows 上的文件系统驱动程序没有任何问题。
我确定这是一项常见的任务。
此外,我经常在某些示例(可引导的 USB 闪存驱动器等)中看到 fat32 上的 GRUB,所以我认为原则上可以在 fat32 上安装 GRUB。
根据你所说的你想要做的,重新排序默认启动顺序,最好的机制是重新编号/重命名 /etc/grub.d 中的文件,将(Windows?)启动放在第一位(30_os-prober 到 06_os-例如探测器)。然后 update-grub 将按照您想要的方式重写 grub.cfg,并为每次更新保留该顺序。不建议直接编辑 grub.cfg,因为它经常被内核更新重写。
现在您可以将 grub 安装到 FAT 文件系统,但不能在 Ubuntu 安装期间安装。我曾经这样做过一次,当时我擦除了磁盘上的 Windows MBR 并且无法重新安装它,所以我使用 grub 作为引导加载程序,将引导目录放在一个小的 FAT 工具或恢复 Windows 分区上。请注意,我并没有尝试使用此设置进行双引导,因此我不需要担心 grub.cfg 更新。
不要混淆 Ubuntu 安装如何将 grub 限制为手动运行时 grub 可以执行的操作。将 Ubuntu 安装到 ext4,接受默认 grub 安装(MBR 和 grub 文件位于 /boot/grub 中)。运行 Ubuntu,并将您的 FAT 挂载到 /mnt(假设您对第二个分区的 FAT 的描述):
sudo mount -tvfat /dev/sda2 /mnt
Run Code Online (Sandbox Code Playgroud)
在那里创建一个名为 boot 的目录
sudo mkdir /mnt/boot
Run Code Online (Sandbox Code Playgroud)
手动安装grub到FAT分区:
sudo grub-install --boot-directory=/mnt
Run Code Online (Sandbox Code Playgroud)
您的 grub 安装现在运行 FAT 分区上的文件,您可以从 Windows 编辑它们。请注意任何“垃圾”,例如 Windows 编辑器可能放入 grub.cfg 文件中的回车符(Ubuntu 和大多数 UNIX 系统仅使用换行符作为行终止符)。然而,内核的更新将导致新的 grub 信息被放入 /boot/grub/grub.cfg 中,因此您需要编辑 FAT grub.cfg,或将新的 grub.cfg 复制到 FAT 并再次编辑(否则新内核将不会显示在启动菜单中)。