web-dev-qa-db-ja.com

「警告:ファイルシステム `ext2 'は埋め込みをサポートしていません。」しかし、私のシステムも組み込まれていません、なぜgrubは試みているのですか?

私はDebianでのJessieのリリースについて自分自身を読んでいるので、問題を引き起こす可能性のあるメッセージ、つまり警告については特に注意深く(パラノイアと言われるべきです)います。私のシステムは、Debian Testing/Unstableがインストールされたデスクトップで、両方のext4パーティションに/bootおよび/ですが、アップグレード中にこのメッセージが表示されますgrub-pc Debianのパッケージ:

Installing for i386-pc platform.
Installation finished. No error reported.
Installing for i386-pc platform.
grub-install: warning: File system `ext2' doesn't support embedding.
grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
Installation finished. No error reported.
Generating grub configuration file ...

システムが組み込まれているとgrubが言うのはなぜですか?これの原因は何ですか? grub-installバイナリを確認しようとしましたが、理解できませんでした。

34
Braiam

MBRではなくパーティションにgrubをインストールしているため、警告が表示されます。つまり、MBRと最初のパーティションの間の未使用のスペースにgrubを埋め込むことはできません。代わりに、そのブロックのリストが/boot/grub/core.imgはMBRに配置されて存在します。この設定は、デフラグなどによって破損する可能性があるため、推奨されないため、警告が表示されます。これは単なる警告なので、無視してかまいません。

31
psusi

検索エンジンからこれにアクセスするほとんどの人は、「なぜこのエラーが発生するのですか?」

warning: File system `ext2' doesn't support embedding. 
warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their  use is discouraged.. 
error: will not proceed with blocklists.

あなたがしたので、例えば:

grub-install /dev/sda1

の代わりに

grub-install /dev/sda

つまりMBRの代わりにパーティションにインストールしようとしました。

68
Nathan Kidd

Grub2のinfoページから引用します:

MBR
====

PC BIOSプラットフォームで従来から使用されているパーティションテーブルフォーマットは、
マスターブートレコード(MBR)形式と呼ばれます。これはそのフォーマットです
最大4つのプライマリパーティションと追加の論理パーティションを許可します。
このパーティションテーブル形式では、GRUBをインストールする方法が2つあります。
MBRと最初のパーティションの間の領域に埋め込むことができます
(「ブートトラック」、「MBRギャップ」などのさまざまな名前で呼ばれる、または
「埋め込み領域」、通常は少なくとも31 KiB)、またはコア
イメージはファイルシステムにインストールでき、ブロックのリストは
メイクアップは、そのパーティションの最初のセクターに保存できます。

これらにはそれぞれ異なる問題があります。予約する方法はありません
完全に安全な埋め込み領域のスペース、およびいくつかの独自仕様
ソフトウェアは、ユーザーが作業するのを困難にするためにそれを使用することが知られています
ライセンス制限の周り;そして、システムは時々分割されます
最初のパーティションの前に十分なスペースを残すことなく。もう一方の
手、ファイルシステムへのインストールは、GRUBがそのファイルに対して脆弱であることを意味します
ブロックは、テールパッキングなどのファイルシステム機能によって移動されます。
または積極的なfsck実装によっても、このアプローチはかなり
壊れやすい;このアプローチは、 `/ boot 'ファイルシステムの場合にのみ使用できます
はBIOSが起動するのと同じディスク上にあるため、GRUBは
BIOSドライブ番号の推測に依存する必要があります。

GRUB開発チームは通常、埋め込み前にGRUB
特別な要件がない限り、最初のパーティション。絶対です
最初のパーティションが少なくとも31 KiB(63セクター)で始まることを確認してください
ディスクの最初から;最近のディスクでは、多くの場合パフォーマンスです
とにかくより大きな境界にパーティションを揃えるので、最初の
パーティションは、ディスクの最初から1 MiBで始まる場合があります。

つまり、ext2はどちらか埋め込みorに関連するファイルシステムであるため、埋め込みとはまったく関係ありません。

問題は、このエラーメッセージ(または警告:)を生成するために何をしたかです。これは、ドライブ自体(MBRまたは拡張パーティション)ではなくパーティションに自分自身をインストールするように指示された場合に発生する可能性があると思います。

5
Hauke Laging