Проблема GRUB 2 после обновления Mac OS X

У меня есть MacBook Pro в Mac OS X с двойной загрузкой X / Ubuntu 12.04 (Precise Pangolin). Когда я загружаю его, у меня появляется меню rEFIt , и я могу выбирать между Mac & nbsp; OS & nbsp; X и Linux. Несколько дней назад я обновил Mac OS с версии 10.7 (Lion) до 10.8 (Mountain Lion), используя изображение .dmg, предоставленное моей компанией. С тех пор, когда я выбираю Linux в rEFIt, он говорит:

Нет загрузочного устройства - вставьте загрузочный диск и нажмите любую клавишу

  1. Я попытался перейти на REFIt инструмент разбиения. Вот что я получил:

Enter image description here

Как и предлагалось в , обновление Mac OSX прервало загрузку Ubuntu Я хотел исправить проблему так же как AndrewM, но у меня нет опции «MBR таблица должна быть обновлена».

  1. Затем я загрузился на компакт-диск с Ubuntu 12.04, выбрал восстановление поврежденной системы, выбрал корневой каталог /dev/sda6, поскольку именно там находится моя файловая система Ubuntu. У меня есть оболочка, но я не знаю, как исправить проблему, поскольку, если бы это была просто двойная загрузка Windows. Обновление GRUB решит проблему, но здесь я не знаю, где установлен GRUB 2.

Вот результаты из Parted , и меня это немного смущает, так как раздел Mac с загрузочным:

Enter image description here

Как вы видите, запись 1 является системным разделом EFI и является загрузочным разделом, поэтому мне интересно, стоит ли мне устанавливать GRUB там или в sda6, который является файловой системой Ubuntu.

Я не уверен, стоит ли мне работать с REFIt shell или Ubuntu. К сожалению, я не помню, где GRUB был до обновления.

ОБНОВЛЕНИЕ: используя ту же ссылку, что и выше, я попробовал ответ RoundSparrow hilltx и установил rEFInd , но результат тот же ... все равно нет загрузочного устройства, когда я выбираю Linux.

ОБНОВЛЕНИЕ 2: просто снова использовал альтернативный CD, смонтированный в / dev / sda6 и запущенный update-grub. Казалось, что вок и начал перечислять все мои ядра. Но после перезагрузки несколько раз все еще не загружается устройство, когда я выбираю Linux в rEFInd.

UDATE 3: попытался загрузиться с Ubuntu cd и выбрать «загрузиться с первой доступной файловой системы. Я получил ошибку и выпал на grub rescue shell. Я даже следовал указаниям по этой ссылке , но не смог загрузиться, как я пытался использовать sdb6, но не повезло

ОБНОВЛЕНИЕ 4 согласно запросу Роба Смита здесь вышло из ls -l $(find /EFI -iname "*.efi")

* MACOSX

-rw-r--r--@ 1 root  admin    55048 29 oct 17:44 /EFI/refind/drivers_x64/btrfs_x64.efi
-rw-r--r--@ 1 root  admin    38888 29 oct 17:44 /EFI/refind/drivers_x64/ext2_x64.efi
-rw-r--r--@ 1 root  admin    39304 29 oct 17:44 /EFI/refind/drivers_x64/ext4_x64.efi
-rw-r--r--@ 1 root  admin    43432 29 oct 17:44 /EFI/refind/drivers_x64/hfs_x64.efi
-rw-r--r--@ 1 root  admin    38984 29 oct 17:44 /EFI/refind/drivers_x64/iso9660_x64.efi
-rw-r--r--@ 1 root  admin    43656 29 oct 17:44 /EFI/refind/drivers_x64/reiserfs_x64.efi
-rw-r--r--@ 1 root  admin   175016 29 oct 17:44 /EFI/refind/refind_x64.efi
-rw-rw-r--  1 root  admin    73232  7 mar  2010 /EFI/tools/dbounce.efi
-rw-rw-r--  1 root  admin   763248  7 mar  2010 /EFI/tools/dhclient.efi
-rw-rw-r--  1 root  admin    67024  7 mar  2010 /EFI/tools/drawbox.efi
-rw-rw-r--  1 root  admin    71312  7 mar  2010 /EFI/tools/dumpfv.efi
-rw-rw-r--  1 root  admin    84848  7 mar  2010 /EFI/tools/dumpprot.efi
-rw-rw-r--  1 root  admin   472912  7 mar  2010 /EFI/tools/ed.efi
-rw-rw-r--  1 root  admin   143856  7 mar  2010 /EFI/tools/edit.efi
-rw-rw-r--  1 root  admin  1801008  7 mar  2010 /EFI/tools/ftp.efi
-rw-r--r--@ 1 root  admin    47848 29 oct 17:44 /EFI/tools/gptsync_x64.efi
-rw-rw-r--  1 root  admin   320560  7 mar  2010 /EFI/tools/hexdump.efi
-rw-rw-r--  1 root  admin   286384  7 mar  2010 /EFI/tools/hostname.efi
-rw-rw-r--  1 root  admin   534416  7 mar  2010 /EFI/tools/ifconfig.efi
-rw-rw-r--  1 root  admin   395344  7 mar  2010 /EFI/tools/loadarg.efi
-rw-rw-r--  1 root  admin   587408  7 mar  2010 /EFI/tools/ping.efi
-rw-rw-r--  1 root  admin   730416  7 mar  2010 /EFI/tools/pppd.efi
-rw-rw-r--  1 root  admin   561360  7 mar  2010 /EFI/tools/route.efi
-rw-rw-r--  1 root  admin  1961712  7 mar  2010 /EFI/tools/shell.efi 
-rw-rw-r--  1 root  admin   750224  7 mar  2010 /EFI/tools/tcpipv4.efi
-rw-rw-r--  1 root  admin     4048  7 mar  2010 /EFI/tools/textmode.efi
-rw-rw-r--  1 root  admin   320656  7 mar  2010 /EFI/tools/which.efi

