web-dev-qa-db-ja.com

UEFIを使用せずにGPTパーティションテーブルにWindows7 / 864ビットをインストールする

まず、見つけたものをすべて試したと言います。それでも何も機能しませんでした。

まえがき

古いMBRをGPTパーティションテーブルに変換しました。実際には、GRUB2を再インストールし、最終的にはWindowsを再インストールするだけで、問題ないと思っていました。そうではありませんでした。 gdisk(GPT fdisk)を使用して、データを失うことなく変換を行いました。

問題

最初は、Windowsが読み込まれませんでした。次に、問題が発生したBCDの修復を行い、HDDをまったく起動できなくなり、grubレスキュー画面でスタックしました。完全な修理を試みました、そして私が遭遇した他のすべての修理、同じこと。 GRUBを再インストール/修復すると、Windowsの起動時にBCDエラーが発生します。

解決策とさらなる問題

最も明白なもの-Windowsを再インストールします。まあ、起こらないだろう。 UEFIハードウェアがないとGPTにインストールされません。私を自分から守ってくれるので、マイクロソフトスタイル。私はひどい間違いを犯しましたが、問題がパーティション自体ではなくパーティションTABLEにあり、Windowsパーティションをフォーマットしたことに気づきませんでした。私は重要なものを何も失いませんでした-まあ、Windowsを除いて。

次に試したのはハイブリッドMBRでした。同じエラーが発生するため、Windowsインストーラーにそのことを誰も言わなかったと思います(Windows 7と8の両方を64ビットで試しました)。そのためにgdiskリカバリメニューを使用し、すべての入力を確認して、正常に動作しました。

次はDUETインストールの試みでした。 AMD CPUが原因で起動に失敗すると予想したところ、インストールすらできませんでした。ファイルと一緒にダウンロードしたduet-installスクリプトを使用しました ここ 。スクリプトは常に同じ場所で停止します:Partition starts at sector 2048。スクリプトのソースを確認しました。すぐに次の行が出力されるはずです(一度に13行印刷されます)が、何時間も何も起こりません。再実行、再ダウンロード、ライブCDからの実行を試みましたが、何もしませんでした。出力全体は次のとおりです。

SYSLINUXをMBRにインストールしますSYSLINUXへのパスは/ usr/share/syslinuxです

Bootduetへのパスは/ home/ubuntu/Downloads/tianocore_uefi_duet_builds-tianocore_uefi_duet_installer/BootSectorです

UEFIDUETへのパスは/ home/ubuntu/Downloads/tianocore_uefi_duet_builds-tianocore_uefi_duet_installerです。

UEFIバージョンUDKをインストールしますターゲットパーティションは/ dev/sda1です

ターゲットパーティションに「ESP」と呼ばれるFATファイルシステムを作成します

ターゲットディスク(MBRブートコードを格納するため)は/ dev/sdaですパーティション番号は1です

パーティションはセクター2048から始まります

[edit] XPをインストールしようとしましたが、フォーマットされていないスペースをフォーマットできません。 GPartedを使用してntfsにフォーマットしようとしましたが、インストールによってフォーマットされていないスペースとして登録されます(それ以外は何も登録されません)。しかし、完全に正直に言うと、そのcdは長い間棚上げされていたので、ほとんど見つかりませんでした。x64であるかどうかはわかりません(おそらく機能しないでしょう)。

だから、私は今立ち往生しています。助けてください?

また、HDD全体を再フォーマットすることはできません。 Windowsはそれだけの価値はありません、私はむしろLinuxを使い続けたいと思います。また、私が読んだ限りでは、フォーマットが含まれているため、MBRへの変換も行われません。また、7つ(または8つ?)のパーティションを取得しました(古いMBRでは5つですが、拡張パーティションを使用しました...面倒でした)。

仕様

MoBo:ASUS M5A78l-M LX CPU:AMD Athlon II x3 450

現在の回避策(まあ、obious(linux)を除く)

VirtualBoxでWindows8のインストールを開始しました。ある程度の進歩はありますが、Windowsを起動するたびにVM)にとらわれたくありません。

