V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
RYAN0UP
V2EX  ›  Linux

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

  •  
  •   RYAN0UP ·
    ruibaby · Oct 13, 2017 via Android · 13262 views
    This topic created in 3132 days ago, the information mentioned may be changed or developed.

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

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

    45 replies    2017-10-19 11:31:25 +08:00
    RYAN0UP
        1
    RYAN0UP  
    OP
       Oct 13, 2017 via Android   ❤️ 1
    对了,Linux 的版本是 Linux Mint18.2
    zjqzxc
        2
    zjqzxc  
       Oct 13, 2017   ❤️ 1
    装过,正常安装,grub2 装在移动硬盘上,mbr,没遇到过问题
    gpt 没试过

    分区就俩,一个根分区,一个交换分区,剩下的格式化成 ntfs 方便 windows 下使用
    RYAN0UP
        3
    RYAN0UP  
    OP
       Oct 13, 2017 via Android
    @zjqzxc 我和你的分区差不多。不过我是用的 gpt。本想着 GRUB 安装失败了,手动添加引导也不行。
    yiyiwa
        4
    yiyiwa  
       Oct 13, 2017
    用 vmware 装过, 直接使用物理硬盘方式, 然后放其它电脑一样起来。
    RYAN0UP
        5
    RYAN0UP  
    OP
       Oct 13, 2017 via Android
    @yiyiwa 谢谢回答,不过我不是太喜欢虚拟机。
    ysc3839
        6
    ysc3839  
       Oct 13, 2017 via Android
    ESP 哪要 1G ? 100M 就够了。
    RYAN0UP
        7
    RYAN0UP  
    OP
       Oct 13, 2017 via Android
    @ysc3839 我百度的这个错误,然后有人说是 EFI 最低 500M,最好 1G。然后我就相信他了。😂😂😂
    neosfung
        9
    neosfung  
       Oct 13, 2017
    我有个 200g 的 ssd 移动硬盘,就是装了 Ubuntu 16.04 了
    kkxxxxxxx
        10
    kkxxxxxxx  
       Oct 13, 2017
    同问题,MBR 就没问题,GPT 就没法引导,用的自动分区
    RYAN0UP
        11
    RYAN0UP  
    OP
       Oct 13, 2017 via Android
    @hei1000 用 U 盘不会卡,我之前用移动硬盘装过,很流畅。
    RYAN0UP
        12
    RYAN0UP  
    OP
       Oct 13, 2017 via Android
    @neosfung 用 ssd 移动硬盘装 ubuntu,速度很不错吧。
    zjqzxc
        13
    zjqzxc  
       Oct 13, 2017
    刚才虚拟机下使用 efi+gpt+debian 9,没有选写引导位置这一步,直接过了
    bios+gpt+debian 9,把主引导记录转载 /dev/sda 上可以正常使用

    大概搜索了以下,有说法是,可以把 grub2 装在分区上,如 /dev/sda2(假设根分区在 sda2)上,可以试试这种方法
    RYAN0UP
        14
    RYAN0UP  
    OP
       Oct 13, 2017 via Android
    @zjqzxc 搞定啦,不过有点不懂,它把引导文件装在了我电脑硬盘的 EFI 分区上,然后我把里面的引导文件放到移动硬盘的 EFI 分区上就成功启动啦。😁😁😁
    yiyiwa
        15
    yiyiwa  
       Oct 13, 2017
    @RYAN0UP 我那样操作,是因为不想重启,然后本机刚好有 vmware,同事要安装 centos,然后就这样折腾了,确实可以。
    RYAN0UP
        16
    RYAN0UP  
    OP
       Oct 13, 2017 via Android
    谢谢大家,已经弄好了,引导文件装在了我电脑本身硬盘的 EFI 分区里,然后复制到移动硬盘的 EFI 就可以启动了。
    zjqzxc
        17
    zjqzxc  
       Oct 13, 2017
    @RYAN0UP 嗯。。进系统看了下,引导文件在 ESP 分区的 EFI 文件夹下。。。
    RYAN0UP
        18
    RYAN0UP  
    OP
       Oct 13, 2017 via Android
    @yiyiwa 这样对于所有系统都可以,也确实是一种解决方式。不过性能有影响。用移动硬盘可以很流畅的。
    ysc3839
        19
    ysc3839  
       Oct 13, 2017
    @RYAN0UP 我只知道 Windows 安装时创建的 ESP 是 100 MB,macOS 是 200 MB。
    yiyiwa
        20
    yiyiwa  
       Oct 13, 2017
    @RYAN0UP 我只是安装是这样安装, 装好后,同事直接 BIOS 选择移动硬盘引导就好了。 跟你想要的方式是一样的。
    zkwang
        21
    zkwang  
       Oct 13, 2017
    几年前需要在移动硬盘上装 ubuntu,有一个最简单的办法:

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

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

    那时候没有 EFI.
    zjqzxc
        23
    zjqzxc  
       Oct 13, 2017   ❤️ 1
    查资料并结合 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
        24
    opengps  
       Oct 13, 2017
    linux 不清楚,但是如果 windows,则需要手动标记成活动分区
    zjqzxc
        25
    zjqzxc  
       Oct 13, 2017
    补充#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
        26
    RYAN0UP  
    OP
       Oct 13, 2017 via Android
    @zkwang 几年前我可能还在读初中😂😂😂
    RYAN0UP
        27
    RYAN0UP  
    OP
       Oct 13, 2017 via Android
    @opengps mbr 才需要吧,uefi+gpt 不需要
    RYAN0UP
        28
    RYAN0UP  
    OP
       Oct 13, 2017
    @zjqzxc Thanks
    boboliu
        29
    boboliu  
       Oct 13, 2017 via Android   ❤️ 2
    看完心有所感,然后去试了试,现在我移动硬盘里面的数据已经全部 GG 了
    GlobalNPC
        30
    GlobalNPC  
       Oct 13, 2017
    @boboliu 666
    JackieMe
        31
    JackieMe  
       Oct 13, 2017 via Android
    所以你应该是 UEFI + GPT 吧?
    如果是要系统放在移动硬盘,引导也装到移动硬盘的话,直接装系统分区那一步,把你的 ESP 分区挂载到 /boot/efi 就行,然后其他的没什么特殊的。
    messyidea
        32
    messyidea  
       Oct 13, 2017
    @boboliu 不会直接格了吧 2333
    likuku
        33
    likuku  
       Oct 13, 2017
    和装普通硬盘没差别,只要 /etc/fstab 里使用 UUID/Label 来标示分区就没问题了。
    RYAN0UP
        34
    RYAN0UP  
    OP
       Oct 13, 2017 via Android
    @boboliu 你没有备份的啊
    RYAN0UP
        35
    RYAN0UP  
    OP
       Oct 13, 2017 via Android
    @JackieMe 对的对的,已经弄好了。谢谢
    RYAN0UP
        36
    RYAN0UP  
    OP
       Oct 13, 2017 via Android
    @likuku 没看懂诶,不过已经弄好了,谢谢
    pynix
        37
    pynix  
       Oct 13, 2017
    u 盘都装过。。
    mbyzhang
        38
    mbyzhang  
       Oct 13, 2017
    上 boot-repair,基本上能修复任何 GRUB 安装不上的问题
    Tyanboot
        39
    Tyanboot  
    PRO
       Oct 14, 2017 via Android   ❤️ 2
    @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
        40
    RYAN0UP  
    OP
       Oct 14, 2017
    @Tyanboot 感谢回答
    scriptB0y
        41
    scriptB0y  
       Oct 14, 2017
    我在 U 盘上装过……
    huaxianyan
        42
    huaxianyan  
       Oct 16, 2017
    买了个固态 U 盘装了个 Ubuntu 16.04 LTS

    安装方法就是忽视其他所有的硬盘,只留那块盘,把 EFI 之类的分区全部放在那个上面,这样即使到别的机器上也能引导启动
    RYAN0UP
        43
    RYAN0UP  
    OP
       Oct 16, 2017 via Android
    @huaxianyan 固态 U..UUU 盘?
    huaxianyan
        44
    huaxianyan  
       Oct 18, 2017
    @RYAN0UP 马云上的手工 U 盘,店家自己采购的颗粒和主控,转 USB3.0
    RYAN0UP
        45
    RYAN0UP  
    OP
       Oct 19, 2017 via Android
    @huaxianyan 厉害了😃
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3077 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 68ms · UTC 14:55 · PVG 22:55 · LAX 07:55 · JFK 10:55
    ♥ Do have faith in what you're doing.