UbuntuおよびWindows 7のインストール用の起動可能な(UEFI GRUB)USBを作成する


12

UbuntuとWindows 7をインストールするためにブータブルEFI USBを作成したい(おそらくPartedMagicのようなユーティリティを使用する)。以前はMultiSystemを使用してそれを行いました。ただし、GPTを使用しており、GPTシステムにインストールするにはWindowsインストールをEFIモードで起動する必要があります。代わりにGRUB EFIを使用する必要があると思いますか?GRUB EFIブータブルUSBを作成するマルチシステムのようなアプリがない場合、自分で作成するにはどうすればよいですか?

USBをGPTとしてフォーマットし、そこにGRUB EFIをインストールすると思います(方法は?)。次に、UbuntuとWindows 7のインストールをEFIに読み込むためにGRUB EFIを構成する必要がありますか?どうすればこれらを行うことができますか?

更新

ここに私が試したものがあります

  • USBに2つのパーティションを作成します(GPT、100 + MB FAT32(/ dev / sdc1、ブートフラグを設定)、残りのFAT32、/ dev / sdc2、インストール用)
  • Windows 7およびUbuntu 11.10 isoをインストーラーパーティション、2つの異なるフォルダーに抽出します
  • sudo elilo -b /dev/sdc1--autoconf --efiboot -v` を使用してみました

jiewmeng@JM:~$ sudo elilo -b /dev/sdc1 --autoconf --efiboot -v
elilo: backing up existing /etc/elilo.conf as /etc/elilo.conf-
Loaded efivars kernel module to enable use of efibootmgr
elilo: Checking filesystem on /dev/sdc1...
elilo: Mounting /dev/sdc1...
e    lilo: 44298KB needed, 78781KB free, 42192KB to reuse
elilo: Installing primary bootstrap /usr/lib/elilo/elilo.efi onto /dev/sdc1...
elilo: Installing /tmp/elilo.k8NWXX on /dev/sdc1...
elilo: Installing /vmlinuz on /dev/sdc1...
elilo: Installing /vmlinuz.old on /dev/sdc1...
elilo: Installing /initrd.img on /dev/sdc1...
elilo: Installing /initrd.img.old on /dev/sdc1...
elilo: Updating EFI boot-device variable...
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
elilo: An error occured while updating boot menu, we'll ignore it
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
elilo: Installation complete.

sudo modprobe efivars出力はありませんでしたが、同じエラーが発生しました。EFIUbuntuを起動していないためだと思いますか?

次に、USB Startup Disk Creatorを使用してEFIモードでライブシステムを起動し、再試行します。

更新

私はとても迷いましたが、Windowsは最初にインストールされていますか?Ubuntu用に起動可能なUSBをUNetBootInと交互にフォーマットして作成しましたが、使用可能なカーネルがないという同じエラーで失敗しました。Ubuntuデスクトップを作成した場合、aptソースを構成できません

Ubuntuデスクトップインストール用のsyslog http://pastebin.com/CdbUPXax

私は時間を無駄にせず、すぐにMBRに戻るのが良いと感じています...それは何らかの形ですべてのデータを最初にバックアップする必要があることを意味します...それが最後の手段にそれを遅らせている理由です...何かアイデアはありますか?

更新

Ubuntu 11.10 AlternateをBIOSモード(Non-EFI)で起動しようとしましたが、ブートローダーをインストールできない場合を除き、正常にインストールされました。致命的なエラーが表示されます。次に、リカバリーモードでUSBをブートしてGRUBをインストールしました。動作しますが、起動しません。起動時に空白の画面を表示します。回復モード(ubuntuがインストールされているHDD)に入ろうとすると、キーボードに障害が発生したように見えますが、マウスは点灯します。


これを調べましたか?unetbootin.sourceforge.net
ダスティン・L.

Easy2Bootはあなたが望むものかもしれません。
SteveSi 14

回答は、単なるリンクまたは潜在的なソリューションへの参照以上のものである場合に最適です。何かを行う方法を示す回答、または少なくとも一般的なアプローチを説明する回答は、私たちがここで求めているものです。
slm

回答:


8

この質問/回答の更新に取り組んでいます。
これはエラーなしでは機能しませんが、@ jiewmengと協力して、目標はUSBを使用してWindowsとUbuntuの両方を1つのハードドライブUEFIにインストールすることであることがわかりました。
しばらく時間がかかり、解決策を見つけましたが、質問と回答をきれいにする必要があります。
元の質問にも答えることができるかもしれませんが、目標はインストール側にあるため、シングルブートUEFI USBはそれほど重要ではないと思われました。
現在、Windows用とUbuntu用の2つのUSBスティックを使用しています。
これはできるだけ早く更新されるWIPです

私はこれに数日間取り組んでおり、あちこちに空き時間を置いて、ついに単一のUSBを持ち、それが起動してWindows 7とUbuntuのインストールを提供します。
私の設定は64ビット固有であり、32ビット整数に対応するように変更できますが、ファイル名には多くの違いがあります。32ビットが必要な場合はフォローアップしてください。とはいえ...

GPT形式のUSBからWindows 7をインストールすることはできません。
あなたはGDiskのを使用するか、または別れた、とGPTのUSB、作成することができます UEFIを経由して起動します。
UEFIブートマネージャーを構成してUSBからWindowsインストーラーを読み込むことができますが、インストーラーはインストールの実行に必要なファイルとデータを検索し、GPT USBを認識しませんが、MBR USBを検出します。

ただし、UEFIはMBR / GPTとEFIパーティションを調べるため、これはほとんど重要ではありません。WikipediaのUEFIブートに関するエントリを参照してください

USBにstd MBRを使用しているにもかかわらず、UEFI経由でGPTディスクにインストールできます。

以下は、64ビットUEFI Asus Sabertoothでの64ビットインストールを使用して機能しました。
各マザーボードのファームウェアは非常に固有であり、各マザーボードUEFIファームウェアはUEFIブートを異なる方法で検索します。マザーボードでブートデータの検索に問題があるかもしれませんが、私のASUSでは次のように動作します。

Windows 7 64ビットDVDのインストール可能なコピーとUbuntu ISO(この例では、11.10 64ビットデスクトップiso)で起動可能なUSBを作成した方法を次に示します。

手元にある16G USBを使用して...
/ dev / sdcとしてインストールされたUSBで、関連する参照をUSBの適切なデバイスに変更します。
7zipがインストールされていることを確認してください。

fdisk /dev/sdc
create new MBR, 'o' command
create new partition, part 1, size 8G, type ef, set bootable, write
mkfs.vfat -F32 /dev/sdc1
mkdir /mnt/USB
mount /dev/sdc1 /mnt/USB
insert Windows 7 x64 DVD, again, mine appeared as /media/UDF\ Volume, you need to change references below
# Extract/Copy the entire Windows DVD to the USB
cp -r /media/UDF\ Volume/* /mnt/USB
# I don't know what effect the following rename has, I copied blindly from another webpage.
mv /mnt/USB/sources/ei.cfg /mnt/USB/sources/ei.cfg_
cd /mnt/USB/efi/microsoft/boot/
7z e /mnt/USB/sources/install.wim 1/Windows/Boot/EFI/bootmgfw.efi
cp -r /mnt/USB/efi/microsoft/boot /mnt/USB/efi/
mv /mnt/USB/efi/boot/bootmgfw.efi /mnt/USB/efi/boot/bootx64.efi
# At this point I booted the USB, and installed Windows 7 to a GPT SSD
# Upon reboot I noticed the Windows Boot loader in my UEFI boot list (actually it made itself 1st).
# so, here we have a standalone Windows7 UEFI installer that will function correctly (64bit ASUS, at least).
# Now, on to adding Ubuntu
cd /mnt/USB
7z x /path2iso/ubuntu-11.10-desktop-amd64.iso
# If 7z finds prexisting files with the same name, just allow always overwrite
# (Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename all / (Q)uit? A

# At this point I booted the USB, and installed Ubuntu x64 to a GPT SSD
# we have a standalone Ubuntu 64bit installer that install Ubuntu 64

# Now, on to add a boot manager that will allow us to select between Windows 7 and Ubuntu

# Get the target UUID of the USB partition, using either blkid or the following command
grub-probe --target=fs_uuid /mnt/USB/efi/Microsoft/Boot/bootmgfw.efi  
will print YOUR_UUID # Substitute into the following references to YOUR_UUID

# Append the following menuentry to /mnt/USB/boot/grub/x86_64-efi/grub.cfg

menuentry "Microsoft Windows x86_64 UEFI-GPT Setup" {
    insmod usbms  
    insmod part_gpt  
    insmod part_msdos  
    insmod fat  
    insmod search_fs_uuid  
    insmod chain  
    search --fs-uuid --no-floppy --set=root YOUR_UUID # <- CHANGE THIS TO YOUR UUID
    chainloader (${root})/efi/Microsoft/Boot/bootmgfw.efi  
}

そして出来上がり!grubをブートマネージャーとして使用する、動作中のUSBスティック。UEFIインストールでGPTディスクにインストールできます。

エラーがあったら、私にメッセージを送ることをheしないでください、そして私はそれを調べます。


この時点でUSBを起動し、Windows 7をインストールしました」の時点でWindowsインストーラーを正常に起動しました。しかし、しようとするgrub-probe --target=fs_uuid /media/INSTALLS_/efi/microsoft/boot/bootmgfw.efi 4983-DA78と、「不明な追加引数 `4983-DA78 '」が表示されます。
ジウメング

