LinuxからWindows 7 USBフラッシュインストールメディアを作成する方法は?


105

私は持っています:

  • Windows 7インストールメディアのISOイメージ
  • 4 GB USBフラッシュドライブ
  • DVDドライブなし
  • Linuxがインストールされている

Linuxデスクトップ内からこれらすべてのタスクを実行できれば、家を揺るがすことになります。最も難しいのは、WindowsのDiskpartが行うすべての操作をいじることだと思います。パーティションを「アクティブ」、「ブート」、「プライマリ」などとしてマークする
p.campbell 2009年

3
GParted(gparted.sourceforge.net)はすべてのパーティションフラグをうまく処理できると思います。たとえばgparted.sourceforge.net/screenshots.phpを参照してください。そして、私はテストしていませんが、rsyncがそのチェックリストでロボコピーの代わりにできるようです。
マシューフラッシェン2009年

回答:


181

ここで述べたすべての方法を試してみましたが、うまくいきませんでした。基本的に、欠落しているステップは、USBスティックに適切なブートセクターを書き込むことでした。これは、ms-sysまたはでLinuxから実行できますlilo -M。これは、Windows 7製品版で機能します。

完全な概要は次のとおりです。

ms-sysをインストールします。リポジトリにない場合は、こちらから入手してください。または、liloがインストールされていることを確認してください(ただし、Grubがインストールされている場合は、ローカルボックスでliloconfigステップを実行しないでください!)

USBメディアがどのデバイスに割り当てられているかを確認します-ここでは割り当てられていると仮定します/dev/sdb。すべてのパーティションを削除し、すべてのスペースを占有する新しいパーティションを作成し、タイプをNTFS(7)に設定し、ブート可能に設定することを忘れないでください。

# cfdisk /dev/sdb   または   fdisk /dev/sdb (パーティションタイプ7およびブート可能フラグ)

NTFSファイルシステムを作成します。

# mkfs.ntfs -f /dev/sdb1

USBスティックにWindows 7 MBRを書き込みます(Windows 8でも動作します)。ここに複数のオプションがあります。

  1. # ms-sys -7 /dev/sdb
  2. または(たとえば、新しいUbuntuインストール)sudo lilo -M /dev/sdb mbrinfo
  3. または(syslinuxがインストールされている場合)実行できます sudo dd if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdb

ISOおよびUSBメディアをマウントします。

#mount -o loop win7.iso / mnt / iso
#/ dev / sdb1 / mnt / usbをマウント

すべてのファイルをコピーします:

# cp -r /mnt/iso/* /mnt/usb/   ...またはシステムの標準GUIファイルブラウザを使用します

syncすべてのファイルが書き込まれていることを確認するために呼び出します。

gpartedを開き、USBドライブを選択し、ファイルシステムを右クリックして、[フラグの管理]をクリックします。起動チェックボックスをチェックしてから閉じます。

...これで完了です。

その後、USBメディアをバックアップしてさらにインストールし、ISOファイルを削除したいでしょう... ddを使用するだけです: # dd if=/dev/sdb of=win7.img

注、これはデバイス全体をコピーします!—通常、コピーされたファイルよりも(はるかに)大きい。だから代わりに私は提案する

# dd count=[(size of the ISO file in MB plus some extra MB for boot block) divided by default dd blocksize] if=/dev/sdb of=win7.img

したがって、たとえば8 Mの余分なバイトがある場合:

# dd count=$(((`stat -c '%s' win7.iso` + 8*1024*1024) / 512)) if=/dev/sdb of=win7.img status=progress

いつものように、を使用するときはデバイス名を慎重に再確認してくださいdd

上記のブータブルUSBを作成する方法は、Win10インストーラーisoでも機能します。Ubuntu 16.04を実行して、Win10_1703_SingleLang_English_x64.iso(サイズ4,241,291,264バイト)を8 GB USBスティックにコピーしました-非UEFI [非セキュア]ブートのみで。ddレポートの実行後:8300156 + 0レコードの8300156 + 0レコードが4249679872バイト(4.2 GB、4.0 GiB)コピー、412.807秒、10.3 MB /秒

