VirtualBox Ubuntu 18.04ホストでEFIを使用して物理ディスクを起動する


1

このマシンでレガシーBIOSブートを使用して、Ubuntu 16.04とWindows 10を3つのハードドライブでデュアルブートしていました。GRUBを使用してSSDとHDDコンボでUbuntuを起動し、独自のSSDでWindows 10を起動しましたが、Ubuntuの仮想マシンでそのWindows 10ディスクを起動することもできました。

Ubuntu 18.04にアップグレードしたとき、UbuntuとWindowsの両方をUEFIインストールとして再インストールしました。Virtualboxで物理的なWindows 10ドライブを使用できなくなったことを除いて、Eveythingは期待どおりに動作します。

私は数日間権限を調整しようとしましたが、最終的にはブート時にGRUBリカバリシェルにダンプされます。仮想マシンをライブディスクで起動し、ドライブに問題なくアクセスできます。

私は、EFIブートパーティションまたはそれらがどのように機能するかについて、本当に詳しくありません。オペレーティングシステムごとにEFIパーティションが必要かどうかさえわかりませんが、Ubuntuハードディスクを使用せずに他のマシンでWindows 10ディスクを使用できるようにしたいと考えています。

誰が私が間違っているのか教えてもらえますか?

これが私のセットアップです。/ dev / sdaは私のホームおよびvarマウントポイントです。sdcは私のルートです。sdbはWindowsディスクです。

Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 1D529F06-982A-4C10-86F1-9AABFA271304

Device          Start        End    Sectors   Size Type
/dev/sda1        2048   16777215   16775168     8G Linux swap
/dev/sda2    16777216   25165823    8388608     4G Linux filesystem
/dev/sda3    25165824 1659922431 1634756608 779.5G Linux filesystem
*** IGNORE THESE PARTITIONS ***
/dev/sda4  1659922432 1695938559   36016128  17.2G Linux filesystem
/dev/sda5  1695938560 1704327167    8388608     4G Linux filesystem
/dev/sda6  1704327168 1828964351  124637184  59.4G Linux filesystem
/dev/sda7  1828964352 1926782975   97818624  46.7G Microsoft basic data


Disk /dev/sdb: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: C76B0EBA-27D6-4FE0-A92F-F78276F26981

Device       Start       End   Sectors   Size Type
/dev/sdb1     2048   1023999   1021952   499M Windows recovery environment
/dev/sdb2  1024000   1228799    204800   100M EFI System
/dev/sdb3  1228800   1261567     32768    16M Microsoft reserved
/dev/sdb4  1261568 500117503 498855936 237.9G Microsoft basic data


Disk /dev/sdc: 29.8 GiB, 32017047552 bytes, 62533296 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: D7616B5D-A0FA-4ACD-9122-DAB9BA2F21ED

Device      Start      End  Sectors  Size Type
/dev/sdc1    2048   411647   409600  200M EFI System
/dev/sdc2  411648 62531583 62119936 29.6G Linux filesystem

VirtualboxはUEFIボリュームの起動をサポートしていません。serverwatch.com/server-tutorials/...
acejavelin

それでは、なぜVbox 5.2.12にオプションがありますか?
SuperMechaCow

申し訳ありませんが、私のコメントは古い記事にリンクしています... UEFIブートはサポートされていますが、VBがNVRAMのエントリを維持するのに悪い仕事をしているようです。UEFIは、インストールによってEFIファイルの場所を「BIOS」ファームウェアに登録します。これにより、OSを起動する方法と場所がわかります。どのようなエラーが発生していますか?
アセジャベリン

私の知る限り、VirtualBox(ゲストに対してEFI BIOSが有効になっている)はGPT / EFI仮想ディスクからのみ起動できます。物理ディスクからではありません。また、MBR互換性を持つGPTとしての仮想ディスクセットアップからではありません。VirtualBoxの実装は、主に仮想macOSの起動を可能にするために存在し、それ以上の作業はほとんど行われていません。
トニー

回答:


0

VMの起動時に削除を押してBIOSを入力し、WindowsのEFI起動オプションを手動で追加するだけでよいことがわかりました。


2
どうやってそれを説明してくれますか?
fffred

0

とりあえず、EFIシェルを使用してWindowsを起動しています。

EFIシェルを使用して、ブートローダーを手動で起動できます。fs0:と入力して、最初のファイルシステム(通常はESP)にアクセスします。「cd EFI {osname}」と入力します。{osname}は、OSがブートローダーをインストールしたディレクトリの名前です。(どのOSをインストールしたかを言っていないので、それが何であるかわかりません。lsEFIと入力すると、そこに何があるかが表示されます。)名前を入力してブートローダーを起動します。繰り返しますが、私はそれが何であるかを知ることができません。Linuxの場合、通常はgrubx64.efiです。Windowsの場合、bootmgfw.efiです。

答えはこちらをご覧ください: 仮想ボックスでEFIシェルから抜け出す方法

ホストパーティションを含めずに物理ディスクを再作成することもできます。

vmdkファイルを作成する場合、-mbrパラメーターは必要ありませんが、ホストOSが存在するパーティションを含めないでください。つまり、vmdkに物理ドライブ全体を含めると失敗します。最後のコマンドライン(ホストパーティション#3を除く)は次のとおりです。

C:\ Program Files \ Oracle \ VirtualBox> VBoxManage.exe internalcommands createrawvmdk -filename e:\ VirtualBox \ Ubuntu.vmdk -rawdisk \。\ PhysicalDrive0 -partitions 1,2,4,5,6,7

ソース:https : //stackoverflow.com/questions/34371180/virtualbox-fail-to-bootup-guest-from-gpt-physical-partition

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.