grub-probeを実行すると、使用するuuidが提供されます。その後、次のテキストで置換されます。
BSD

コマンドはgrub-probe --target=fs_uuid /media/INSTALLS_/efi/microsoft/boot/bootmgfw.efi 引数なしのみです。あなたはYOUR_UUIDとして、以下のテキストで使用するために、値「4983-DA78は」あなたのUUIDは、GRUB-プローブによって返される
BSD

Windowsをうまくインストールしましたが、ubuntuを試してみたところ、カーネルはありません、アイデアはありませんか?
ジウメン

UEFI USBスティックを介してWindows 7が既にインストールされているマシンにUbuntuをインストールしましたか?
bsd

3

私は質問に答えるために最善を尽くします。うまくいけば、あなたを正しい方向に導くでしょう。

既にご存じのとおり、GPTからのWin7 x64のインストールはEFIからのみ可能です。さらに悪いことに、Win7 x64はすべてのハイブリッドディスクをレガシーMBRとして扱うため、ハイブリッドを使用できません。そのため、USBをGPTとして再ラベル付け/再パーティション化する必要があります。このタイプのセットアップは、移植性の問題を考慮すると、USBには適していません。作成しないと言っているわけではありません。自動化されたツールが存在することを期待していないだけです。ドライブをフォーマットした後、マルチシステムを使用できる可能性があると実際に考えています。自動インストールされたGrub2にEFI / GPTサポートがない場合は、Grub2の正しいバージョンで上書きします。