編集

デュエットインストールスクリプトをいじってみました。文字を入力してEnterキーを押すと、parted: invalid token: [letter]が出力されます。その文字が「c」の場合、Unknown partition table type ! Aborting!が出力されますが、明らかにそうではありません。問題の根本に到達するには、ソースをより深く分析する必要があると思います。そのスクリプトが今の私にとって最良の解決策だからです。

スクリプトの実行が停止するポイントに到達しました:ptLine=parted "$ {targetDisk}" print | grep「パーティションテーブル」 `。チェックをスキップして、システムに一致する値を設定することにより、解決策を見つけようとします。

スクリプトを編集し、機能しなかった部分を削除して、最終的にDUETをインストールすることができました。または、少なくともそう言っています... BIOSに変更がないことに気づきました、それはすべて最初のようです。それでも動作しません。

2
Luke

結局、GPTへの変換に使用したのと同じツールを使用してMBRに変換し直しました。パーティションテーブルは、以前と同じようにalmsotです。

私が試したもので、将来誰かに役立つかもしれません:

DUETのインストール: このガイドを使用 をお勧めしますが、私が行ったことを(非常に)簡単に説明します。

まず、EFI用に新しい200MBのFAT32パーティションを作成しました。次に、 ここ からファイルをダウンロードし、cdを使用してファイルを抽出したディレクトリに移動しました。次に、chmod +x ./duet-install./duet-install -64 -F -s /usr/lib/syslinux -m /dev/sda1を実行しました。ここで、/usr/lib/syslinuxはsyslinuxへのパスです(デフォルトは/usr/share/syslinuxですが、システムで詳細を検索してください)。インターネットからダウンロードしてコンパイルすることもできます。注意:それはそれ自身の依存関係を持っている nasm を必要とします、そして私はそれを使わなかったので、私はそれをあまり助けることができません。/dev/sda1は、前に作成したパーティションへのパスです。

ただし、スクリプトは275行を超えないため、275行からouter if(276行または277行で始まる)の終わりまですべてを削除し、tableType = "gpt"に置き換えました。

ハイブリッドMBRを作成するには:繰り返しになりますが、適度に長いガイドがあります。これをお勧めします ここ 。クイックガイドについては、読み続けてください。

Gdiskを開いてgdisk /dev/sdaで実行し、rでリカバリメニューに入り、リカバリメニューでhと入力しました。プロンプトで、ハイブリッドMBRに追加したいパーティションを入力し、その後にyを入力してEFIGPTパーティションを最初に配置しました。リカバリメニューでpを使用するパーティションのパーティション番号を見つける必要がある場合、またはお気に入りのパーティションツール(GParted for me)。その後、デフォルトのMBR 16進コード(ntfsの場合は07)を入力しましたが、GRUBを使用しているため、ブート可能フラグを設定しませんでした。

だから、それだけです。どちらも結果は得られませんでした。エラーも何もありません。完全なGPTを備えた通常のBIOSと同じように動作し続けました。どこかで間違いを犯した可能性があり、それが問題の原因でした。遠慮なく訂正してください。

誰かに役立つことを願っていますが、そうでない場合は、いつでもMBRに戻すことができます。これは、最初にMBRディスクをGPTに変換した場合は問題ありません。 HDDでgdisk(gdisk /dev/sda for me)と入力し、rと入力するだけです。 Enterg、 Enterq、 EnterY、 Enter。より包括的なガイドが必要な場合は、 この記事 の2番目の部分をお読みください。

0
Luke

BIOSからGPTでウィンドウを起動できます[〜#〜] if [〜#〜]小さいものがあれば起動できるMBRドライブ、またはフロッピーですら。これはハックではなく、Windows32ビットでも機能します。

基本的に、Windowsのインストール/修復ディスクを起動します。フロッピーにシステムドライブを作成し、bcdbootを使用してブートファイルをフロッピーに配置するだけです。 bootsectを使用してブートセクターを追加します。変更 {bootmgr}deviceからboot。フロッピーから起動します。

手順の詳細 ここ

0
Milind R