LVM + lilo> GPT + EFI(またはGRUBがそれほど厄介な理由)

TL; DR著者はGRUBがLVMで完全に生きることができないと嘆き、2015年に廃止されたliloブートローダーがこれを非常にうまく行えるこ​​とを発見して驚いています。



MBR?



MBRが本質的に人類の最大の間違いであることを知って理解している人はほとんどいません。 システムをブートするために必要なデータとパーティションに関する情報を1つのブロックに混ぜる考えを誰が持っていたのでしょうか?



もう一度繰り返しますが、今は「それが起こった」と言う必要はありませんが、ロジックをオンにします。 MBRはひどいです。



さらに悪いことに、彼女は松葉杖の設計エラーを修正しようとしています。 1つのMBRレコードで4つのパーティションというばかげた制限を回避するには、「拡張」パーティションの概念を(論理的に)提案し、ディスク全体で(物理的に)半分空のMBRの束を欺いて作成する必要があります。 繰り返しになりますが、これについては詳しく説明しません。専門家は理解しますが、それは他の人には関係ありません。



MBRのもう1つの問題は、パーティションを単純に拡大できないことです(最後の場合を除き)。 パーティションのサイズを変更したいですか? まあ、それは簡単です-あなたはそれを削除し、その端を移動して再作成する必要があります。 親愛なる同志優れたptmaxユーティリティを見ました。このユーティリティを使用すると、この痛みを何らかの形で取り除くことができますが、別の方法があるのでもう一度聞いてください。



別のポイントは、MBRを使用したGRUBブートローダーの優れた動作です。 さて、ブートローダーは一生使うのに十分な446バイトではないので、core.imgをMBRの終わりと最初のセクションの始まりの間の「ギャップ」に入れます(以前は1メガバイトから開始することが提案されていました)。



GPT?



ええ、いや。 GPTは、ハリネズミがMBRの1つのボトルに組み立てられるという問題を解決します。 GPTは、いわば、GRUBが何かを書き込む隠された領域がなくなったことを教えてくれます。ここに別のセクションがあります。 素晴らしい。 しかし、セクションをまだ増やすことができないという事実からどこに消えるか?



たとえば、システムをインストールしました。 rootfsに32 GBを割り当てましたが、明日は64が必要であることに気付きました。 どうする rootfsの後にスワップパーティションを作成した場合、rootfsパーティション拡張は次のようになります。



1.スワップをオフにします

2.スワップの下のセクションを破壊する

3. rootfsとしてパーティションのサイズを変更します

4. rootfsファイルシステムを拡張する

5.スワップの下にパーティションを作成します

6.スワップを有効にする



すべてうまくいきますが、rootfs用に作成されたデータセクションがあり、それを移動できない場合はどうなりますか? さて、あなたは苦しむ必要があります。



LVM



ああ、それはすでにクールです! 結局のところ、ここではセクションの問題は一般的に括弧で囲まれていません。 好きなだけパーティションを作成できますが、後でパーティションを増やす方法については考えません。 かっこいい はい



しかし、残念ながら、LVMがMBRとGPTを置き換えるというロジックは、すべての人に当てはまるわけではありません。 これまで、システム管理者の多くのアプローチは、「ドライブ全体にパーティションを作成し、LVMにパーティションを追加しましょう」というロジックを中心にしていました。



さて、MBRまたはGPTを完全に放棄し、LVMのみを使用したいときに、ささいなことは終わります。



Ubuntuインストーラーで試す



注:以降、Ubuntuについて説明します。尊敬されているコミュニティが、他のディストリビューションでこの問題にどのような影響があるかを教えてくれるなら、嬉しいです。



「問題は何ですか? まあ、UbuntuインストーラーでLVMについての行を見ました!」-例えば、Ubuntuなど、少なくとも一度はインストールしたことがある人なら誰でも言うでしょう。



はい、まあ、インストーラーが何を提供してくれるか見てみましょう。







ここですべてが順調です。 ささいなことから重要なことまで。



そもそも、皮肉なことに感謝します-ディスクではなく、LVMの下のセクションです。 なんで? 私はそれを発明した人々の良心に任せます。 特定の皮肉は、セクションが拡張されていることです。 MBRを含む2つのブロックがディスクでハングします。 わかった



次に、通常の/ブートパーティションを評価します。 はい、LVMが必要ですが、MBRもあります。 なぜそう さて、これは、grubがLVMの実行方法を知らなかったという事実によって正当化される可能性がありますが、それは長い間可能でした。



さて、大切にスムーズに。 本質的に、LVMがMBRの上にある地球上のフクロウのように引き伸ばされていることを気にしませんか? これを理解する方法は? これはなぜですか?



