У меня есть 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, он говорит:
Нет загрузочного устройства - вставьте загрузочный диск и нажмите любую клавишу
Как и предлагалось в , обновление Mac OSX прервало загрузку Ubuntu Я хотел исправить проблему так же как AndrewM, но у меня нет опции «MBR таблица должна быть обновлена».
/dev/sda6
, поскольку именно там находится моя файловая система Ubuntu. У меня есть оболочка, но я не знаю, как исправить проблему, поскольку, если бы это была просто двойная загрузка Windows. Обновление GRUB решит проблему, но здесь я не знаю, где установлен GRUB 2. Вот результаты из Parted , и меня это немного смущает, так как раздел Mac с загрузочным:
Как вы видите, запись 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
Если вы точно следовали инструкциям 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
. Это должно загрузиться правильно.
РЕДАКТИРОВАТЬ: Не могли бы вы сделать следующее и опубликовать результаты (отредактируйте исходное сообщение, чтобы сделать это):
ls -l $(find /EFI -iname "*.efi")
и опубликуйте результаты здесь. (Предполагается, что вы установили rEFInd в OS X, используя параметры по умолчанию; если вы установили его в ESP, подключите его и настройте путь от /EFI
до точки монтирования вашего ESP.) ls -l /boot/vmlinuz*
и опубликуйте результаты здесь. refind.conf
на наличие строки, читающей scan_all_linux_kernels
. Убедитесь, что он присутствует и что он не закомментирован (начальным символом #
). Вы также можете попытаться снова запустить загрузку в режиме BIOS, исправив гибридную MBR и / или переустановив GRUB; однако гибридные MBR ужасны и опасны, поэтому я не рекомендую такой подход. Если вы идете по этому пути, попробуйте использовать программу gptsync
из rEFInd, а не из rEFIt. Последнее не удалось для вас, но REFInd's, вероятно, будет работать; или вы можете использовать gdisk
для этой работы, как описано на странице, на которую я ссылался ранее в этом параграфе.
РЕДАКТИРОВАТЬ 2: Все ваши ядра имеют версии 3.2.x, предшествующие загрузчику заглушек EFI. Это означает, что они не будут работать напрямую с rEFInd. Вообще говоря, есть два способа обойти эту проблему:
efibootmgr
, чтобы зарегистрировать загрузчик в прошивке; просто скопируйте его файлы на место и настройте его файл конфигурации. После этого rEFInd должен обнаружить все, что вы устанавливаете, и позволить вам запустить его. chroot
с аварийного диска, , как описано здесь. Другой вариант - обновить версию Ubuntu. Я понимаю, что 3.04 является выпуском LTS, но с тех пор были выпуски 3.04.1 и 3.04.2, и я уверен, что они включают более новые ядра. Я не уверен, что вы могли бы установить 3.04.2 поверх 3.04, чтобы все это заработало, но вы можете рассмотреть эту возможность.