そのため、インストールの一部を手動で行う必要があるかもしれませんが、全体としてはこの回答の範囲を超えています。始めましょう。

の現在のリリースを使用して、partedGPTでドライブにラベルを付け直します。ディスクが/ dev / sdcにあると仮定すると、

 parted -s /dev/sdc mklabel gpt

ここで、ドライブをパーティション分割する必要があります。できれば、USBを単一のプライマリにする必要があります。起動可能なUSBの場合は、常にFAT32を使用します。

parted -s /dev/sdc mkpart primary fat32 0 -1

parted mkpartFSを作成しませんmkpartfspartedDOCは、適切に使用することをお勧めしますmkfsとは反対に、partedのサポートに建てられました。

mkfs.vfat /dev/sdc1

これで、データを処理するためのドライブの準備が整いました。この時点で、マルチシステムを使用してドライブをセットアップできることを望んでいます。

すべてを完了したら... Grub2をセットアップする必要があります。明らかに構成を維持するつもりです。マルチシステムはEFIから起動する機能を持っているかもしれませんが、それでもモジュール設定を台無しにする必要があります。

Grub2構成は、にありboot/grub/grub.cfgます。いくつかのモジュールがコメント化されているのが見えるはずです。GPTに関連するものを見てきましたが、EFIについてはわかりません。私はいくつかのテストを見て実行します。Grub2のドキュメントを読むことを検討してください。