* LINUX

Так как раздел Ubuntu 12.04 не является загрузочным, мне пришлось загружаться на live cd, поэтому сначала ваша команда не работала:

$ ls -l /boot/vmlinuz*
$ ls: cannot access /boot/vmlinuz*: No such file or directory

, поэтому я решил смонтировать мою файловую систему:

sudo mkdir /media/sda6
sudo mount -t ext4 -r /dev/sda6 /media/sda6
cd /media/sda6/
sudo ls -l boot/vmlinuz*

-rw-r--r-- 1 root root 4965840 Apr 25  2012 boot/vmlinuz-3.2.0-23-generic
-rw------- 1 root root 4965968 May 21  2012 boot/vmlinuz-3.2.0-24-generic
-rw------- 1 root root 4974672 Mar 25  2013 boot/vmlinuz-3.2.0-40-generic
-rw------- 1 root root 4978416 Jun  6 20:24 boot/vmlinuz-3.2.0-48-generic
-rw------- 1 root root 4978416 Jun 18 18:20 boot/vmlinuz-3.2.0-49-generic
-rw------- 1 root root 4978960 Jul 24 20:59 boot/vmlinuz-3.2.0-51-generic
-rw------- 1 root root 4980336 Aug 22 21:41 boot/vmlinuz-3.2.0-53-generic
0
задан 13 April 2017 в 15:23

1 ответ

Если вы точно следовали инструкциям RoundSparrow hilltx, включая использование опции --alldrivers для install.sh, вы должны увидеть одну или несколько новых опций в rEFInd с описаниями, которые содержат строку vmlinuz. Эти новые записи должны загрузить Linux. Если это так, вы можете удалить нефункциональную запись Linux, отредактировав /EFI/refind/refind.conf, раскомментировав строку scanfor и убедившись, что hdbios не не среди опций.

Если вы не использовали опцию --alldrivers, или если вы не видите записи / записи vmlinuz, попробуйте установить драйвер ext4fs, который поставляется с rEFInd. Предполагая, что вы использовали параметры установки rEFInd по умолчанию, вам нужно создать каталог /EFI/refind/drivers в OS X, а затем скопировать драйвер ext4fs для вашей архитектуры (X64 или IA32) в этот каталог. При перезагрузке вы должны увидеть новую опцию Linux с именем, включающим vmlinuz. Это должно загрузиться правильно.


РЕДАКТИРОВАТЬ: Не могли бы вы сделать следующее и опубликовать результаты (отредактируйте исходное сообщение, чтобы сделать это):

  1. В OS X введите ls -l $(find /EFI -iname "*.efi") и опубликуйте результаты здесь. (Предполагается, что вы установили rEFInd в OS X, используя параметры по умолчанию; если вы установили его в ESP, подключите его и настройте путь от /EFI до точки монтирования вашего ESP.)
  2. В Linux введите ls -l /boot/vmlinuz* и опубликуйте результаты здесь.
  3. Проверьте файл refind.conf на наличие строки, читающей scan_all_linux_kernels. Убедитесь, что он присутствует и что он не закомментирован (начальным символом #).

Вы также можете попытаться снова запустить загрузку в режиме BIOS, исправив гибридную MBR и / или переустановив GRUB; однако гибридные MBR ужасны и опасны, поэтому я не рекомендую такой подход. Если вы идете по этому пути, попробуйте использовать программу gptsync из rEFInd, а не из rEFIt. Последнее не удалось для вас, но REFInd's, вероятно, будет работать; или вы можете использовать gdisk для этой работы, как описано на странице, на которую я ссылался ранее в этом параграфе.


РЕДАКТИРОВАТЬ 2: Все ваши ядра имеют версии 3.2.x, предшествующие загрузчику заглушек EFI. Это означает, что они не будут работать напрямую с rEFInd. Вообще говоря, есть два способа обойти эту проблему:

  • Добавьте еще один загрузчик EFI, такой как ELILO или версию GRUB 2 EFI, для загрузки существующих ядер 3.2.x. , Это довольно легко сделать , если вы знаете как, но для большинства пользователей это незнакомый процесс. См. мою страницу по теме для справки и общих инструкций. Обратите внимание, что эти инструкции предполагают, что у вас есть работающая установка Linux; вам, вероятно, придется использовать live CD, чтобы установить вещи. Кроме того, вам нужно , а не , запустить efibootmgr, чтобы зарегистрировать загрузчик в прошивке; просто скопируйте его файлы на место и настройте его файл конфигурации. После этого rEFInd должен обнаружить все, что вы устанавливаете, и позволить вам запустить его.
  • Обновите ваше ядро ​​до версии 3.3.x или новее. Это довольно легко сделать, если вы можете загрузить свою текущую систему, , как описано здесь, , но, конечно, это создает ситуацию catch-22. Вы должны быть в состоянии преодолеть это препятствие, используя chroot с аварийного диска, , как описано здесь.

Другой вариант - обновить версию Ubuntu. Я понимаю, что 3.04 является выпуском LTS, но с тех пор были выпуски 3.04.1 и 3.04.2, и я уверен, что они включают более новые ядра. Я не уверен, что вы могли бы установить 3.04.2 поверх 3.04, чтобы все это заработало, но вы можете рассмотреть эту возможность.

0
ответ дан 13 April 2017 в 15:23

Другие вопросы по тегам:

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