解決策 1:
OK、ここに記載されているすべての方法を試して失敗した後、ようやく機能しました。基本的に、不足している手順は、適切なブート セクタを USB スティックに書き込むことでした。これは Linux から ms-sys
で実行できます。 または lilo -M
.これは Windows 7 製品版で動作します。
ここにもう一度完全な要約があります:
ms-sys をインストールします。リポジトリにない場合は、ここから入手してください。または、lilo がインストールされていることを確認します (ただし、しない) たとえば、ローカルボックスでliloconfigステップを実行します。 Grub がそこにインストールされます!)
USB メディアが割り当てられているデバイスを確認します - ここでは /dev/sdb
であると仮定します .すべてのパーティションを削除し、すべてのスペースを占める新しいパーティションを作成し、タイプを NTFS (7) に設定し、起動可能に設定することを忘れないでください:
# cfdisk /dev/sdb
または fdisk /dev/sdb
(パーティション タイプ 7 、および起動可能 フラグ)
NTFS ファイルシステムを作成します:
# mkfs.ntfs -f /dev/sdb1
Windows 7 MBR を USB スティックに書き込みます (Windows 8 でも機能します)。ここに複数のオプションがあります:
<オール># ms-sys -7 /dev/sdb
sudo lilo -M /dev/sdb mbr
(情報)sudo dd if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdb
を実行できます ISO および USB メディアのマウント:
# mount -o loop win7.iso /mnt/iso # mount /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 でも機能します。 Win10_1703_SingleLang_English_x64.iso (サイズ 4,241,291,264 バイト) を 8 GB USB スティックにコピーする Ubuntu 16.04 を実行してみました — 非 UEFI [非セキュア] ブートのみ。実行後の dd レポート:8300156+0 レコード in8300156+0 レコード out4249679872 バイト (4.2 GB、4.0 GiB) コピー、412.807 秒、10.3 MB/秒
次回 Windows 7 インストーラーを USB に配置する場合は逆にします。
解決策 2:
お使いの PC が UEFI をサポートしている場合、さらに GPT ディスクをサポートしている場合は、dd を使用してこれを実現できます。
ターミナルを開くと、ペンドライブがどのデバイスであるかを見つける必要があります。ドライブがマウントされている場合は、「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 自体ではなく、ペンドライブ上のインストーラーが取得されます。
解決策 3:
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 の内容全体をコピーします