私はここでDebian 9をペンドライブ(私の場合はSDCardアダプタ)に直接インストールすることで動作できることを読んだことがあります。しかし、問題は、コンピューターからアダプターを取り外したときに始まりました。 Linuxで起動しようとしているときは、BIOS設定で「UEFI:debian」とマークされた起動デバイスを選択するだけです。削除すると、このオプションも消えます。
私はDebianのインストールを失いたくないので、再び機能したいです。再起動する必要があります。
答え1
これ臭いがするBIOSの問題。あなたの質問にいくつかの情報がありませんので、次のようにします。
UEFI: debian
インストール後、BIOSメニューに表示されます(grubメニューではありません)。- USBドライブを取り外して再挿入すると、BIOSは表示されなくなります。
UEFI: debian
再起動後も - プライマリハードドライブはEFIを使用して別のオペレーティングシステム(Windows?)を起動します。
BIOSについてもっと知らないと、簡単なソリューションを提供するのは難しいです。しかし、問題は、2つのEFIパーティションが内部HDDに1つ、USBディスクにあることです。
USB EFIエントリを再接続すると、BIOSに手動でUSB EFIエントリを思い出させることができますが、方法は不明です。
考えられる解決策の1つは、EFIエントリをUSBドライブから内蔵ハードドライブにコピーすることです。これはDebianでより簡単ですが(もう一度戻ることができれば)、Windowsで利用可能。
EFIエントリは、デフォルトでEFIパーティションディレクトリにあるいくつかのファイルです。したがって、内蔵HDDのEFIパーティションをマウントし、USBドライブからそのパーティションをコピーするだけです(通常はマウントされています/boot/efi/EFI/debian
)。
答え2
私の考えでは、ルートファイルシステム(Debian OS)が破損しているようです。
このようなことが起こる可能性があります
オペレーティングシステムが完全にシャットダウンする前にドライブを取り外すか、
他のオペレーティングシステムが実行されている間に接続している場合は、ドライブを取り外すためにドライブのすべてのパーティションをアンマウントする必要はありません。
Linuxを実行しているコンピュータにドライブを接続し、ファイルシステムを修復してみることができます。
SDカードのすべてのパーティションがマウント解除されていることを確認してください。
SDカードのルートファイルシステム(およびDebianに属するファイルシステムなど)を回復します。家、別の基本パーティションがある場合。
各ファイルシステムに対して次のコマンドラインを実行します(ここではext4と仮定します。他のファイルシステムを使用している場合は変更します)。
sudo e2fsck -f /dev/sdxn
ここで、xはSDカードのデバイスドライブ文字、nはパーティション番号です。例えば
/dev/sdb2
WindowsがUSB経由でSDカードの起動システムを損傷した可能性があります。これは、カードが接続されている場合、またはWindowsが起動した場合、またはWindowsが特定のアップデート/アップグレードプロセスを実行している場合に発生する可能性があります。
この場合、インターネットを介して「grub回復」または「ブート回復」方法を見つけることができます。わかりました方法Ubuntuの場合、同じアプローチがDebianでも機能するかどうかはわかりません。
破損したファイルシステムに関するパート1と破損したWindowsブートシステムに関するパート2は、別々の問題について説明しています。私はSDカードのDebianシステムにどのような問題が影響するかを知るのに十分な特定の問題を知りません。
答え3
まあ、私は正確なものが見つかりませんでした。何設定に問題があるようですが、rEFIndを使用しているようです(最初https://wiki.debian.org/GrubEFIの再インストール) 問題を解決します。 BIOSはpendriveカーネルを見つけることができませんが、rEFIndは起動に問題はありません。
私はこれが解決策だとは思わないが、解決策としてうまくいく。
答え4
Debian インストーラはデフォルトで SDCard アダプタを固定ディスクとして扱い、ESP パーティションに UEFI ブートローダをインストールします。その後、もう1つのことを行います。次のefibootmgr
コマンドを使用します。UEFI NVRAM ブート変数にブートローダを登録します。。
アダプターを取り外す前に、すべてが大丈夫でした。 SDCard ディスクとその上のブートローダは、UEFI ブート順序に従って登録されました。しかし、明らかに、システムのUEFIファームウェアには次の機能があります。起動時にNVRAM起動変数エントリが存在しないディスクを参照することを検出した場合、そのエントリはもはや必要ではないと仮定して削除します。 NVRAMブート変数がないと、UEFIファームウェアは/EFI/debian/grubx64.efi
SDCardのESPパーティションを検索できなくなります。
他の人はUEFIブートローダをハードドライブにコピーすることをお勧めします。これは機能し、SDCardから起動できるようにしますが、...特定のシステムでのみ可能です。
別の解決策があります。 GPTパーティションディスクのFAT32パーティションにアクセスできるシステムにSDCardを挿入します。このシステムを使用して、SDCardのESPパーティションにアクセスし、EFI
パーティションのルートにあるディレクトリ、debian
その中のサブディレクトリ、およびgrubx64.efi
その中にあるファイルを見つけることができます。
EFI
次に、そのディレクトリにという名前の新しいサブディレクトリを作成しますboot
。次に、サブディレクトリgrubx64.efi
のファイルをサブディレクトリdebian
にコピーしますboot
。サブディレクトリでboot
名前grubx64.efi
をに変更しますbootx64.efi
。
FAT32パーティションのこのパスは、64ビットUEFI PCがリムーバブルディスクでUEFIスタイルのブートローダを見つけるときに見つける/EFI/boot/bootx64.efi
パスです。このファイルが存在する場合、UEFI BIOSはSDCardをUEFIスタイルで起動できることを検出する必要があります。オペレーティングシステム名はUEFI NVRAM登録の一部であるため表示されなくなりますが、次のように表示されることがUEFI:debian
ありますUEFI:<model of the SDcard>
。これで、特定のコンピュータだけでなく、リムーバブルメディアからUEFIスタイルの起動を許可するすべてのコンピュータでSDカードが再起動されます。