有人用移动硬盘装过 Linux 吗?

2017-10-13 15:45:01 +08:00
 RYAN0UP

请教下,用移动硬盘装 Linux,你们是怎么分区的,还有是怎么引导的? 现在我的分区是: EFI 1G / 50G /home 50G

可是安装的时候报错:GRUB 安装失败!

12509 次点击
所在节点    Linux
45 条回复
zkwang
2017-10-13 16:36:21 +08:00
几年前需要在移动硬盘上装 ubuntu,有一个最简单的办法:

打开机箱,拔掉安装盘,用光盘或者 U 盘启动电脑,就和装硬盘一样,一路装下去,装完启动完全正常。
zkwang
2017-10-13 16:37:32 +08:00
几年前需要在移动硬盘上装 ubuntu,有一个最简单的办法:

打开机箱,拔掉硬盘,用光盘或者 U 盘启动电脑,就和装硬盘一样,一路装下去,装完启动完全正常。

那时候没有 EFI.
zjqzxc
2017-10-13 17:01:29 +08:00
查资料并结合 vmware 看了下
uefi+gpt 这套系统,操作系统的“引导”存在在两个地方。1、主硬盘的 EFI 分区下,存在着一个扩展名为.efi 的文件,是主要的引导程序,debian 中这个分区被挂载在 /boot/efi 目录下(其它系统我没试); 2、主板的某块芯片里被写入了一条记录,用来记录这个.efi 文件存在在哪块硬盘( uuid 方式表示硬盘)的哪个位置叫什么名字
如果把硬盘拆除,启动时扔能看到这个系统的引导记录

“它把引导文件装在了我电脑硬盘的 EFI 分区上”
https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/configure-uefigpt-based-hard-drive-partitions
微软的文档里有这么一句话:“ This partition is usually stored on the primary hard drive. ”估计可能在设计上会默认把所有的 efi 引导程序都写入主磁盘的 efi 分区吧。
楼上说在虚拟机里把移动硬盘直接挂载进去,刚好避免了这个问题。不过对这个操作能不能适用于纯 uefi+gpt 系统可能有疑问( bios+mbr 没问题,以前也这么干过),在 vmware 中新建了一个虚拟机,把装好系统的 gpt 格式磁盘挂载上去,无法发现这个硬盘上的操作系统(原因是,另一条机器的“主板芯片”中并没有对应的引导记录)。

@RYAN0UP
opengps
2017-10-13 17:06:58 +08:00
linux 不清楚,但是如果 windows,则需要手动标记成活动分区
zjqzxc
2017-10-13 17:10:10 +08:00
补充#23 最后一段说的那个“主板芯片”说法,实际上应该是 NVRAM:
https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#UEFI_booting
第一段最后:
" The boot configuration is defined by variables stored in NVRAM, including variables that indicate the file system paths to OS loaders and OS kernels."
RYAN0UP
2017-10-13 19:54:37 +08:00
@zkwang 几年前我可能还在读初中😂😂😂
RYAN0UP
2017-10-13 19:55:28 +08:00
@opengps mbr 才需要吧,uefi+gpt 不需要
RYAN0UP
2017-10-13 19:57:50 +08:00
@zjqzxc Thanks
boboliu
2017-10-13 20:13:11 +08:00
看完心有所感,然后去试了试,现在我移动硬盘里面的数据已经全部 GG 了
infun
2017-10-13 20:16:10 +08:00
@boboliu 666
JackieMe
2017-10-13 20:30:01 +08:00
所以你应该是 UEFI + GPT 吧?
如果是要系统放在移动硬盘,引导也装到移动硬盘的话,直接装系统分区那一步,把你的 ESP 分区挂载到 /boot/efi 就行,然后其他的没什么特殊的。
messyidea
2017-10-13 20:32:16 +08:00
@boboliu 不会直接格了吧 2333
likuku
2017-10-13 20:38:17 +08:00
和装普通硬盘没差别,只要 /etc/fstab 里使用 UUID/Label 来标示分区就没问题了。
RYAN0UP
2017-10-13 20:55:17 +08:00
@boboliu 你没有备份的啊
RYAN0UP
2017-10-13 20:55:41 +08:00
@JackieMe 对的对的,已经弄好了。谢谢
RYAN0UP
2017-10-13 20:56:03 +08:00
@likuku 没看懂诶,不过已经弄好了,谢谢
pynix
2017-10-13 21:29:28 +08:00
u 盘都装过。。
mbyzhang
2017-10-13 21:31:39 +08:00
上 boot-repair,基本上能修复任何 GRUB 安装不上的问题
Tyanboot
2017-10-14 00:40:41 +08:00
@zjqzxc 根据 efi spec, efi 分区必须是 fat32 格式,且 efi 主板只能从此分区读取 efi 文件运行。

且 ESP 可以有多个,可以在 boot option 或者 boot menu 里面选择从哪个分区加载,但大部分主板只认第一个 ESP 分区。
64 位主板默认加载该分区的\EFI\BOOT\bootx64.efi 文件,32 位默认加载\EFI\BOOT\bootia32.efi 。

部分主板仅能启动\EFI\Microsoft\Boot\bootmgfw.efi 此文件,且无论在 nvram 里如何添加条目,主板都不会显示。

因此要想在移动硬盘里启动,只需要给移动硬盘分一个 ESP 分区,并在安装的时候将引导选择装入此分区。或手动执行 grub-mkstandalone 生成一个 efi,并放置于\EFI\BOOT\bootx64.efi
RYAN0UP
2017-10-14 00:58:18 +08:00
@Tyanboot 感谢回答

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/397379

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX