![Grub не видит внешний диск (Intel mac)](https://rvso.com/image/1416350/Grub%20%D0%BD%D0%B5%20%D0%B2%D0%B8%D0%B4%D0%B8%D1%82%20%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B9%20%D0%B4%D0%B8%D1%81%D0%BA%20(Intel%20mac).png)
У меня есть 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 в прошлом.)