LinuxからWindows 7インストールUSBメディアを作成する方法(Windows 7をインストールするため)に関するいくつかのWebページと投稿(ここおよび他のフォーラム)を読んでいます
TechNetでこれについて尋ねたところ、その方法に関する一般的な情報が記載された返信がありました。
「私は個人的にLinuxにあまり詳しくありませんが、基本的にあなたがする必要があることはすべて...あなたがそれを行う方法は次のとおりです:
Usbフラッシュドライブをフォーマットします。fat32またはntfsのいずれかで、Windowsインストールをホストするのに十分な大きさのパーティションを作成し(64ビットの場合は3GB、32ビットの場合は約2.5GB)、そのパーティションをアクティブ/起動可能としてマークします。これはWindowsでも実行できますが、gpartedなどのツールでも実行できるため、debianでも同じことができるはずです。
そのパーティションを作成したら、ダウンロードしたISOをマウントし、ルートから始まるすべてのファイルをUSBフラッシュドライブのルートにコピーします。
それで終わりです。」
私はさまざまな場所で別の方法を見つけました。これは、TechNetで言及された方法とほとんど同じです。ただし、このメソッドには欠落しているステップや、必要とは思わないステップが含まれているようです。
dd
が常に機能するとは限りません。基本的に、欠落している手順は、適切なブートセクターをUSBスティックに書き込むことでした。これは、Linuxからms-sys
を使用して実行できます。これは、Windows 7
の製品版で機能します。
詳細は次のとおりです。 serverfaultの質問を参照 詳細は次のとおりです。
fdisk -l
)を確認します。ここでは、それが/dev/sdb
であると想定します。すべてのパーティションを削除し、すべてのスペースを占める新しいパーティションを作成し、タイプをNTFSに設定して、起動可能に設定します。
cfdisk /dev/sdb
NTFSファイルシステムを作成します。
mkfs.ntfs -f /dev/sdb1
ISOおよびUSBメディアをマウントします。
mount -o loop win7.iso /mnt/iso
mount /dev/sdb1 /mnt/usb
すべてのファイルをコピーします。
# cp -r /mnt/iso/* /mnt/usb/
USBスティックにWindows 7 MBRを書き込みます。
# ms-sys -7 /dev/sdb
書き込みがフラッシュされていることを確認します(数分かかる場合があります)。
# sync
gpartedを開き、USBドライブを選択し、ファイルシステムを右クリックして、[フラグの管理]をクリックします。 [ブート]チェックボックスをオンにして、閉じます
...これで完了です。
最後のステップ# ms-sys -7 /dev/sdb
を実行せずにUSBが機能するべきではありませんか?それともUSBを起動可能にするためですか?パーティションを起動可能としてマークするだけですか?
cp -r
の代わりにrsyncを使用したほうがいいのではないでしょうか?
このすべての手順をroot
として実行する必要がありますか?そうでない場合は、すべてのファイルを664
にchmod
し、USBデバイスとISOイメージのマウントに使用されるすべてのディレクトリをchown
する必要がありますか?データをroot
としてコピーする方が簡単で、データに影響を与えないと思います。
誰かがこの方法またはdd
でisoをコピーするような類似の方法を試しましたか?
ms-sys
コマンドは重要です。 -7
オプションを使用すると、フラッシュドライブにWindows 7互換のブートセクターを作成します。
ISOは[〜#〜] udf [〜#〜]またはISO966などのISOファイルシステムを使用しているため、ddを使用できません。 ext3、FAT32、またはNTFSなどのディスクファイルシステムをサポートします
Cp -rの代わりにrsyncを使用する方が良いでしょうか?
あんまり。 cp -r
は完全に正常に機能します。 NTFSはLinuxとは異なる方法でアクセス許可を処理するため、rsyncを使用してすべてをそのまま維持することはそれほど重要ではないことを理解してください。本当に重要なのはISOからのファイルはUSB上にあるそしてブートセクタはms-sys -7
を使用して正しくフォーマットされている
必要に応じて、すべての手順をrootとして実行できます。ルートを本当に必要とする2つのステップは、mkfs
と2つのmount
だけです。
ルートとしても権限の問題が発生する場合は、ntfs-3g /dev/sdb1
を使用してUSBをマウントする必要があります。これは、一部のLinuxディストリビューションがNTFS用の読み取り専用ドライバーのみを提供しているためです。
Dd(dd if =/file/win7.iso of =/dev/sdb)を試してみましたが、機能しません。
それを機能させるための私のステップ:
その後、次のコマンドを適用します。
# mount -o loop win7.iso /mnt/iso
# mount /dev/sdb1 /mnt/usb
# cp -r /mnt/iso/* /mnt/usb/*
# ms-sys -7 /dev/sdb*