Как установить Grub2 на Macbook Pro с помощью команды grub-install без предупреждения о & ldquo; blocklists & rdquo; требующий использования --force?

У меня есть Macbook Pro 5,2, и у меня была спорадическая проблема с необходимостью переустановить GRUB после обновления системы. Это произошло с несколькими последними версиями Ubuntu, хотя у меня нет точного отчета о том, какие из них.

Время от времени, после обновления системы с помощью диспетчера обновлений, я больше не могу загружаться в Ubuntu, если я не восстановлю установку GRUB вручную. Для этого я следую этой процедуре:

https://help.ubuntu.com/community/Grub2#Reinstall_GRUB2

, следуя инструкциям в ChRoot. Это всегда работает, чтобы переустановить вещи, но, как вы можете себе представить, это не мое любимое занятие, и каждый раз это занимает около получаса.

Одна проблема, с которой я сталкиваюсь, пытаясь следовать этим инструкциям, состоит в том, что, когда я добираюсь до шага # 11, где я должен выполнить grub-install /dev/sda, он всегда говорит мне, что я не могу выполнить эту команду, потому что она будет иметь использовать «блочные списки», которые по своей природе нестабильны, и единственный способ продолжить это - использовать опцию --force в grub-install. Поэтому я использую опцию --force, и она действительно устанавливает ее, но тот факт, что она не соответствует инструкциям, вызывает у меня обеспокоенность тем, что, возможно, это является источником нестабильности, о которой говорит предупреждение. Но это не позволит мне переустановить его другим способом.

В качестве справочной информации я мог бы упомянуть в качестве фона, что у меня установлен Refit на стороне Mac, в случае, если это является источником проблемы, потому что он конфликтует с Grub или борется за загрузочный сектор или что-то в этом роде. Я также не смог загрузить OS / X из Grub, хотя он находится в меню запуска Grub. Он просто зависает и ничего не делает, если я выберу это. Чтобы загрузиться в OS / X, я должен использовать аппаратную поддержку на Mac, нажимая клавишу выбора во время загрузки, а затем выбирая раздел OS / X, который затем загружается через Refit. И наоборот, я не могу загрузиться в Ubuntu через Refit, даже если этот раздел отображается в меню Refit (как раздел Windows, потому что я думаю, что Refit предполагает, что все, что не является OS / X, является «Windows»). Наконец, вот вывод sudo fdisk -l для моей системы:

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util 
fdisk doesn't support GPT. Use GNU Parted.

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000001

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          26      204819+  ee  GPT
/dev/sda2   *          26       12972   103986412   af  HFS / HFS+
/dev/sda3           12972       25767   102782192   83  Linux
/dev/sda4           25768       59272   269128912   83  Linux

OSX установлен на sda2. Корень linux установлен на sda3, а папка my / home - на sda4. Весь процесс двойной загрузки Macbook Pro является для меня загадкой, поэтому я включаю как можно больше информации на случай, если какая-то из них окажется полезной. Заранее спасибо за любую помощь.

2
задан 8 December 2011 в 23:27

1 ответ

Моя первая реакция заключается в том, что вы используете гибридную MBR , , которая является уродливым и опасным хаком, который Apple использует для упрощения двойной загрузки с OS X. В выводе fdisk отображается только MBR сторона гибридной MBR, но и OS X, и Linux игнорируют это, вместо этого отдавая предпочтение стороне GPT. Чтобы показать разделы GPT, вам нужно использовать parted, gdisk или другую утилиту, поддерживающую GPT.

Во-вторых, ошибка «blocklists» говорит о том, что вы загрузились в режиме BIOS (с использованием системы совместимости Apple, созданной для использования Windows), но ваш GPT не включает загрузочный раздел BIOS, который GRUB 2 использует на GPT-дисках для хранения части своего загрузчика в режиме BIOS. Один из способов обойти эту ошибку - настроить разделы так, чтобы у вас был загрузочный раздел BIOS. Это, вероятно, можно сделать относительно безболезненно, но такие изменения могут привести к непреднамеренным последствиям. В частности, если вам нужно изменить размер каких-либо разделов с помощью GParted, он, вероятно, уничтожит гибридную MBR, что предотвратит загрузку системы Linux в ее текущей конфигурации, поскольку гибридная MBR - это то, что активирует режим совместимости BIOS с Mac. Эту проблему можно исправить, создав новую гибридную MBR.

Поскольку у вас, похоже, нет Windows, возможно, вы захотите изучить загрузку Linux в режиме EFI, что избавит от необходимости наличия уровня совместимости с BIOS и гибридной MBR. У меня есть веб-страница об этом: http://www.rodsbooks.com/ubuntu-efi/index.html . Вкратце, процедура из работающей установки Ubuntu заключается в удалении grub-pc и установке и настройке grub-efi или другого загрузчика с поддержкой EFI. Этот метод имеет свои недостатки, однако. В частности, в некоторых системах некоторые аппаратные средства (возможно, в том числе видеооборудование) могут не активироваться, что в крайних случаях может сделать систему непригодной для использования.

Кстати, REFIt вряд ли будет проблемой; это менеджер загрузки в режиме EFI, который не конфликтует с программами загрузки в режиме BIOS. REFIt, кажется, был заброшен, хотя. Мой форк, rEFInd, берет на себя разработку, добавляет функции и исправляет ошибки. У него есть некоторые опции, которые особенно полезны для загрузки Linux, но некоторые из них применимы, только если у вас ядро ​​версии 3.3.0 или новее, которое пока не предоставлено ни одной версией Ubuntu.

0
ответ дан 8 December 2011 в 23:27

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

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