はい、スチュワーデスをすでに埋めます



MBRを拒否するのは簡単です-LVMへの提出時にディスク全体を提供できますか? 私たちはでき、必要とします。 インストーラーからこれを行う方法は? ああ、まさか。 手。 つまり、パーティションディスクの手順を実行する前に、隣接するttyに切り替えて、次の操作を手動で行う必要があります(システムをインストールするディスクは/ dev / sdaと呼ばれます)。



pvcreate /dev/sda vgcreate ubuntu /dev/sda lvcreate -n root -L6G ubuntu lvcreate -n swap -l100%FREE ubuntu
      
      





ここで、私はrootfsに6ギガバイトを割り当てます。残りはスワップで、必要に応じて変更します。



それでは、ディスクのパーティション分割の段階で、作成したパーティションが表示されます。さらに、何をどこに進めるかを配布できます。



ヒューストン、問題があります



そして、すべてがうまくいきますが、正確にはブートローダーのインストール段階までです。 インストーラーはGRUBのインストールを提案します。 もちろん、同意します。 何が悪いの?



LVMは通常、物理メディアの先頭から1Mbだけ後退することを思い出させてください。 どうやって知るのですか? よくチーム



 pvs -o +pe_start
      
      





それを表示します。 これは私たちにとって何を意味するのでしょうか? ディスクの最初のメガバイトは無料で、そこにGRUBが446バイトのブートローダーとcore.imgを書き込むことを誰も気にしません。 それはMBRなしで、彼はそれを行うことはできません!



繰り返しになりますが、GRUBの優しさに驚いています。彼らはディスクを提供し、既に起動して、そこから起動できるようにします。 LVMの方法を知っていますか、問題は何ですか?



-sオプションを使用してgrub-installを手動で起動しようとしても、「hostdisk // dev / sdaでファイルシステムを識別できません:安全性チェックを実行できません」のみになりました。



原材料を燃やすことは残酷な真実を明らかにします:GRUBは、少なくとも1つのパーティションを持つライブMBRがない場合、それ自体をインストールする方法を単に知りません。



叙情的な余談:軽emptのある真の戦闘機はこう言います。 EFI教会に来てください!」



一般に、私はEFIではすべてがはるかに簡単ですが、EFIではできない多くのレガシーマシンに問題があります。 つまり、通常、BIOSとしてEFIを強制的に起動することは可能ですが、それとは逆に、必ずしも実現可能ではありません。 そして、EFIだけでなく、LVMとアイスクリームもダウンロードしたいです。



EFI?



一般に、EFIは非常によく考えられています。 隠されている領域はありません。セクションを作成し、そこにブートローダーを.efiファイル、7行の構成行、およびブートとして配置します。



待てない パーティションを再度作成しますか? 誰かがEFI仕様でLVMのサポートを追加すると推測するでしょうか? お願いします



もちろん、出力として、小さなフラッシュドライブを使用して、パーティションなしで全体としてEFI FATに必要な形式にフォーマットすることができます。 すでにパンですが、とにかく、システムに2つのディスクを保持する必要があります。1つはEFI用で、もう1つはシステムが既にあるLVMの下にあります。



リロ?



ここでは、大きなWATが聞こえると思います。 はい、残念ながら、これは実際の深刻なWATです。



GRUBがなぜこんなに巨大なのか不思議に思ったことはありませんか? 通常、このように1つのシステムをロードする困難な状況に適しているため、ここではオプションが必要であり、これが必要です。 しかし、ほんの一瞬、すべてが長い間仮想化されているシステム管理者にとって、これは通常ナンセンスです。 最小限の苦労でシステムを起動する必要があります。



そして、私たちは何を見つけますか? そのliloはLVMを備えたディスクに完全にインストールできます。 LVMで起動/起動できます。 少なくとも一部のMBRをディスク上に作成する必要はなく、同じUbuntu 16.04(つまり、 パッケージがあり、それで十分です。



トラブルは異なります。 liloの開発は2015年の終わりに停止しました。 一方、最新のシステムを完全にLVMにロードするために必要なことは何でもできます。



おわりに



もう一度、この記事のメインメッセージを理解してください-通常のパーティションテーブルを破棄してください。 MBRでもGPTでも、LVMがあれば必要ありません。 LVMにパーティションを割り当てないでください(Windowsからのある種のツイストデュアルブートが必要な場合を除く)。これは意味がありません。



そして、いつかEFIでLVMがサポートされることを一緒に期待しましょう。 それまでの間、私たちは苦しむでしょう。



All Articles