最近、PCをアップグレードしました。新しいマザーボード(ASUS M5A99X EVO)は、通常のMBRオプションの代わりにUEFiを使用します。
以前のハードウェア(MSI MS 7267)を使用していたときにUbuntu 11.10をインストールし、Ubuntuだけで問題なく起動し、Windows 7も同様ですが、Windows 7はUEFI(GPT)ブートを使用し、UbuntuはMBRを使用しています。
私は別々のドライブにOSを持っているので、両方のOSが正常に起動すると言ったように、GRUB2がWindowsブートローダーおよびその逆に置き換えられることはありませんが、それを行うには1つのドライブをこの場合はUbuntuドライブとして切断する必要がありますWindowsが読み込まれないようにします。
ここで私の質問は、MBRを使用する代わりにGPTを使用してWindowsを起動できるようにUbuntuのドライブを変更/変換するにはどうすればよいですか?です。
システム全体を再インストールしたり、データを失ったりしないでください。
ドライブを消去する場合、モードが何であれ、どうすればUbuntuをGPT、UEFIにインストールできますか?.
私はgdiskを使用してMBRからGPTに変換しましたが、Ubuntuが起動できないのはgrubが起動しないようです。
OSを再インストールしましたが、ドライブはデフォルトでGPTになりましたが、grup-pc
の代わりにgrub-efi
がまだ使用されています。
UbuntuをEFIから起動するにはどうすればよいですか?.
目次:
BIOS =基本入出力システム
(U)EFI =(統合)拡張可能ファームウェアインターフェイス
MBR =マスターブートレコード
GPT = GUIDパーティションテーブル
UEFI/EFI/BIOS =ファームウェアインターフェイス
MBR/GPT =ドライブ上にあるパーティションとそれらからブートする方法をコンピューターが(ハードディスクごとに)知る方法。
ファームウェアインターフェイスは、ファームウェア(デバイス内のソフトウェア)とオペレーティングシステムが相互作用する方法です。ハードウェアを初期化してからオペレーティングシステムを実行し、オペレーティングシステムドライバーがハードウェアを操作できるようにします。
BIOSは、使用されている通常のファームウェアインターフェイスです。 UEFIは、より高速で、GUIを備え、ネットワークカードを起動してIPアドレスを取得できるなど、いくつかの機能を備えた新しいインターフェイスです。 UEFIはEFIを置き換えます。 (EFIを開発している人は、同様のことをしている他の人がいることを知り、EFIのアイデアを持ち込んで参加しました。これがUEFIになりました).
BIOSでは、ブートローダーがディスクの先頭にある必要がありますが、UEFIはこのためにパーティションを使用し、使用する複数のブートローダーから選択できます。
MBRは、ブートローダー(BIOS用)とパーティションマップを含むディスクの先頭のコードセクションです。および一意のディスク識別子。
GRUBをMBRを使用してディスクにインストールするには、GRUBは、MBRに小さなプログラムを配置して、ディスクの別の部分からGRUBの残りをロードします。 (これは、MBRが小さすぎてすべてのGRUBを含めることができないためです)。選択されるスペースは、MBRと最初に存在するパーティションとの間のスペースです。
GPTは、パーティトンの指定方法の標準です。 「保護」MBRがありますが、これはBIOSベースのコンピューターがMPTのみを知っているツールを起動および停止して、GPTを破壊しようとすることを許可するためだけです。持つことができます
(GPTの処理方法は、BIOS(またはBIOSエミュレーションモードのUEFIシステム)またはUEFIを使用して起動するかどうかによって異なります。質問に関連するUEFIに焦点を当てます)。
オペレーティングシステムのブートローダーは、(通常)FAT32でフォーマットされたEFI System Partitonと呼ばれるパーティションに保存されます。これは、GRUBがインストールされる場所です。
最初...
私たちはパーティションテーブルをいじっているので、保証された安全性は不可能です。それは危険な操作です。ただし、メソッドはデータを失うべきではありません。
これに遭遇する他の人:Apple Macでは使用しないでください。
今...
ライブCD(または別のディスクにインストールされた別のLinuxインストール)でこれを行う必要があります。
GPTディスクを扱うときは、GPT対応プログラムを使用する必要があります。 「GPT fdisk」は使用に適したツールであり、今後使用するものです。ディストリビューションに応じて、gptfdisk
またはgdisk
と呼ばれます(Ubuntuではgdisk
と呼びます)。 Parted(およびGparted)もGPT対応であるため、GPTディスクで「安全に」使用できます。
変換するには、以下が必要です。
parted
(コマンドライン)またはgparted
(GUI)を使用して、最初と最後のパーティションのサイズを変更します。最初のパーティションの前には約200MiBがあり、最後のパーティションでは1MiBから2MiB(どちらでもかまいません)が最後に削除されている必要があります。
走る
gdisk /dev/sdx
変換するデバイスの変更は/dev/sdx
です。
パーティシトンテーブルを変換することを通知する必要があります。
GPT fdisk (gdisk) version 0.6.14
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format.
THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing 'q' if
you don't want to convert your MBR partitions to GPT format!
***************************************************************
Command (? for help):
次に、新しいパーティションを追加し、タイプを「EFIシステム」にします。最初に空き領域を見つけ(34などの低いセクター番号をお勧めします)、すべての空き領域を自動的に使用します。この例では、4GBのUSBフラッシュドライブを使用しており、既に1つのパーティションがあり、上記に従ってサイズ変更されています。
Command (? for help): n
Partition number (2-128, default 2): 2
First sector (34-7831518, default = 34) or {+-}size{KMGTP}:
Information: Moved requested sector from 34 to 2048 in
order to align on 2048-sector boundaries.
Use 'l' on the experts' menu to adjust alignment
Last sector (2048-421887, default = 421887) or {+-}size{KMGTP}:
Current type is 'Linux/Windows data'
Hex code or GUID (L to show codes, Enter = 0700): L
0700 Linux/Windows data 0c01 Microsoft reserved 2700 Windows RE
4200 Windows LDM data 4201 Windows LDM metadata 7501 IBM GPFS
7f00 ChromeOS kernel 7f01 ChromeOS root 7f02 ChromeOS reserved
8200 Linux swap 8301 Linux reserved 8e00 Linux LVM
a500 FreeBSD disklabel a501 FreeBSD boot a502 FreeBSD swap
a503 FreeBSD UFS a504 FreeBSD ZFS a505 FreeBSD Vinum/RAID
a800 Apple UFS a901 NetBSD swap a902 NetBSD FFS
a903 NetBSD LFS a904 NetBSD concatenated a905 NetBSD encrypted
a906 NetBSD RAID ab00 Apple boot af00 Apple HFS/HFS+
af01 Apple RAID af02 Apple RAID offline af03 Apple label
af04 AppleTV recovery be00 Solaris boot bf00 Solaris root
bf01 Solaris /usr & Mac Z bf02 Solaris swap bf03 Solaris backup
bf04 Solaris /var bf05 Solaris /home bf06 Solaris alternate se
bf07 Solaris Reserved 1 bf08 Solaris Reserved 2 bf09 Solaris Reserved 3
bf0a Solaris Reserved 4 bf0b Solaris Reserved 5 c001 HP-UX data
c002 HP-UX service ef00 EFI System ef01 MBR partition scheme
ef02 BIOS boot partition fd00 Linux RAID
Hex code or GUID (L to show codes, Enter = 0700): ef00
Changed type of partition to 'EFI System'
これでEFIパーティションができました。
Command (? for help): p
Disk /dev/sdd: 7831552 sectors, 3.7 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 669247F2-37F7-4797-98F9-9CE56F7EA8C8
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 7831518
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 421888 7829503 3.5 GiB 0700 Linux/Windows data
2 2048 421887 205.0 MiB EF00 EFI System
次にgdisk
を終了します
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed, possibly destroying your data? (Y/N): y
OK; writing new GUID partition table (GPT).
The operation has completed successfully.
ここで、Gparted(またはコマンドラインmkfs.vfat
)を使用して、パーティションをFAT32としてフォーマットします。
これは、前の部分が自分で試したことがないという保証が少なくなっています。
私はこのステップについて確信が持てないので、 RAOFの指示 を使用して推測します。
Grub-efiに切り替えるには
- EFIパーティションを見つけます。/boot/efiにマウントします。これを/ etc /fstab¹に追加します
- Grub-efiパッケージをインストールする
- BIOSのブート優先順位をUEFIおよびレガシーからUEFIのみに切り替えます(または同様のオプション)
どのバージョンのgrub-efiをインストールするかを決める必要があります
ioreg -l -p IODeviceTree | grep firmware-abi
EFI32
と書かれている場合はgrub-efi-ia32
パッケージをインストールし、EFI64
と書かれている場合はgrub-efi-AMD64
パッケージをインストールします。次のコマンドでパッケージをインストールできます
Sudo apt-get install <package name>
これはおそらく、EFIモードで起動した場合にのみ機能します。
動作しない場合は、grub-efi
がインストールされたら これら ステップバイステップの説明(「(U)EFIシステムにGRUB2をインストール」の下)を試してください。
RAOKの指示が機能する場合、次の行を/etc/grub.d/40_custom
に追加できるはずです。
menuentry "Windows 7" {
set root='(hd0,gpt1)'
chainloader /EFI/Microsoft/bootmgfw.efi
}
WindowsはGRUBによってhd0
として認識されることを前提としています。動作させるには、hd1
に変更する必要がある場合があります。
今すぐ実行
update-grub
構成ファイルを更新します。
いくつかのソースを使用しました。
この答えは不完全です。私はこれをテストしていません。データを食べることはほとんどありませんが、警告されています!
ここで起こっているのは、BIOSがレガシーMBRから優先的に起動しているため、貧弱な古いUEFI Windows 7が見落とされているということです。
UEFIの素晴らしい点の1つは、WindowsがGRUBを上書きすることを心配する必要がないことです。これらは両方ともEFIパーティションでうまく共存する必要があります。したがって、1つのオプションはgrub-efi
に切り替えることです。 注:grub-efi
がMSDOSスタイルのパーティションを理解しているかどうかわかりません。 Ithinkと思います。そうでない場合、これは起動に失敗し、LiveCDを回復する必要があります。実際、とにかくLiveCDを手元に置いてください!
grub-efi
に切り替えるには、
/boot/efi
にマウントします。これを/etc/fstab
¹に追加しますgrub-efi
パッケージをインストールしますUEFI and Legacy
からUEFI only
(または同様のオプション)に切り替えますそのshouldでUEFIブートUbuntuインストールが残ります。起動しない場合は、信頼できるLiveCD(またはUbuntu代替インストールCD-「壊れたシステムを修正する」オプションが必要です)を起動し、システムにchrootして、grub-pc
を再度インストールします。
¹:このステップの詳細:LinuxカーネルがEFIシステムパーティションと呼ぶものを見つける必要があります。これは、/dev/sda2
、/dev/sdb3
、またはsuch²のようなものになります。次に、/boot/efi
ディレクトリを作成し、/etc/fstab
に行を追加する必要があります。 EFIパーティションが/dev/sdb3
の場合、次の行を追加します。
/dev/sdb3 /boot/efi vfat defaults 0 1
Sudo mount /boot/efi
を実行すると、/boot/efi
にEFI
ディレクトリとWindows 7のサブディレクトリが含まれていることがわかります。
²:複数のハードドライブがあるので、パーティションのUUIDを確認することをお勧めします。これは、ハードドライブの追加/削除の下では安定しますが、/dev/sda2
名は変更しないことが保証されません。 。ただし、これは他のすべての設定が完了した後に行うことができます。
UUIDは、/dev/disk/by-uuid
で確認できます。たとえば、次のようになります:
$ ls /dev/disk/by-uuid -lah
total 0
drwxr-xr-x 2 root root 100 Dec 5 09:12 .
drwxr-xr-x 6 root root 120 Dec 5 09:12 ..
lrwxrwxrwx 1 root root 10 Dec 5 09:12 27fae347-4c7f-45cb-92d6-5f3d410599a1 -> ../../sda3
lrwxrwxrwx 1 root root 10 Dec 5 09:12 4405-64C8 -> ../../sda1
lrwxrwxrwx 1 root root 10 Dec 5 09:12 5243e250-8da5-4fea-aa63-61466022661d -> ../../dm-0
私の場合、/dev/sda1
が私のEFIシステムパーティションであることを知っているので、
UUID=4405-64C8 /boot/efi vfat defaults 0 1
/etc/fstab
で。
私はOSを別々のドライブに入れているので、GRUB2はWindowsブートローダーに置き換えられません。
これが理想的であるため、パーティションテーブルに少なくとも1つのプライマリパーティションが空いている可能性があります。
今私の質問は、MBRを使用する代わりにGPTを使用してWindowsを起動できるようにUbuntuのドライブを変更/変換するにはどうすればよいですか?
UEFIブートを実行するためにMBRをGPTに変換する必要はありません。プライマリFATパーティションを作成し、grub-efi-AMD64-bin
パッケージをインストールし、 Add ESPの指示に従ってくださいMBRを使用した既存のインストール これは、Ubuntuの現在のリリースで動作するはずです。
Portablejim's answer (MBRからGPTへの変換に本当に役立ちました、ありがとう!)を補完するために、 Boot-Repair を使用してgrubを再インストールできます。ステップ3を完了できなかった後、Windows 10のインストールでlinuxブートオプションが表示されなくなったときに、ブートを修復するのは魅力的でした。