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

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

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

Я использую rEFIt для двойной загрузки. В меню rEFIt отображаются внутренние OSX и Linux, а также внешняя OSX, которые можно загрузить. Внешний 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, оно загружается, но после загрузки оказывается, что раздел INternal смонтирован как /. Согласноэтотстатья, единственные изменения, которые нужно сделать после копирования раздела, находятся в grub. Поскольку я не использую grub, я не понимаю.

решение1

Сначала вам следует понять разницу между загрузкой в ​​собственном режиме EFI и загрузкой в ​​режиме BIOS/CSM/legacy. Компьютеры Mac на базе Intel имеют прошивку EFI, а OS X загружается в режиме EFI. Эта прошивка включает в себя эмулятор BIOS (известный как Compatibility Support Module, или CSM; или иногда называемый поддержкой «legacy mode»), который позволяет им загружать загрузчики в режиме BIOS. Apple намеревается использовать это для загрузки Windows; но многие люди также используют эту поддержку BIOS/CSM/legacy для загрузки других ОС, включая Linux. Однако Linux поддерживает загрузку в режиме EFI, а также загрузку в режиме BIOS, поэтому использование CSM Mac часто не нужно и даже усложняет задачу. С другой стороны, есть определенные модели, на которых оборудование лучше работает в Linux при загрузке в режиме BIOS, чем при загрузке в режиме EFI.

Загрузка с внешнего носителя на Mac — сомнительное предложение, особенно в режиме BIOS/CSM/legacy. Скорее всего, это проблема, с которой вы столкнулись. Я не знаю решения «серебряной пули» для этой проблемы в режиме BIOS. Решение, которое, скорее всего, сработает, — это переключение на загрузку в режиме EFI. Для этого я рекомендую вам перейти с заброшенного rEFIt на его форк, который я поддерживаю,Пересмотреть.Среди прочего, rEFInd добавляет поддержку прямого запуска ядер Linux с загрузчиками EFI stub (включая большинство ядер, предоставляемых дистрибутивом, начиная с версии 3.3.0). Если вы загрузите rEFInd с USB-флешки или образа CD-R, доступных на его странице загрузок, он может запустить Linux как с вашего внутреннего, так и с внешнего диска (и OS X из обоих мест). Если это сработает, установите rEFIndв ОС Xа также установите драйвер для любой файловой системы, содержащей ядро ​​Linux (обычно ext4fs). Результатом должна стать возможность загрузки любой ОС напрямую, минуя GRUB.

Если все это сработает, я рекомендую удалить уродливые и опасныегибридный МБР,который EFI от Apple использует в качестве триггера для активации своего CSM. ( gptsyncУтилита создает или изменяет гибридную MBR.) Пожалуйста, прочтите эту ссылку, чтобы понять, что такое гибридная MBR и почему она представляет такую ​​проблему.


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

Тот факт, что rEFInd CD-R не работал правильно, когда вы использовали "C" для его прямой загрузки, но работал при запуске из rEFIt, мало что говорит о вероятности правильной работы rEFInd при установке на жесткий диск или USB-флэшку. К сожалению, загрузка с оптического носителя в EFI довольно запутана, и Apple, похоже, добавила свои собственные морщины. Таким образом, загрузка таким образом может быть немного рискованной, особенно с учетом того, что у меня (разработчика rEFInd) есть только один древний Mac, на котором можно все протестировать. Загрузка с жесткого диска (или USB-флэшки) с большей вероятностью сработает.

На основании вашего описания я подозреваю, что вы не обновили /etc/fstabфайл в скопированной файловой системе. /etc/fstabПри выполнении этой процедуры требуется обновление для ссылки на новый UUID для раздела. Если у вас случайно есть файл /boot/refind_linux.conf, то его тоже нужно обновить. (Вероятно, у вас нет этого файла, но он может быть, если вы немного вышли за рамки моих инструкций или если вы играли с rEFInd в прошлом.)

Связанный контент