OpenSUSEトランザクションサーバーで次の問題が発生しました。誤って次の/boot
ように設定されていました。拡張子4専用ドライブ上のパーティション。これには も含まれています。ルートにも が作成されている/boot/efi
ことに気づきました。/boot
btrfs /
パーティションはGRUBによって使用されており、トランザクション更新. 普通のユーザーやプロセスにとって拡張子4 /boot
表示されますが、アンマウントすると通常は非表示になりますbtrfs /boot
現れます...
私は喜んで障害者を拡張子4のバージョンです/boot
が、もう1つ(btrfs)にはサブディレクトリがありません/boot/efi
。特別なFAT32パーティションであるため、別のパーティションにする必要があり、マウントポイントが必要です。しかし、トランザクションサーバーはディレクトリレイアウトの変更を禁止しているため、ディレクトリ/boot/efi
を作成できません。boot/efi
btrfs /boot
完全な再インストール以外にシステムを正常な状態にする方法はありますか?
答え1
あなたのコメントに関して、私は次のことを提案します。珍しいことです。
これは問題を解決する方法についての 100% の指示ではなく、実行方法に関する一般的なアイデアにすぎないため、これらの「アイデア」を自分でテストする必要があることに注意してください。
これらのシステム変更は、将来システム管理者が「一体何が起こったのか?」と疑問に思うことがないように、十分に記録して文書化する必要があります。
ext4
/boot
および fat32/boot/efi
ファイルシステムをアンマウントして、btrfs のみのファイルシステムで満足できるようにします。また、それらを自動マウントから削除します (fstab などで無効にします)。ここで、2 つのオプションがあります。勇気を出して新しい btrfs サブボリュームを作成するか (これで良い結果が得られます)、EFI パーティションをマウントして
/home/.EFI
、常に GRUB を手動で再構成する必要があります。クールなオプション A: 次のように btrfs サブボリュームを作成します
btrfs subvolume create /boot/efi
。/home
クレイジーなオプションB: asにディレクトリを作成するmkdir /home/.EFI && chown root. /home/.EFI && chmod 700 /home/.EFI && echo "lol, I'm crazy"
クールなオプション A を選択する場合、良いニュースがあります。efi ファイルシステムをそのディレクトリ/サブボリューム (
/boot/efi
) にマウントし、 を実行しupdate-grub
てから、ブートデバイスを配置するgrub-install /dev/sdX
場所sdX
を指定します。また、自動マウントのために efi ファイルシステムを に追加しますfstab
。気が狂ったときは、狂ったオプションBを実行します。efiファイルシステムをにマウントします
/home/.EFI
。また、これをfstab
自動マウント用に追加します。もし可能ならそれ以外の場合は、自動マウントを実行しません。 も実行しupdate-grub
、その後にブート デバイスを配置するgrub-install --efi-directory=/home/.EFI /dev/sdX
場所を指定します。sdX
注意: ブート デバイスは、efi ファイルシステムを持つデバイスである必要があります。
追伸異なるデバイスにefiファイルシステムの複数のコピーを持つことは可能です(冗長性のため)が、grubにそれを指示する必要があります。通常これは自動的に行われますが、あなたの場合は少し複雑かもしれません。
お知らせbtrfs サブボリュームは通常はスナップショットされませんが、efi ファイルシステムでは通常これは必要ありません -サブボリュームを追加した後は、システム全体、特にスナップショット機能をテストしてください。