在U盘上安装Linux系统,存在多个分区如何正确引导?

发布于 2022-09-03 12:46:31 字数 887 浏览 19 评论 0

打算在64GB的U盘上安装一个Ubuntu 16.04 LTS,这样不管走到哪里往电脑里一插就能得到自己最熟悉的坏境,感觉挺方便的,然而在引导启动时却遇到了问题。

以下是分区情况:

  • sdb为U盘设备,MBR分区表

  • sdb1空间为20GB格式化为ext4挂载到/

  • sdb2空间为16GB格式化为ext4挂载到/home

  • sdb3空间为16GB格式化为FAT32以方便接入Windows拷文件,不自动挂载

  • 剩余空间暂时未使用

写好系统后插入电脑选择从U盘启动,却提示Multiple active partitions found(检测到多个活动的分区,原话记不到了,不过意思差不多)。

请问:

  • 像这种在设备上有多个分区的情况,如何正确引导启动存在系统的分区(也就是sdb1)?是否需要类似于GRUB这样的bootloader?

  • 如果使用GUID分区表,GRUB是否应该安装在EFI分区并将EFI挂载到/boot

  • 接上条,我尝试过使用GUID并安装,然而GRUB好像被安装在了我的本地硬盘上的EFI分区(sda1)上。使用它启动U盘上的启动后,sda1也被直接挂载到了/boot,这种情况应该如何解决?

这里Linux新手,很多地方可能都理解得不对,还请多多包涵多多指正,感激不尽!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

红衣飘飘貌似仙 2022-09-10 12:46:31

启动流程:

硬件 BIOS/UEFI --> Bootloader --> kernel


像这种在设备上有多个分区的情况,如何正确引导启动存在系统的分区(也就是 sdb1 )?是否需要类似于 GRUB 这样的 bootloader?

简单地说: bootloader 在内核加载之前挂载内核文件所在分区 /boot,找到内核文件,将其载入内存中,其后转移控制权给内核。内核只有通过 bootloader 加载到内存中之后才能运作,所以 GRUB 类似的 bootloader 是必要的。

想要正确引导启动存在系统的分区,只要计算机上(无论哪块硬盘上)安装的有 bootloader,bootloader 能找到并正确加载内核(不一定要在同一块硬盘上)即可。

如果使用 GPT 分区表,GRUB 是否应该安装在 EFI 分区并将EFI挂载到 /boot?

GPT/UEFI 的计算机系统如果使用 GRUB,GRUB 应该将其一部分装在 EFI 分区下的固定目录 EFI/boot 下(grub-install 程序自动完成),在计算机系统启动时由 UEFI 启动 GRUB,GRUB 加载内核,内核加载整个系统。

我尝试过使用 GPT 并安装,然而 GRUB 好像被安装在了我的本地硬盘上的 EFI 分区(sda1)上。使用它启动U盘上的启动后,sda1 也被直接挂载到了 /boot,这种情况应该如何解决?

GRUB 的安装位置是可选的,一般在安装 GNU/Linux 的最后阶段中,可以选择 GRUB 的安装位置。

Linux 下文件系统全部组织到 / 下,无论这个分区属于哪一块硬盘。至于为何外部的 boot 分区而不是本系统的 boot 分区被挂载到 /boot,我不清楚。

旧时光的容颜 2022-09-10 12:46:31

对linux不太熟……不过,这种U盘系统,应该去找现成的方案吧,Linux对应的是LiveUSB,Windows对应的是WindowsToGo。另外,貌似记得Windows好像不支持U盘多分区吧?当然如果你的是移动硬盘就无所谓了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文