これは、1TB USB外付けハードドライブのubuntu 16.04内から作成しています。このラップトップでは正常に動作しますが、他のコンピューターのUEFIブートメニューから起動しようとすると、ドライブは外付けHDDとして表示されますが、選択するとLinuxが起動せず、Windows OSに戻りますコンピューター。 USBブートを有効にし、セキュアブートを無効にして、それが問題であるかどうかを確認しましたが、正しくありませんでした。
興味深い点:USBを接続せずに(Linuxを実行する)ラップトップを起動し、最後にLinuxを実行した後でも、初期のgrubメニューが表示されます。外付けドライブに別のコンピューターで動作する適切なブート/ grub情報がない可能性がありますか?たぶん、その情報は私のラップトップにここにしか保存されていませんか?
外付けドライブは次のように分割されます。
私がやりたいのは、外付けHDDを任意のコンピューターに接続してLinuxディストリビューションを実行できるようにすることです。誰かが私のディストリビューションをポータブルにするのを手伝ってくれますか?
あなたの仮定は正しいです。 Ubuntuをインストールすると、内蔵HDDのEFIパーティションにgrubがインストールされました。外付けドライブを起動可能にするには、grubがインストールされたEFIシステムパーティションが必要です。通常、このパーティションはドライブの最初のパーティションです。ただし、ルートパーティションを移動すると、ブートエラーが発生する可能性があります。
外付けハードドライブを再パーティションします。 Linuxパーティションを削除し、FAT32でフォーマットされ、ESP(Efiシステムパーティション)としてフラグが設定された500MBパーティションを作成します。 Ext4でフォーマットされたLinuxパーティションの残りのスペースを使用します。結果は次のようになります。
次に、Ubuntuを再インストールします。手動パーティション設定オプションを使用して、事前作成されたパーティションを選択します。内蔵ドライブのEFIパーティションが「使用しない」に設定されていることを確認してください。
外部ドライブを起動するには、デフォルトのメディアパスを使用する必要があります。 LiveCDを起動し、EFIパーティションを外部にマウントします(これを行うには、ESPフラグを一時的に削除する必要がある場合があります)。 EFI/ubuntu/shimx64.efi
をEFI/boot
にコピーし、名前をbootx64.efi
に変更します。 EFIパーティションをアンマウントし、削除する必要がある場合はESPフラグを設定します。
LiveCDから起動し、gparted
を使用してLinuxパーティションを500MB縮小します。空き領域を持つ新しいパーティションを作成し、FAT32をフォーマットし、ESPフラグを立てます。新しいパーティションのUUIDを記録します。
Linuxパーティションをマウントします。 etc/fstab
を編集します。次のような行を探します。
# /boot/efi was on /dev/sda1 during installation
UUID=BB1E-83B5 /boot/efi vfat umask=0077 0 0
UUIDを新しいEFIパーティションのUUIDに置き換えます。
次に、両方のドライブのEFIパーティションをマウントします(ESPフラグを一時的に削除する必要がある場合があります)。 /efi/ubuntu/shimx64.efi
を内部ドライブから外部の/efi/boot/
にコピーし、名前をbootx64.efi
に変更します。注:外部ドライブにフォルダーを作成する必要があります。
最後に、内部ドライブのEFIパーティションをマウントします。フォルダー/EFI/ubuntu
を削除します。再起動し、起動中に適切なファンクションキーを押してシステム設定を開きます。 USB HDDが内部ドライブの前になるように起動順序を変更します。
外部が接続されている場合はlinuxを起動し、外部が接続されていない場合はWindowsを起動する必要があります。