次回Windows 7インストーラーをUSBにインストールする場合は、その逆です。


1
cfdiskで使用する数値パーティションタイプについても言及しておくといいでしょう(
7、86、87

5
タイプ7-
ロペス

3
ご注意:rootであっても書き込み時にntfsファイルシステムに奇妙な許可エラーが表示される場合は、ntfs-3gがインストールされていることを確認してください。
ジェレミーサルウェン

1
これを直接ハードドライブに試してみたところ、起動すると「Windowsはインストールソースにアクセスできません」というエラーが表示されました。
ジェレミーサルウェン

4
syncコピー後に呼び出して、すべてのファイルが書き込まれていることを確認します
ニコラス

13

お使いのPCがUEFIをサポートしている場合はddでこれを実現できます。拡張によりGPTディスクもサポートできます。

ターミナルを開きます。ペンドライブがどのデバイスかを見つける必要があります。ドライブがマウントされている場合は、「mount」と入力してそのエントリを調べると、デバイスの名前を見つけることができます。次のようなもの:

/dev/sdb1 on /media/USBDISK type vfat (rw,nosuid,nodev,uhelper=hal,uid=1000,utf8,shortname=mixed)

この場合、/ dev / sdbの最初の部分は/ media / USBDISKにマウントされます。ルートシェルを開き、ドライブをアンマウントします。

umount /dev/sdb1

ルートシェルでISOが保存されているディレクトリに移動し、次のように入力します(windows7.isoをisoの名前に置き換え、/ dev / sdbをusbスティックのデバイスIDに置き換えます)。

dd if=windows7.iso of=/dev/sdb

マザーボードがペンドライブからの起動をサポートしている場合、起動できるはずです。これにより、OS自体ではなくペンドライブにインストーラーが取得されます。


21
私にはうまくいきません。

1
マザーボードはUSBからの起動をサポートしていますか?それが、このアプローチが機能するかどうかの最終的な決定要因になります。
-TrueDuality

11
私にとってもうまくいかず、私のマシンはUSBブートをうまくサポートしています。このアプローチは、DVDスタイルのUSBストレージをブートできるマシンで機能する可能性がありますが、ほとんどのBIOSはUSB上のHDDスタイルのレイアウトを想定しています(ブートコードを含む512バイトのMBRを意味します)。言及する価値のあることについて:Fedora CD / DVDイメージは、W7とは異なり、実際にブートコードとパーティションテーブルを備えたそのようなMBRを持ち、HDD / USBブートにも適しています。
-Tronic

9
これはあなたのマザーボードはUSB-CDROMだけでなく、USB-HDDブートすることが可能であることを必要としない
TrueDuality

12
このソリューションには、MBRのインストール手順がありません。また、魔法のように既に存在しない限り、通常は機能しません。@Gunthersによるソリューションは完了です。
stolsvik

5

PCambellの提案は良いですが、MBRをクリアすることもできます。Linuxの同等物は以下にあります

私はこれを試してみましたが、うまくいきました(ddメソッドが失敗した理由はわかりませんが、パーティションはntfsでなければならなかったようです)。

  • どの/ dev / deviceがUSBフラッシュドライブであるかを調べて、アンマウントします
  • MBRをクリアします:dd if = / dev / zero of = / dev / device bs = 446 count = 1
  • fdisk / dev / deviceを実行します
  • すべてのパーティションを削除し、1つのプライマリパーティションを作成し、起動可能にしてから変更を保存します
  • mkfs.ntfs / dev / device1(パーティション1)を実行します
  • Windowsのコンテンツ全体をコピーして、作成したパーティションにisoをインストールします

-4

の代わりに

dd if=windows7.iso of=/dev/sdb

あなたはroot

dd if=windows7.iso of=/dev/sdb1 

(最後に1を追加するか、USBドライブが置かれている場所を指定します。)


3
いいえ、of = sdbは前の回答に従って正しいです。
ジェームズブロードヘッド

1
これは明らかに間違っています。
ルカド

1
-1:ddデバイスへの、ないパーティションに書き込む必要がある
SSC
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.