lsblkコマンドが/ bootパーティションを表示しないのはなぜですか?

lsblkコマンドが/ bootパーティションを表示しないのはなぜですか?

システムでブートパーティションを見つけ、lsblkコマンドを実行してみました。

sda              8:0    0 930.4G  0 disk
├─sda1           8:1    0     1G  0 part
├─sda2           8:2    0    40G  0 part
├─sda3           8:3    0 763.6G  0 part
└─sda4           8:4    0 125.8G  0 part
sde              8:64   0   100G  0 disk
├─sde1           8:65   0     2G  0 part
└─sde2           8:66   0    98G  0 part
 ├─sles-root0 254:0    0  27.9G  0 lvm  /
 └─sles-root  254:1    0    70G  0 lvm

ただし、df -h /boot を実行すると、これが表示されます。

Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/sles-root0   28G  3.8G   23G  15% /

これは何を意味し、システムにブートパーティションがあるかどうかを確認します。

ベストアンサー1

システムファームウェアにディスクのフルサイズにアクセスできない制限がいくつかある場合は、ブートパーティションが必要です。ディスクの先頭に別々のパーティションを作成すると、/bootブートローダがアクセスする必要がある項目(ファームウェアに組み込まれているドライバを使用)が常にディスク上のファームウェアアクセス可能領域内にあることが保証されます。

ブートローダがカーネルファイルとinitramfsファイルを正常にロードすると、カーネルは独自のドライバを使用して起動して起動します。これはシステムファームウェアよりも更新が簡単で、ディスクサイズの制限が少なくなります。

システムファームウェアにそのような制限がない場合、/bootルートファイルシステムに汎用ディレクトリを作成するのを防ぐ方法はありません。ブートローダがファイルシステムの種類を読み取ることができる限り(ファイルシステムがブートローダが読み込んでいるディスクに完全に含まれている限り)、正常に動作します。

ブートパーティションがあるもう1つの理由は、暗号化されたルートファイルシステムがあり、ブートローダが暗号化をサポートしていない場合です。この場合、ブートローダが操作を実行する唯一の方法は、カーネルファイルとinitramfsファイルを暗号化されていないパーティションに配置することです。これらの設定では、ユーザーから必要なパスワードまたはキーを取得し、暗号化のロックを解除するために必要なツールと構成をinitramfsに含める必要があります。

パーティションがあっても、/bootマウントを続ける必要はありません。 a) カーネルアップデートをインストールする場合、b) initramfs ファイルをアップデートする場合、 c) ブートローダまたはその設定をアップデートする場合にのみインストールします。一部のディストリビューションでは、通常の使用中にパーティションをアンマウントしたままにしておき、そのカーネル/initramfs/bootloaderアップデートツールには、/boot必要に応じてマウントおよびアンマウントする機能が含まれています。/boot

あなたのdf -h /boot出力に関して:

Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/sles-root0   28G  3.8G   23G  15% /

/bootこれはコマンドの引数として指定されるため、dfコマンドは指定されたファイルまたはディレクトリを含むファイルシステムのみを表示します。Mounted on列に示すように、/これはルートファイルシステムです。

次のステップは以下を実行することです。そのディレクトリに保存されますファイルがls -l /bootカーネル 。vmlinuz-<kernel version number>System.map-<kernel version number>/boot/boot

ただし、ls -l /boot表示されているディレクトリが完全に空の場合、実際のファイル/bootシステムは現在アンマウントされており、空のディレクトリは単に(現在使用されていない)マウントポイントであることを意味します。


最新のUEFIシステムがあり、従来のBIOS互換性で起動しない場合は、現在の設定を確認するのが非常に簡単です。まずefibootmgr -vrootとして実行:現在のファームウェア起動設定が表示されます。 UEFIブートエントリには、さまざまな形式を取ることができるブートパス文字列が含まれていますが、Linuxブートの最も一般的な形式は次のとおりです。

HD(1,GPT,<PARTUUID string for ESP containing the bootloader file>,0x800,0x82000)/File(<bootloader pathname within the ESP partition>)

lsblk -o +PARTUUIDを使用すると、システム内の各パーティションのパーティション識別子を表示できるため、ブートローダを含めるESP(EFIシステムパーティション)を見つけることができます。一般ファイルとして。 ESPは通常FAT32パーティションです。 UEFI仕様のすべてのバージョンでは、常にすべてのUEFIファームウェア実装がFAT32を理解するように要求していましたが、ファームウェア開発者は他のファイルシステムのサポートも追加できます。

ブートローダのパス名は、通常、バックスラッシュをディレクトリ区切り文字として使用してWindowsパス名ルールを使用して作成されます。したがって、表示されたブートローダパスがたとえばESPをマウントする場合、ブートローダを見つける必要があります(FAT32は大文字efibootmgr -vと小文字を区別せず、UEFIファームウェアも同様です...しかし、一部のUEFI実装にはエラーがある可能性があります)。\EFI\SLES\GRUBX64.EFI/boot/efi/boot/efi/EFI/SLES/grubx64.efi

また、現在実行中のシステムを起動するために使用される起動エントリを識別する4桁の行もefibootmgr -v含まれています。BootCurrent:

おすすめ記事