それでも問題が解決しない場合は、フォローアップの質問でコメントしてください。


2

上記のbdowningの答えから始め、Parted Magicを追加するためにここに進みます。

これを行うにはいくつかの方法がありますが、最も簡単な方法は、Parted Magic ISOからUSBディスクのルートにpmagicディレクトリをコピーし、メニューエントリを追加することです。

menuentry "Parted Magic" --class gnu-linux --class gnu --class os {
  linux /pmagic/bzImage
  initrd /pmagic/initrd.img
}

(完全に機能させるためにgrub2マニュアルを読む必要があるかもしれません。先日これをしたときにgrub1を使用しましたが、構成ファイルは異なります。)

ここでの欠点は、Windows、Ubuntu、そしてParted Magicのファイルを単一のファイルシステムに混在させていることです。さらに悪いことに、EFIシステムパーティションに直接配置しました。もちろん動作しますが、オペレーティングシステムのすべての組み合わせで動作するとは限りません。そのため、OSごとにドライブに個別のパーティションを作成する必要があります。そのためには、grubに正しいファイルシステムを検索するように指示する必要があります。これは、guidによって実行できます。すべてのファイルシステムは、作成時に一意のGUIDを取得するため、grub-probe(または類似のツール)を使用してそのGUIDを見つける必要があります。それをgrub configの検索コマンドに貼り付けます:

menuentry "Parted Magic" --class gnu-linux --class gnu --class os {
    search --no-floppy --fs-uuid --set 8d2acb74-5216-4696-90a8-c76f92d5e4ee
    linux /pmagic/bzImage
    initrd /pmagic/initrd.img
}

お役に立てれば。


マルチブートは機能しますが、bdowningの回答では、Ubuntuをインストールしようとすると、カーネルが利用できない(代替)か、apt(デスクトップ)エラーを構成できません(bdowningの投稿とコメントを参照)、それを修正する方法はありますか?また、チャット@ chat.stackexchange.com
rooms

2

非UEFIマシンでは、GRUB2を使用してUSBスティックを起動可能にすることができます。次に、GRUB2で「ntldr」コマンドを使用して、USBからWindowsを起動します。

menuentry 'Install Windows 8' {
 ntldr /bootmgr
}

私のブログで完全な回答を参照してくださいLinuxからの起動可能なWindows USBの作成


1
このリンクは質問に回答する場合がありますが、回答の詳細な説明をここに含め、参照用のリンクを提供することをお勧めします。リンクがダウンすると、リンクのみの回答はほとんど役に立たなくなります。
G-Manは「

1

なぜGRUB2に悩まされるのですか?物事を複雑にしているだけです。ESPにUEFIシェルを追加して、ESPからLinuxカーネルをブートするEFI STUBメソッドを使用します。


知っておくといい。私の特定のケース(古いmacbook pro)では、Appleはこの独自のがらくたの名前を「EFI」に変更し、彼のブートローダーはEFIであると言っているため、動作しません。しかし実際には、osxとwindowsのみを起動できる、文書化されていないバグのあるカスタムブートローダーです。したがって、LILOをパーティションの1つにインストールし、このブートローダーがWindowsであると嘘をつきます。それで動作します。したがって、「EFI」はBIOSエミュレーションモードでLILOを起動し、LILOはカーネルを起動します。
peterh -復活モニカ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.