web-dev-qa-db-ja.com

起動可能なUSBを作成してWindowsをインストールするXP Linuxから

Dell Inspiron Mini 9bunt のみがインストールされています。 WindowsをインストールしたいXP=でも、外付けCDドライブを持っていないので、USBからWindowsをインストールする必要があります。

私が見つけたすべてのチュートリアルは、USBを起動可能にするためにWindowsを使用しています。 Linuxから同じようにするにはどうすればよいですか?

19
user22826

VirtualBox を使用して、仮想マシンにハードディスクドライブへのアクセスを許可できます。次に、仮想マシンにWindows XPをインストールし、実際のハードディスクドライブに新しいパーティションを作成します。インストール後は、通常どおりコンピューターとブートウィンドウを再起動できます。

VirtualBoxにディスク全体へのアクセスを許可するには(xを適切な文字(たとえば、a)に変更します):

VBoxManage internalcommands createrawvmdk -filename ~/hdd.vmdk -rawdisk /dev/sdx

次に、既存のハードディスクドライブを選択し、ホームフォルダーのファイルhdd.vmdkを選択します。

コマンドがアクセス権の欠落について不平を言っている場合は、次のコマンドを使用して自分をグループdiskに追加し、ログインしてログアウトしてから再試行してください。

Sudo adduser `whoami` disk
  1. 既にLinuxをターゲットコンピュータにインストールしている場合これをそのコンピュータで直接実行できますが、Windowsを再起動する前にSudo update-grubを実行しますおよびSudo grub-install /dev/sdxxを適切な文字、たとえばaに変更)して、Linuxを起動できることを確認します。お使いのコンピューターとVMでエミュレートされるVirtualBoxのハードウェアの違いによる問題を回避するには、 [〜#〜] bsod [〜#〜] )、VMを終了する前にWindowsで2番目のハードウェアプロファイルを作成することもできます。 [〜#〜] grub [〜#〜] 、この2番目のハードウェアプロファイルを選択します。最終的に、この新しいハードウェアプロファイルをデフォルトにすることができます。

  2. ターゲットコンピューターが完全にクリーンの場合は、(合法的に購入した)WindowsインストールCDのイメージも置く起動可能なUbuntu USBドライブを作成します。次に、ターゲットマシンでUbuntuを起動し、上記の手順に従います。

13
Linus Unnebäck

ここからRUFUSLDRをダウンロードします: https://dl.dropboxusercontent.com/u/20170669/RUFUSLDR ms-sysをここからダウンロードします: http://prdownloads.sourceforge.net/ms-sys /ms-sys-2.3.0.tar.gz?download ms-sys-2.3.0フォルダーを、実行フラグをサポートする場所(Linuxホームフォルダーなど)にドラッグします。そこに端末をcdし、「make」、「Sudo make install」の順に入力します。本当に簡単です。

私はあなたに共感します。 Windowsから、WinXPインストーラーで起動可能なUSBドライブを作成する方法のチュートリアルを試しました。 diskpart 1、WinToFlash 1、およびHP USB Formatユーティリティ1はすべて失敗しました。

ルーファスは実際に動作します。ただし、これはWindows専用のユーティリティです。 VirtualBoxをインストールし、VirtualBox内にWindowsをインストールし、VMにRufusをインストールし、USBドライブをVMと共有して、Windows XPインストーラーでUSBドライブを起動可能にすることができます。

Rufusは現在、緩いインストールファイルを使用した起動可能なUSB WinXPインストーラーの作成をサポートしていません。 ISOを表示する必要があります。したがって、VirtualBoxにisoをマウントしてXPをVMにインストールしますが、それは緩いファイルとして表示されます(isoは表示されません)。したがって、Rufusにisoファイル自体を表示させるには、isoがVMに保存されているホストマシン上のディレクトリを共有します。次に、Rufusを、isoファイルがVMのネットワークドライブ(Z:\など)にある場所に向けます。

ところで、FreeDOSフロッピーイメージをドライブにコピーし、isoからファイルをコピーし、memdiskを使用してフロッピーイメージから起動することもできます。 FreeDOSから、i386\winnt.exeを実行します。落とし穴は(DOS NTFSドライバーが見つからない限り)、WindowsをFAT32ボリュームにのみインストールでき、NTFSボリュームにはインストールできないことです。

VMを使用しているため、Rufusプロセスの速度が非常に遅くなることがあります(理由がわからない、設定の設定方法が分からなかったかもしれません)。私個人的には、私のラップトップでは、1時間5分40秒かかりました。 LinuxでRufusを使わずにそれを行う方法を説明します。 Rufusを模倣しますが、最初にVMからRufusを使用する場合は、Rufusでのパーティションの処理後、Linuxがパーティションを表示できないことに注意してください。

Rufusはパーティションをフォーマットするだけでなく、MBR(パーティションテーブルを含む)を再実行します。だから最初にサムドライブから何かを保存します。

注:Rufusは、BIOSによって実行されると、最初の2つのBIOSドライブをスワップするトリックMBRを配置します(0x80は0x81になり、その逆も同様です)。さらに、このトリックMBRにBIOS IDを入れて、ドライブを0x81(2番目のドライブ)として起動させます。なぜ私がこれを言っているのですか?MBRのトリックにより、Linux(およびGrub2 v2.00)はパーティションテーブルを読み取ることができません。 Windowsは問題なく動作し(ドライブ文字とすべてを指定)、ドライブは起動可能になります。ただし、Linuxはパーティションを認識しないため、パーティションをマウントできません。問題ない。 MBRをファイルに保存します。

Sudo dd if=/dev/sdX of=~/Desktop/rufus_trick_mbr count=1 bs=512

次に、fdiskを使用して新しいMBRを割り当てます。パーティション自体に触れることさえせず、新しいMBRを与えるだけです。 「w」を押すまで、fdiskでは実際には何も行われません。

Sudo fdisk /dev/sdX

p //Print partition table. fdisk, unlike the kernel, CAN make sense of the partition table as-is.

You'll probably see the partition start on sector 2048 and go to the end.

o  //Tells fdisk to make a new partition table

n //create new partition. By defualt, fdisk should also make the partition start at sector 2048 and go to the end. Make sure the partition starts where it used to and ends where it used to.

select primary

t //change partition type id

7 //for ntfs

p //Make sure everything is right. And no, don't worry about the boot flag.

w //when you're sure. Remember, we saved the old mbr and can undo any mess-ups made here with dd.

Ddを使用して新しい混乱を作成することもできます。

ハモンド–「心配する必要はありません。同じ過ちを繰り返すことはありません。」 MALCOLM –「いいえ、いいえ、あなたはすべて新しいものを作っています。」

-ジュラシックパークII、ロストワールド

サムドライブを取り外し、再度差し込みます。他に何もない場合、/ dev/sdXYは少なくとも現在存在している必要があります(/ dev/sdXのみが存在する前-"Y"はありません)。マウントするには、ntfs-3gをインストールする必要があります。インストールされている場合は、既にマウントされているかどうかを確認します(デスクトップに表示されているか、ファイルブラウザーの左ペインに表示されているはずです)。そうでない場合は、自分でマウントします。最初にファイルブラウザでマウントしてみることができます。手動でマウントする方法は次のとおりです。

Sudo mount -t ntfs-3g /dev/sdXY [mount point]

Linuxでやりたいことを行います。

必要に応じて、rufus_trick_mbrを元に戻します。

Sudo dd if=~/Desktop/rufus_trick_mbr of=/dev/sdX bs=512 count=1 //No "Y"! Just /dev/sdX!

しかし、MBRというトリックを元に戻す必要はありません。代わりに、Grub2のntldrコマンドを使用して/ BOOTMGRをロードできます。 (おそらくntldrモジュールを挿入するには、最初に "insmod ntldr"を実行する必要があります。)

ここで何が起こるかです:

Rufusは1つのパーティションテーブルエントリでトリックMBRを作成し、そのパーティションをNTFSとしてフォーマットし、ntltrスタイルのブートローダーのみが処理するものをそのパーティションのブートセクターに置き、isoからパーティションにファイルをコピーし、NTDETECT.COMをi386フォルダーを作成してルートレベルに配置し、txtsetup.sifをi386フォルダーからコピーしてルートレベルに配置し、さらにgithub、c0m/pbatard/rufus/wiki/Targets-Supportedで言及されていない行を追加するため、これを指摘してくれた「openssl md5」とcmpに感謝します。

drum roll:ANDは、SETUPLDR.BINをi386フォルダーからルートレベルにコピーし、名前をBOOTMGRに変更し、そのバイナリにパッチを適用します。はい、それがトリックです。 SETUPLDR.BINは、CDから起動すると、CDから起動されたことを検出し、i386フォルダーで検索します。ハードドライブから起動した場合は、ハードドライブから起動したことを検出し、代わりにminintフォルダーを探し、見つかった場合は$ WIN_NT $〜BTフォルダーを探して、インストールの第2フェーズを開始します(再起動後、ターゲットハードドライブを起動したとき)。したがって、単に「i386」の名前を「minint」に変更することもできません。ハードドライブ(USBドライブなど)から起動した場合でも、i386フォルダを検索するようにSETUPLDR.BINを変更する必要があります。

Rufusが修正バイナリを「BOOTMGR」と呼ぶのは誤称だと思います。これは、Vistaおよび7(および8)が使用するものであり、XPではありません。 BOOTMGRは、NTLDR(SETUPLDRは変更されたバージョンです)が行うようなboot.iniファイルも検索しません。そこで、「RUFUSLDR」という名前に変更して、ダウンロードできるようにしました。さらに、実行している可能性のある実際のBOOTMGRと区別できるようにしたいとします。

Rufusは、Windowsインストーラーisoを適用する場合、ドライブをNTFSとしてフォーマットすることを強制します。これは、4 GBを超えるファイルを含むx64 Windows 8開発者プレビューが原因であると考えています。FAT32ではサポートできません。しかし、それはここでは当てはまりません。 4GB近くにはファイルがありません。 FAT32を使用しても問題ありません。

LinuxからRufusを真似してみましょう(またはほぼすべてのunixoid)。

  1. ドライブがMBR方式であることを確認します。 fdiskは、GPTの場合に警告をスローし、MBRスキーマにするオプション(オプション "o")も提供します。破壊的ではありませんが、4つ以下のパーティションがある場合、gdiskを使用すると、GPT方式のドライブをMBR方式のドライブに変換できます。 Gdiskを使用すると、ドライブをハイブリッドMBR/GPT方式のディスクにして、GPT非対応のものに表示されるパーティションを最大3つ選択できます(4番目のスロットは、残りをカバーする保護パーティション用に使用されます)。 fdiskを使用するだけでも、新しいパーティションテーブルエントリが同じ場所で開始および停止する限り、パーティションが失われることはありません。ディスクの最後にあるセカンダリGPTをゼロにしてください。

  2. パーティションがFAT32またはNTFSとしてフォーマットされていることを確認します。 FAT32は、クロスプラットフォームに対応しています。すでにFAT32またはntfsとしてフォーマットされている場合は、フォーマットする必要はありません。

    Sudo blkid/dev/sdXY [UUID、ラベルなどとともに、ここにファイルシステムと表示されます]

FAT32またはNTFSでない場合は、次のいずれかを実行します。

Sudo mkdosfs -F 32 -n [insert volume label (name) here] /dev/sdXY

Sudo mkntfs -L [insert volume label here] /dev/sdXY

3 DOS/Windowsが非常に細心の注意を払っている魔法のブートセクターを適用します。

Sudo ms-sys -w /dev/sdXY

*これについて-「-w」は「書き込み」を意味します-書き込みのみです。何を書くかを指定するのではなく。したがって、「-w」はms-sysの自動モードです。これは、状況に応じて書き込む最適なブートセクターデータを決定します。 autoが正しいことを知って驚いた:FAT32パーティションには、ms-sysのFAT32が必要[〜#〜] dos [〜#〜]ブートセクタではありませんms-sysのFAT32[〜#〜] nt [〜#〜]ブートセクター。これは、_NT_LDR(NTローダー)の派生物をロードする必要があると思いました(SETUPLDR.BINはNTLDRの修正バージョンで、RUFUSLDRはSETUPLDR.BINの修正バージョンです)。

4適切に測定するために、パーティションにジオメトリスタッフも書き込みます。これはディスクのジオメトリを変更するのではなく、それだけではジオメトリについて調べるのが面倒なもののためにジオメトリについてのメモを残すだけです。

Sudo ms-sys -p /dev/sdXY

*注意:ステップ4はNTFSには適用されません。 *別の注:Linuxカーネルのバージョンが> 2.6であることを確認してください。カーネル2.6には、誤った数のヘッド(ジオメトリ)を報告するバグがありました。したがって、「-p」オプションはカーネル2.6で誤った情報を出力する可能性があります。回避策として、ユーザーが記録するヘッドの数を手動で指定できる「-H」オプションを使用します。しかし、実際には、代わりにカーネルをアップグレードしてください。 2.6を実行している場合は、期限切れです。カーネルのバージョンを確認するには、次のようにします。

uname -r

5 iso、フォルダーなどからファイルをコピーします。多くのディストリビューションでは、isoをダブルクリックしてマウントするか、少なくとも右クリックして[開く]でアーカイブマウンターで開くオプションを提供しています。それが当てはまらない場合は、次のようにします。

Sudo mount -o loop (path to iso) (path to desired mount point)

6変更したSETUPLDR.BIN(RUFUSLDR)ファイルをルートレベルに配置します。

7 NTDETECT.COMをi386からルートレベルにコピーします。

8 txtsetup.sifをi386からルートレベルにコピーします。

9「[SetupData]」のtxtsetup.sifとCtrl + Fの新しいコピーを開きます。そのヘッダーのすぐ下に、次の行を追加します。

SetupSourceDevice = "\device\harddisk1\partition1"

10 NTLDRスタイルのブートローダーをドライブまたはこのドライブの起動に使用する別のドライブにロードできるブートローダーをインストールするか、既存のブートローダーを使用します。ハードドライブにGrub2をインストールしてUbuntuを起動している場合、メニューが表示されたら「c」を押すだけでGrubコマンドラインを入力できます。代わりにSyslinuxを使用している場合は、それも使用できます。チュートリアルでは、Grub2のみを使用します。

Grub2をディスクにインストールするには(ハードドライブの既存のブートローダーを使用している場合は、必要がない場合があります):

Sudo grub-install --boot-directory=[mount point of disk, not iso] [/dev/sdxy]

11a。 grub.cfgエントリを作成するか、以下を手動で実行します。

grub> insmod ntldr //Inserts (loads) the Grub2 module used for loading NTLDR-style bootloaders.
grub> set root=(hdx,msdosy) //Replace x and y as appropriate. Sets the current directory to the target partition. Probably not needed if you booted off the drive you put the WinXP installer files on, but we always do this. Use "ls" to list all drives and partitions. If you only have one MBR-schemed disk with only one (or however many you made) partition(s), you'll be able to pick out which is your thumb drive. If not, try one and do "ls /". It will list the files on the root level of that partition. That should be a dead-giveaway. Notice that "ls" (without slash) lists drives and partitions, and "ls /" (with slash) lists the files on the root level of the partition that is the current working directory.
grub> ntldr /RUFUSLDR //Tells it to load RUFUSLDR.
grub> boot //That's the "go button".

11b。 grub.cfgエントリとして、これは次のようになります(括弧を並べないでください、これは大学ではなくGrubです!!):

menuentry "Windows XP Installer" {
  insmod ntldr
  search --no-floppy --fs-uuid --set=root [insert filesystem's UUID here, obtaind by "Sudo blkid /dev/sdXY"]
  ntldr /RUFUSLDR
}

//上記は、Grubの現在の作業ディレクトリを設定するためのより確実な方法であることに注意してください。また、構成ファイルのエントリには「ブート」が含まれることに注意してください。

//また、Windowsを起動するために「drivemap -s(hd0)$ {root}」行を使用するのが慣例ですが(Windowsのドライブを最初のBIOSドライブにします)、USB Windows XPインストーラーの場合もそうすることに注意してくださいntldrスタイルのブートローダーを起動しようとすると、再起動するだけでした。問題が解決せず、すべての手順を実行したことが確かな場合は、「drivemap -s(hd0)$ {root}」を試してください。

//起動時に複数のUSBドライブが挿入されているかどうかに注意してください。 USBを起動するように指示された場合、システムは最も支配的な起動可能なUSBドライブを起動します。 2つの起動可能なUSBドライブを使用すると、どのUSBポートがどのUSBポートを優先するかを体系的に把握できます。私にとって、USBポートは列に配置されており、列全体が他の列よりも支配的だったので、多くの組み合わせを試す必要はありませんでした。列内では、高い方が優勢でした。

//別のドライブのGrub2からWindows XP USBインストーラーを起動する場合、Grub2は最も支配的なUSBドライブ(少なくとも私のシステム上)しか表示しないことに注意してください。そのため、WinXP USBインストーラーが最も使用されているスロットにあることを確認してください。 (または、2つのUSBドライブがあり、Grub2が非WinXPインストーラードライブを認識している場合は、2つを切り替えます。)もちろん、USBドライブが1つしか挿入されていない場合、これは問題になりません。

//再起動しただけの場合は、「Sudo ms-sys -w/dev/sdXY」を実行し、FAT32の場合は「Sudo ms-sys -p/dev/sdXY」を実行し、NTDETECT.COMをi386からルートレベル。

//何も見つからないと表示されている場合は、変更されたブートローダーを使用していない可能性があります。変更したものを使用していることを確認してください。 (md5はi386/SETUPLDR.BINとは異なります。)また、txtsetup.sifとNTDETECT.COMがルートレベルにあることを確認してください。

// Windows XP SP3 CDを挿入するように指示されている場合は、その行をtxtsetup.sifに追加し、CD Identファイルが適切であること(WIN51、WIN51IPなど)を確認してください。疑わしい場合は、CDインデントファイルを削除し、コピーし直してください。

//アップグレードインストールの対象であることを証明するためにディスクを挿入する必要があると表示された場合、GPTディスクは挿入されていますか?おそらくこれが問題の原因です。 GPT方式のディスクをすべて取り外すか、LinuxでMBRに変換します。 (コンピュータの電源を切り、プラグを抜いて、もう一度やり直してください。ヤンクだけではありません。)

//ところで、USBドライブにインストールするには、ngine.de/article/id/8でハックする必要があります。はい、Windows XP FROM USB TO USBをインストールできます。

楽しい、

ジェイクXD

8
Jake Thomas

Windows XPは、実際にはインストーラーの最初のフェーズで特定のハードウェア構成用に自分自身を構成します。

そのため、実際のハードドライブと組み合わせてVirtualBox、QEMUなどを使用する方法が機能する場合は、2番目のハードウェアプロファイルを作成する必要があります。再起動する前にVMをシャットダウンし、代わりに実際のマシンを起動して実際のハードウェア用に構成させることで、これを回避できることを望んでいました。しかし、ハードウェアの構成は第二段階ではなく第一段階。

だから私は間違いなくルーファスを真似ることをお勧めします。ファイルをコピーして、いくつかの微調整を行ってください。既存の投稿を参照してください。 2番目のハードウェアプロファイルを処理する必要はありません。 2番目のハードウェアプロファイルを作成した場合でも、2番目のプロファイルで実際のハードウェアのドライバーをインストールするには、Windowsをどのように起動しますか?そして、もしあなたが方法を見つけたなら、ライセンスはあなたを止めませんか(それはハードウェアを調べます)?

3
SpawnHappyJake

NetBootIn をご覧ください。これでうまくいくはずです。

1
t0mm13b

風に向かって叫ぶだけなのに...

VirtualBoxを試すのはどうですか?あなたはWindowsをダウンロードすることができますXP isoファイル、それをマウントして仮想マシンをインストールします。そこからUSBドライブにアクセスできるので、そこからUSBブートドライブを作成できると思います。

1
Crowley

Netbootin が機能しなかったので、Windowsコンピュータを持っている友人(彼らは完全に不足しているわけではありません、あなたは知っています:)にWinToFlashあなたのために。

1
Molly7244

DOSからXP 32ビットをインストールすることもできます。 DOSで起動可能なフラッシュドライブまたはその他のハードドライブを作成する必要があります。その上にi386フォルダーをコピーしてから、次のようにします。

C:> cd i386
C:\ i386> winnt/b
これで、WindowsセットアップがFAT16/FAT32 DOSブート可能ドライブからロードされます!

インストールしているのと同じハードドライブから起動した場合、NTFSに変換するオプションを利用できる場合があります。

0
Alex Cannon