私は、Dell Inspiron Mini 9にUbuntuしかインストールしていません。Windows XPもインストールしたいのですが、外付けCDドライブを持っていないし手に入らないので、USBからWindowsのインストールをする必要があります
私が見つけたチュートリアルはすべてWindowsを使ってUSBブート可能な状態にしています。Linuxから同じように作るにはどうすればいいのでしょうか?
20 None 2010-01-22
VirtualBoxを使用して、仮想マシンにハードディスクドライブへのアクセス権を与えます。そして、仮想マシンにWindows XPをインストールし、実際のハードディスクドライブに新しいパーティションを作成します。インストール後、コンピュータを再起動し、通常通りにウィンドウズを起動することができます
VirtualBoxがディスク全体にアクセスできるようにするには(x
を適切な文字、例えばa
に変更します)
VBoxManage internalcommands createrawvmdk -filename ~/hdd.vmdk -rawdisk /dev/sdx
そして、既存のハードディスクドライブを選択し、ホームフォルダ内のファイルhdd.vmdk
を選択します
コマンドでパーミッションが足りないと文句を言われたら、以下のコマンドで自分をグループdisk
に追加してから、ログインしてアウトしてもう一度試してみてください
sudo adduser `whoami` disk
ターゲットコンピュータに既に Linux がインストールされている場合は、そのコンピュータ上で直接これを実行することができますが、Windows を再起動する前に
sudo update-grub
とsudo grub-install /dev/sdx
(x
を適切な文字、例えばa
に変更) を実行して、Linux を起動できることを確認してください。コンピュータと VM でエミュレートされた VirtualBox のハードウェアが異なるという問題 (BSOD が発生する可能性があります) を避けるために、VM を離れる前に Windows で 2 つ目のハードウェアプロファイルを作成することもできます。GRUB で直接 Windows を起動したときに、この 2 つ目のハードウェアプロファイルを選択します。最終的にはこの新しいハードウェアプロファイルをデフォルトにすることができますターゲットコンピュータが完全にクリーンな場合, あなたもあなたの(合法的に購入した)WindowsのインストールCDのイメージを置く上でブート可能なUbuntuのUSBドライブを作成します。その後、ターゲットマシンでUbuntuを起動し、上記の手順に従ってください
14 Linus Unnebäck 2011-09-12
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 のホームフォルダなど) にドラッグします。本当に簡単です
私はあなたに同情します。私は、Windowsから、WinXPのインストーラにブート可能なUSBドライブを作成する方法についてのチュートリアルを試してみました。diskpart 1, WinToFlash 1, とHPのUSBフォーマットユーティリティ1はすべて私を失敗しました
ルーファスは実際に動いています。しかし、これは Windows 専用のユーティリティです。VirtualBoxをインストールし、VirtualBox内にWindowsをインストールし、VMにRufusをインストールし、VMにUSBドライブを共有し、RufusにUSBドライブをWindows XPのインストーラーで起動可能にしてもらうことができます
Rufus は現在のところ、ルーズなインストールファイルを使った起動可能な USB WinXP インストーラの作成をサポートしていません。iso を見る必要があります。つまり、VirtualBox で XP を VM にインストールするために iso をマウントしていますが、これはルースファイルとして表示されます (iso は表示されません)。そこで、Rufus に iso ファイル自体を表示させるには、ホストマシン上の iso が保存されているディレクトリを VM に共有します。そして、Rufus に、iso ファイルが VM のネットワークドライブのどこにあるか(Z:\ など)を教えてあげてください
ところで、FreeDOS のフロッピーイメージをドライブにコピーして、 iso からファイルをコピーして、 memdisk を使ってフロッピーイメージで起動することもできます。FreeDOS から i386 winnt.exe を実行してください。不都合な点は、(DOS NTFS ドライバを見つけたのでなければ) Windows を NTFS ではなく FAT32 ボリュームにしかインストールできないということです
VM の中にいるため、Rufus の処理が非常に遅いと感じるかもしれません(なぜかはわかりませんが、私の設定の仕方が悪かったのかもしれません)。私個人の場合、ラップトップでは1時間5分40秒かかったと思います。LinuxでRufusを使わずにやる方法をお伝えします。Rufusの真似をする予定ですが、その前に、代わりにVMからRufusを使おうと思った場合、Rufusが終わった後のパーティションをLinuxが見ることができなくなるので注意してください
Rufus はパーティションをフォーマットするだけでなく、MBR (パーティションテーブルを含む) をやり直します。なので、まずサムドライブから何かを保存してください
注意: RufusはトリックMBRを用意しており、BIOSが実行すると最初の2つのBIOSドライブが入れ替わる(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 を与えているだけです。fdiskでは “w “を押すまで何もしていません
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と一緒に新しいガチャを作ることもできます
HAMMOND – “心配するな、同じ過ちは繰り返さない”MALCOLM – “いやいや、新しいのばかり作っている。”
-ジュラシック・パーク2 失われた世界
サムドライブのプラグを抜いて再接続してください。何もなければ、/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 としてフォーマットし、ntldr スタイルのブートローダだけが気にするパーティションのブートセクタに何かを入れ、iso からパーティションにファイルをコピーし、NTDETECT.COM を i386 フォルダからコピーしてルートレベルに置き、さらに github,c0m/p/p の行を追加しています。また、i386 フォルダから txtsetup.sif をコピーしてルートレベルに置き、さらに github,c0m/pbatard/rufus/wiki/Targets-Supported には書かれていない行を追加しています
ドラムロールそして SETUPLDR.BIN を i386 フォルダからルートレベルにコピーして BOOTMGR という名前に変更し、そのバイナリにパッチを当てます。そうです、これがトリックです。SETUPLDR.BIN は、CD から起動すると、CD から起動したことを検出して i386 フォルダを探します。ハードドライブから起動した場合は、ハードドライブから起動したことを検出し、代わりに minint フォルダを探し、見つかった場合は $WIN_NT$~BT フォルダを探してインストールの第二段階を開始します (再起動後、ターゲットのハードドライブに起動したとき)。ですから、”i386″ の名前を “minint” に変更することもできません。ハードドライブ (USB ドライブなど) から起動しても i386 フォルダを探すように SETUPLDR.BIN を変更する必要があります
ルーファスが改造バイナリを「BOOTMGR」と呼ぶのは間違いだと思います。XP ではなく、Vista や 7 (と 8?) で使われているものです。BOOTMGR は NTLDR (SETUPLDR はその修正版) のように boot.ini ファイルを探しません。そこで、「RUFUSLDR」と名前を変えてダウンロードできるようにしました。さらに、実際の BOOTMGR と区別できるようにしたいと思うでしょう
Rufusは、Windowsインストーラのisoを適用すると、ドライブをNTFSとしてフォーマットするように強制します。これは、x64のWindows 8の開発者プレビューには、FAT32ではサポートできない4GBのファイルが含まれているためだと思います。しかし、ここではそれは当てはまりません。4GBに近いファイルはありません。FAT32を使えば問題ないかもしれません
Linuxのルーファスを真似してみよう(というかunixoidならどこでもいいんじゃないかな)
ドライブが MBR-schemed であることを確認してください。 fdisk は GPT である場合に警告を表示し、MBR-schemed にするオプション (オプション “o”) を提供します。破壊的ではありませんが、gdisk は、パーティションが 4 つ以下の場合、GPT をテーマにしたドライブを MBR をテーマにしたドライブに変換することができます。Gdisk はまた、ドライブを MBR/GPT-schemed のハイブリッドディスクにすることもできます。fdisk を使っても、新しいパーティションテーブルのエントリが同じ場所で始まったり止まったりするので、パーティションを失うことはありません
パーティションが 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は “write “の略で、書くことを意味しています。何を書くかを指定するのとは対照的です。つまり、-w は ms-sys の自動モードで、状況に応じて最適なブートセクタデータを書き込んでくれます。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には間違ったヘッド数(ジオメトリの問題)を報告するバグがありました。そのため、カーネル2.6では”-p “オプションは間違った情報を表示してしまう可能性があります。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 i386 から NTDETECT.COM をルートレベルにコピーします
8 i386 から txtsetup.sif をルートレベルにコピーします
9 txtsetup.sif の新しいコピーを開き、Ctrl+F で「[SetupData]」を探します。そのヘッダーのすぐ下に、次の行を入れます
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のカレントワーキングディレクトリを設定するためのより確実な手段であることに注意してください。また、設定ファイルのエントリには “boot “が暗示されていることにも注意してください
//Windows の起動には “drivemap -s (hd0)${root}” 行を設定するのが一般的ですが(Windows のドライブを最初の BIOS ドライブにします)、私の USB Windows XP インストーラではそうすると ntldr スタイルのブートローダを起動しようとすると再起動してしまうことにも注意してください。もしうまくいかず、すべての手順を行ったことが確認できたら、”drivemap -s (hd0) ${root}”を試してみてください
//起動時に複数の USB ドライブが挿入されている場合は注意してください。USB を起動するように指示されると、システムは最も支配的な起動可能な USB ドライブを起動します。あなたは、2つのブート可能なUSBドライブを使用して、どのUSBポートがどちらに支配的であるかを体系的に把握することができます。私の場合、USB ポートは列に配置されており、列全体が他の列に対して支配的だったので、多くの組み合わせを試す必要はありませんでした。列の中では、高い方の列が支配的でした
//Windows XP USBインストーラーを別のドライブのGrub2から起動している場合、Grub2は(少なくとも私のシステムでは)最も支配的なUSBドライブしか表示しないことに注意してください。そのため、WinXP USBインストーラーが最も使用されているスロットにあることを確認してください。(または、2つのUSBドライブを持っていて、Grub2がWinXPインストーラー以外のドライブを見ている場合は、2つを入れ替えてください)。もちろん、1つのUSBドライブだけが挿入されている場合は、これは問題ではありません
//もし再起動するだけなら、”sudo ms-sys -w /dev/sdXY” を実行し、FAT32 ならば “sudo ms-sys -p /dev/sdXY” を実行し、NTDETECT.COM を i386 からルートレベルにコピーしたことを確認してください
//もし何も見つけられないと言う場合は、変更されたブートローダを使っていない可能性があります。修正されたものを使っていることを確認してください。(i386/SETUPLDR.BIN とは異なる md5 になります。) また、txtsetup.sif と NTDETECT.COM がルートレベルにあることを確認してください
それはWindows XP SP3 CDを挿入すると言う場合は、 //あなたがtxtsetup.sifにその行を追加し、CD Identファイルが良い(WIN51、WIN51IPなど)であることを確認してください。ちょうどCD Indentファイルを削除し、疑わしい場合は、それらを上に戻ってコピーします
//アップグレードインストールを受ける資格があることを証明するためにディスクを挿入する必要があると書いてある場合、GPTディスクは挿入されていますか?おそらくこれが問題を引き起こしているのでしょう。GPT-schemed ディスクを抜くか、Linux で MBR に変換してください。(コンピュータの電源を切って、プラグを抜いて、もう一度やってみてください。)
//BTW, USBドライブにインストールするには、ngine.de/article/id/8でハックを行う必要があります。はい、Windows XPをUSBからUSBにインストールすることは可能です
Enjoy,
Jake XD
9 Jake Thomas 2013-07-25
Windows XPは、インストーラの最初の段階で、特定のハードウェア設定のために実際に自分自身を設定することが判明しました
VirtualBox、QEMUなどをリアルハードドライブと組み合わせて使用する方法がうまくいくには、2つ目のハードウェアプロファイルを作成する必要があります。これを回避するには、第二段階で再起動する前にVMをシャットダウンして、代わりに実マシンを起動して、実ハードウェアに合わせて設定することを期待していました。しかし、それは第二段階ではなく第一段階のハードウェアに合わせて設定します
ルーファスの真似をすることをお勧めします。ファイルをコピーして、いくつかの微調整をするだけです。既存の投稿を参照してください。2つ目のハードウェアプロファイルを扱う必要はありません。2つ目のハードウェアプロファイルを作ったとしても、どうやってWindowsを起動して、2つ目のプロファイルの下に本物のハードウェア用のドライバをインストールするのでしょうか?そして、もし方法を見つけたとしても、ライセンシングで止められてしまうのではないでしょうか(ハードウェアを見ています)?
4 SpawnHappyJake 2013-07-25
UNetBootIn を見てください。これでうまくいくはずです
1 t0mm13b 2010-01-23
風に向かって叫んでいるだけですが
VirtualBoxを試してみてはどうでしょうか?Windows XPのisoファイルをダウンロードして、それをマウントして仮想マシンをインストールします。そこからUSBドライブにもアクセスできると思いますので、そこからUSBブートドライブを作ることもできると思います
1 Crowley 2010-01-23
UNetbootin が動作しなかったので、Windows コンピュータを持っている友人に、WinToFlash が入った USB メモリを用意してもらうように頼んでください
1 None 2010-01-24
DOSからXPの32ビットをインストールすることも可能です。DOS ブート可能なフラッシュドライブなどのハードドライブを作ればいいだけです。そこに i386 フォルダをコピーして C:> cd i386 C:\i386> winnt /b これで、Windows のセットアップは FAT16/FAT32 の DOS ブータブルドライブから読み込まれます。 インストールしているのと同じハードドライブから起動したのであれば、NTFS に変換するオプションを利用できるかもしれません
1 Alex Cannon 2019-08-14