web-dev-qa-db-ja.com

ms-sysまたはddを使用してLinuxから起動可能なWindows7 USBドライブを作成することの厄介な点は何ですか?

LinuxからWindows 7インストールUSBメディアを作成する方法(Windows 7をインストールするため)に関するいくつかのWebページと投稿(ここおよび他のフォーラム)を読んでいます

TechNetでこれについて尋ねたところ、その方法に関する一般的な情報が記載された返信がありました。

「私は個人的にLinuxにあまり詳しくありませんが、基本的にあなたがする必要があることはすべて...あなたがそれを行う方法は次のとおりです:

  1. Usbフラッシュドライブをフォーマットします。fat32またはntfsのいずれかで、Windowsインストールをホストするのに十分な大きさのパーティションを作成し(64ビットの場合は3GB、32ビットの場合は約2.5GB)、そのパーティションをアクティブ/起動可能としてマークします。これはWindowsでも実行できますが、gpartedなどのツールでも実行できるため、debianでも同じことができるはずです。

  2. そのパーティションを作成したら、ダウンロードしたISOをマウントし、ルートから始まるすべてのファイルをUSBフラッシュドライブのルートにコピーします。

それで終わりです。」

私はさまざまな場所で別の方法を見つけました。これは、TechNetで言及された方法とほとんど同じです。ただし、このメソッドには欠落しているステップや、必要とは思わないステップが含まれているようです。

ddが常に機能するとは限りません。基本的に、欠落している手順は、適切なブートセクターをUSBスティックに書き込むことでした。これは、Linuxからms-sysを使用して実行できます。これは、Windows 7の製品版で機能します。

詳細は次のとおりです。 serverfaultの質問を参照 詳細は次のとおりです。

  1. インストール ms-sys
  2. USBメディアに割り当てられているデバイス(fdisk -l)を確認します。ここでは、それが/dev/sdbであると想定します。
  3. すべてのパーティションを削除し、すべてのスペースを占める新しいパーティションを作成し、タイプをNTFSに設定して、起動可能に設定します。

    cfdisk /dev/sdb

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

    mkfs.ntfs -f /dev/sdb1

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

    mount -o loop win7.iso /mnt/iso
    mount /dev/sdb1 /mnt/usb

  6. すべてのファイルをコピーします。

    # cp -r /mnt/iso/* /mnt/usb/

  7. USBスティックにWindows 7 MBRを書き込みます。

    # ms-sys -7 /dev/sdb

  8. 書き込みがフラッシュされていることを確認します(数分かかる場合があります)。

    # sync

  9. gpartedを開き、USBドライブを選択し、ファイルシステムを右クリックして、[フラグの管理]をクリックします。 [ブート]チェックボックスをオンにして、閉じます

...これで完了です。

質問

  • 最後のステップ# ms-sys -7 /dev/sdbを実行せずにUSBが機能するべきではありませんか?それともUSBを起動可能にするためですか?パーティションを起動可能としてマークするだけですか?

  • cp -rの代わりにrsyncを使用したほうがいいのではないでしょうか?

  • このすべての手順をrootとして実行する必要がありますか?そうでない場合は、すべてのファイルを664chmodし、USBデバイスとISOイメージのマウントに使用されるすべてのディレクトリをchownする必要がありますか?データをrootとしてコピーする方が簡単で、データに影響を与えないと思います。

  • 誰かがこの方法またはddでisoをコピーするような類似の方法を試しましたか?

9
Abel Coto

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用の読み取り専用ドライバーのみを提供しているためです。

1
Someguy123

Dd(dd if =/file/win7.iso of =/dev/sdb)を試してみましたが、機能しません。

それを機能させるための私のステップ:

  • Ms-sysをインストールする
  • パーティションを作成し、NTFSファイルシステムを作成するためにgparted。

その後、次のコマンドを適用します。

# mount -o loop win7.iso /mnt/iso 
# mount /dev/sdb1 /mnt/usb
# cp -r /mnt/iso/* /mnt/usb/*
# ms-sys -7 /dev/sdb*
1
Nacheteee