web-dev-qa-db-ja.com

--forceの使用を必要とする「ブロックリスト」について警告せずにgrub-installコマンドでMacbook ProにGrub2をインストールする方法は?

Macbook Pro 5,2を使用していますが、システムの更新後にGRUBを再インストールしなければならないという散発的な問題がありました。 Ubuntuの最近のバージョンのいくつかでこれが起こりましたが、どのバージョンの正確な記録はありません。

時々、アップデートマネージャでシステムをアップデートした後、GRUBインストールを手動で修復しない限り、Ubuntuを起動できなくなります。それを行うには、次の手順に従います。

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

chRootの下の指示に従ってください。それは常に物事を再インストールするために動作しますが、あなたが想像できるように、それは行うのが私の好きなことではなく、毎回約30分かかります。

これらの指示に従おうとする際に遭遇する問題の1つは、grub-install /dev/sdaを実行することになっているステップ#11に到達すると、「blocklistsこれは本質的に不安定であり、続行する唯一の方法はgrub-installで--forceオプションを使用することです。だから私は--forceオプションを使用し、それをインストールしますが、それが指示通りに進まないという事実は、おそらくそれが警告が私に伝えている不安定性の原因であると心配しています。ただし、他の方法で再インストールすることはできません。

背景情報として、Mac側にRefitがインストールされていることを背景として挙げることができます。これは、ブートセクターなどでGrubと競合または競合しているために問題の原因となっている場合に備えてください。また、Grubのスタートアップメニューにあるにもかかわらず、GrubからOS/Xを起動することができませんでした。それを選択しても、ハングして何もしません。 OS/Xを起動するには、起動中にオプションキーを押してからMacでハードウェアサポートを使用し、OS/Xパーティションを選択して、Refit経由で起動する必要があります。逆に、Refitメニューにそのパーティションが表示されたとしても、Refitを介してUbuntuを起動することはできません(RefitはOS/X以外のものを「Windows」と見なすため、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にインストールされ、/ homeフォルダーはsda4にあります。 Macbook Proのデュアルブートプロセス全体は少し謎であるため、その一部が役立つ場合にできるだけ多くの情報を含めています。助けてくれてありがとう。

2
Mmmm

私の最初の反応は、あなたが ハイブリッドMBR、 を使用していることに注意することです。これは、AppleがOS Xでのデュアルブートを簡素化するために使用するく危険なハックです。fdisk出力ハイブリッドMBRのMBR側のみを表示しますが、OS XとLinuxの両方がこれを無視し、代わりにGPT側を優先します。 GPTパーティションを表示するには、parted、gdisk、またはその他のGPT対応ユーティリティを使用する必要があります。

第二に、「blocklists」エラーは、BIOSモード(Windowsで使用するために作成された互換システムAppleを使用)で起動したことを示唆していますが、GPTには BIOSブートパーティションが含まれていません、 which GRUB 2は、GPTディスクでBIOSモードのブートローダーの一部を保存するために使用します。このエラーを回避する1つの方法は、パーティションを微調整してBIOSブートパーティションを作成することです。これはおそらく比較的簡単に行うことができますが、そのような変更には意図しない結果が生じる可能性があります。特に、GPartedを使用してパーティションのサイズを変更する必要がある場合は、ハイブリッドMBRが消去される可能性があります。これにより、ハイブリッドMBRがMacのBIOS互換モードをアクティブにするため、システムが現在の構成でLinuxを起動できなくなります。この問題は、新しいハイブリッドMBRを作成することで修正できます。

Windowsを使用していないように見えるため、EFIモードでLinuxをブートすることを検討することをお勧めします。これにより、BIOS互換性レイヤーとハイブリッドMBRが不要になります。これを行うためのWebページがあります: http://www.rodsbooks.com/ubuntu-efi/index.html 。簡単に言えば、動作するUbuntuインストールからの手順は、grub-pcをアンインストールし、grub-efiまたは他のEFI対応ブートローダーをインストールして構成することです。ただし、この方法には欠点があります。特に、一部のシステムでは、一部のハードウェア(ビデオハードウェアを含む可能性があります)がアクティブ化されない場合があり、極端な場合はシステムが使用できなくなることがあります。

ちなみに、rEFItは問題になりそうにありません。 BIOSモードのブートプログラムと競合しないEFIモードのブートマネージャーです。しかし、それは放棄されたようです。私のフォーク、 rEFInd、 は開発をピックアップし、機能を追加してバグを修正します。 Linuxの起動に特に役立つオプションがいくつかありますが、これらの一部は、Ubuntuのバージョンがまだ提供されていない3.3.0以降のカーネルを使用している場合にのみ適用されます。

3
Rod Smith