Grub не видит внешний диск (Intel Mac)

976
dremodaris

У меня есть Intel Mac (MacMini) и внешний usb-накопитель. На внутреннем диске у меня есть раздел с установленной OSX и один с Ubuntu + Grub2. На внешнем диске у меня есть копия моего полного раздела OSX и копия моего полного раздела Ubuntu (оба с UUID, отличными от оригинала).

Я использую REFIt для двойной загрузки. Внутренний OSX и Linux, а также внешний OSX появляются в меню rEFIt и являются загрузочными. Внешний Linux, который я хочу загрузить, отсутствует. После создания резервной копии Linux я выполнил update-grub для внутреннего Linux (он нашел все 4 установки) и для внешнего (через chroot - он нашел все установки, кроме внутреннего Linux). Это не решило проблему.

Когда я пытаюсь загрузить внешний Linux с помощью внутреннего Grub, я получаю сообщение об ошибке:

error: no such device: <the UUID of the external Linux partition> error: no such partition. error: you need to load the kernel first. 

Когда я печатаю lsво внутреннем меню Grub, в нем перечислены все разделы на внутреннем диске, но (hd1)он полностью отсутствует.

Я попытался синхронизировать таблицы разделов на внешнем диске с помощью gptsync, но он утверждает, что GPT отсутствует. gdiskОднако я нашел один, и ручное сравнение с fdiskвыходными данными дает мне впечатление, что они синхронизированы. (Раздел Linux включен в обе таблицы.)

РЕДАКТИРОВАТЬ:

Я записал REFInd на CD и экспериментировал. Результаты:

  • Когда я загружаю свой Mac, нажимая C для загрузки с компакт-диска, он вскоре показывает серый фон rEFInd, но затем сразу же запускает grub из внутренней установки. Я могу обойти это, выбрав REFInd из REFIt. Тем не менее, это дает мне мало уверенности для установки rEFInd в OSX.

  • rEFInd показывает все параметры, которые должны отображаться. Как и следовало ожидать, Grubs по-прежнему не могут загружать Linux с внешнего диска.

  • Когда я запускаю ядро ​​Linux с внешнего диска с помощью rEFInd, оно загружается, но после загрузки оказывается, что внутренний раздел монтируется как /. Согласно этой статье, единственные изменения, которые нужно сделать после копирования раздела, находятся в grub. Так как я не использую личинку, я не понимаю.

0

1 ответ на вопрос

1
Rod Smith

You should first understand the difference between native EFI-mode booting and booting in BIOS/CSM/legacy mode. Intel-based Macs have EFI firmware, and OS X boots in EFI mode. This firmware includes a BIOS emulator (known as the Compatibility Support Module, or CSM; or sometimes referred to as "legacy mode" support) that enables them to boot BIOS-mode boot loaders. Apple intends for this to be used to boot Windows; but many people also use this BIOS/CSM/legacy support to boot other OSes, including Linux. Linux, though, supports EFI-mode booting as well as BIOS-mode booting, so using the Mac's CSM is often unnecessary, and even a complication. OTOH, there are certain models on which the hardware works better in Linux when booted in BIOS mode than when booted in EFI mode.

Booting from external media on Macs is an iffy proposition, especially in BIOS/CSM/legacy mode. Chances are that's the problem you're encountering. I know of no "silver bullet" solution to the problem in BIOS mode. The solution that's most likely to work is to switch to EFI-mode booting. To do this, I recommend you switch from the abandoned rEFIt to its fork that I maintain, rEFInd. Among other things, rEFInd adds support for directly launching Linux kernels with EFI stub loaders (which includes most distribution-provided kernels since 3.3.0). If you boot rEFInd from the USB flash drive or CD-R image available on its downloads page, it may launch Linux from both your internal and external drives (and OS X from both locations, too). If this works, install rEFInd in OS X and also install the driver for whatever filesystem holds your Linux kernel (usually ext4fs). The result should be an ability to boot either OS directly, bypassing GRUB.

If all this works, I recommend removing the ugly and dangerous hybrid MBR, which Apple's EFI uses as a trigger to activate its CSM. (The gptsync utility creates or modifies a hybrid MBR.) Please read that link to understand what a hybrid MBR is and why it's such a problem.


EDIT:

The fact that the rEFInd CD-R didn't work correctly when you used "C" to boot it directly but did work when launched from rEFIt says little about the probability of rEFInd working correctly when installed on a hard disk or USB flash drive. Unfortunately, booting from optical media in EFI is rather convoluted, and Apple seems to have thrown in their own wrinkles. Thus, booting in that way can be a little dicey, especially since I (rEFInd's developer) have only one ancient Mac on which to test things. Booting from hard disk (or from a USB flash drive) is more likely to work.

Based on your description, I suspect that you failed to update your /etc/fstab file on the copied filesystem. Updating /etc/fstab to refer to the new UUID for the partition is required when following that procedure. If by chance you have a /boot/refind_linux.conf file, then it must be updated, too. (Chances are you don't have that file, but you might if you went a little beyond my instructions or if you played with rEFInd in the past.)

Благодарю. Я записал ссылку и приложил свои выводы к вопросу. dremodaris 9 лет назад 0
Смотрите мое редактирование выше. Rod Smith 9 лет назад 0
Ах, я перечитал fstab, извините. Я следовал всем вашим инструкциям, но снял MBR, и они работают как шарм, спасибо! Что касается MBR, вы упоминаете `gptsync`. [Здесь] (http://superuser.com/questions/508026/windows-detects-gpt-disk-as-mbr-in-efi-boot) вы упоминаете `gdisk`. Этот ответ как-то устарел? dremodaris 9 лет назад 0
Пожалуйста, перейдите по ссылке, которую я предоставил [документации gdisk по гибридным MBR.] (Http://www.rodsbooks.com/gdisk/hybrid.html) Утилита `gptsync` создает гибридные MBR, но с небольшой гибкостью. Одной из многих функций gdisk является возможность создавать гибридные MBR, но с большей гибкостью. Еще одна особенность `gdisk` - это возможность заменить гибридную MBR юридической защитной MBR, что я и рекомендовал вам сделать, поскольку гибридные MBR являются незаконными и опасными. (В моем посте за 2012 год, на который вы ссылались, описано, как сделать эту замену. Это все еще действует.) Rod Smith 9 лет назад 0
Все сделано, без проблем, спасибо! dremodaris 9 лет назад 0

Похожие вопросы