私は初心者であり、コーディングの専門家ではありませんが、最善の方法を私に説明しようとしています。私はコンピュータにWindowsがデフォルトでインストールされていますが、大学で働くにはLinuxディストリビューションをインストールする必要があり、Ubuntuを選択しました。同じSSDに2つを混ぜないようにデュアルブートすることにしましたが、内部SSDにはWindowsを、外部SSDにはubuntuを維持しました。いくつかのガイドラインに従い、Ubuntuインストーラのすべての手順に従い、常に外部SSDをスワップスペースとして選択し、SSDが接続されているPCから独立するようにext4 /および「ブートローダインストール用デバイス」を選択しました(RAMと互換性があります)。プロセッサ)を使用すると、外部SSDなしでWindowsを正常に使用でき、SSDを自分のPCやUbuntuを使用できる他のPCに接続できます。これで問題が発生しました。 UbuntuとWindowsの両方がうまく動作します。外部SSDが接続されている(Ubuntuを搭載したSSD)PCを開くと、すべてのWindowsデータがありますが、SSDなしでコンピュータを開くと、次のメッセージが表示されます。
GNU GRUB version 2.06
Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists possible devices or file completions
この大きな問題を解決するのに役立ちます。必要に応じてUbuntuを削除できます。ファイルや重要な内容はありません。今のように失敗せずにインストールできます。重要なことは、外部SSDを接続せずにWindowsを正常に起動する必要があることです。正常な状態に戻ります。
注:スタックや他のコミュニティから多くのコンテンツを読みましたが、次の手順に従うための答えが見つかりませんでした。 bootrec.exe /fixboot bootrec.exe /fixmbr は、bootrec.exe /fixboot が「アクセス拒否」を提供するため動作しません。 「Ubuntuにgrubをインストールする方法と動作しているかどうかわかりません。
事前にありがとう
答え1
UbuntuとWindowsの両方がうまく動作します。外部SSDでPCの電源を入れると、すべてのWindowsデータがあります。
オペレーティングシステム(すべてのオペレーティングシステム)をインストールするとき、特にデュアルブートまたはマルチブート設定を実行するとき、ユーザーはブートプロセスやこの質問で提示されているようなマイナーな問題を解決する方法に精通している必要があります。 10年前のすべてのコンピュータと同様に、ユーザーはUEFIブートプロセスを理解し、複数のブートローダが常駐するESF(EFIシステムパーティション)の重要性を認識する必要がありました。
気づく -Ubuntuまたは派生製品でデュアルブートしてリムーバブルドライブにUbuntuをインストールするときは、Ubuntuインストーラが常に使用しているESPにブートローダをインストールすることに注意する必要があります。リムーバブルドライブに追加のESPを作成することはできません。
つまり、あなたのような非常に一般的な場合、GrubはWindowsブートローダマネージャと一緒に内部ドライブのESPにインストールされます。多くの人がこれを「バグ」と考えていますが、これが機能だと主張するかもしれません。Ubuntuのインストールを移植可能にして他のコンピュータから起動できるようにしたくない限り、これは問題ではありません。そうではありません。今のようにすべてが大丈夫です。
UEFI設定にアクセスする必要があります。 UEFIはBIOSに代わるファームウェアであり、依然として多くの人や製造業者から名前を誤って呼んでいます。起動順序をWindowsに戻す必要があります。
UEFI(「BIOS」)設定>起動メニュー。 「Ubuntu」が表示される「OSの選択」項目またはそれに対応する項目を見つけて、そのサブメニューを開き、「Windowsブートローダーマネージャ」を選択します。
これにより、Windowsが直接起動します。 Ubuntuを使用したいときはいつでも(1)外部ドライブを接続し、(2)その逆を実行するか、可能であればより簡単なタイムリーな起動メニュー/起動オーバーレイメニューを使用してください。これを行うには、取扱説明書または製造元のオンラインリソースを参照してください。ほとんどのコンピュータは上記のロジックとワークフローに従いますが、例外やその他の用語が存在する可能性があります。ファームウェア(UEFI)の詳細をよく理解してください。そうでなければ、これは説明されているように実際にはマイナーで、必要ではないかchroot
(この場合は意味なし)、(efibootmgr
EFIエントリを編集して起動順序を管理することはある程度意味がありますが、この場合は実際には必要ありません)。
PS - 次回「Ubuntuが必要」の場合は、仮想マシンの使用を検討してください。
答え2
chroot
grubが破損している場合は、このコマンドを使用してインストールできます。ターミナルを開き、次を実行するにはLinuxインストール(あなたの場合はUbuntu)が必要になることがあります。
lsblk This allows you to see what drives you have connected to your computer. Find a partition that matches the capacity of your Ubuntu drive. That will be your /mnt.
The first partition on that drive should be around half a gibibyte in size (512MiB or so), which will be your /mnt/boot directory.
mount /dev/sdXY /mnt This mounts your main partition for chroot to be invoked into.
(e.g. /dev/sdb2)
mount /dev/sdXZ /mnt/boot This mounts your boot partition for GRUB to be reinstalled to.
(e.g. /dev/sdb1)
chroot /mnt You are now in your unbootable drive's shell. From here you can reinstall grub with the following steps.
sudo apt install grub-efi-amd64 This command installs the bootloader. This is assuming you are using an Intel or AMD processor and are booting through UEFI.
exit Exits the chroot shell.
reboot Self-explanatory.
注:このコマンドは、/ mntが空のフォルダ(インストールプログラムに存在する必要があります)、コンピュータがLinuxブート用のUEFI対応のIntel / AMDシステムであることなど、さまざまな前提を持ちます。それだけではありません!これについて自分で調べてみてください。
答え3
SSDからコンピュータをUbuntuで起動します。インストーラ:efibootmgr。
Efibootmgr を使用すると、UEFI コンピュータの起動順序を変更できます。 Ubuntuシステムではefibootmgrを実行します。このコマンドは現在の起動順序を表示します(おそらくgrubが最初です)。ただし、Windowsスタートアップマネージャのスタートアップエントリも表示されます。 efibootmgr -oコマンドを使用すると、Windowsを最初に起動するように起動順序を変更できます。その後、起動時に(SSDが接続されていない状態で)Windowsで起動する必要があります(システムが最初にWindowsを検索するため)。
efibootmgrについて読んでください。わからない場合は、お試しになる前にここにお問い合わせください。現在の順序と項目を表示できるように、オプションなしでefibootmgrコマンドの結果を公開することを検討してください。
答え4
2番目のドライブにまだアクセスできる場合は、次の手順が効果的でした。
Windowsから起動し、ディスクマネージャを開きます。 SSDのドライブC:を「アクティブ」とマークします。パーティションを右クリックします。
スタートアップファイルを元のドライブにコピーします。コマンドプロンプト(または回復コマンドプロンプト)に移動して、次のコマンドを実行します。
bcdboot C:\Windows /s C: /f BIOS
bcdboot C:\Windows /s C: /f UEFI