くだらない質問だと思ったのですが、Googleで検索すると、indicateのように、起動可能なドライブのデータを別のUSBにコピー/ペーストすることすらできないようですね?しかし、仮にコピーできたとしても、なぜそれがうまくいかないといけないのでしょうか?(それは重複したブート可能なドライブを作成していることになります)
40 None 2018-09-05
単にファイルをコピーしただけでは、起動可能なドライブにはなりません。USB フラッシュドライブを起動可能にするのはファイルだけではありませんが、パーティションテーブルの設定、ドライブ内容の構成に関するメタデータ、PC が ブート可能かどうか、また MBR または GPTかどうかを知ることができます
cyberciti.biz に記載の通りです
各ディスクやパーティションには、何らかの署名とメタデータ/魔法の文字列が付いています。オペレーティングシステムがディスクを設定したり、ドライバをアタッチしたり、システムにディスクをマウントしたりするために使用するメタデータです
しかし、dd、EaseUS Todo Backup、優れたオープンソースのClonezilla、Rufusなど、多くのツールを使ってフラッシュドライブのクローンを作成することができます。(ddとルーファスのことを思い出してくれたAlexに感謝します)
フラッシュドライブを自動的に複製する電子機器もあります
60 K7AAY 2018-09-05
コピーは、フォーマットされたパーティション内のファイルを扱うだけです。ブートフラグの設定やブートローダの書き込みなど、ブートプロセスに必要な特別なことはできません。セクター)をパーティション内の正しい場所にコピーして、ファイルの属性/許可を設定することもできます。以前のブートディスクの作成や、ブートローダを MBR に書き込むフォーマットツールなどで、運良くそれらのものが利用できるようになっていない限り、ディスクをブート可能な状態にするためには、より多くのステップを踏む必要があります
具体的には、BIOS モードで起動するとき、BIOS は最初のセクタ (MBR) を探して、有効なブート署名 0xAA55があるかどうかを確認します。そうであれば、そのセクタをロードし、MBR のブートローダに制御を転送します。MBR はパーティションの設定を記述しているので、パーティションの中には存在せず、通常のツールではコピーできません
また、MBR は小さすぎて使い物にならないので、ほとんどの最新のブートローダは、ブートプロセスを 複数のステージ に分割し、MBR のブートコードが次のステージをロードします。それ以上のステージは、パーティションの外の領域に置かれることが多いです。EBR に置く場合もありますが、grub は通常、2 段目のステージを最初のパーティションと MBR の間の空の領域、ポスト MBR ギャップと呼ばれる領域に置きます。そのため、パーティションを適切に配置しないと、grub がブートコードを置くスペースがなく、埋め込みエラーが発生します
LILO や古い Windows/DOS のブートローダのような多くのブートローダは、次のステージの位置やシステムファイルのような MBR の情報をハードコードしています。MBR やポスト MBR ギャップのような小さなスペースに押し込められているファイルシステムを解析するには、多くのコードが必要になるので、パーティションデータを読むのではなく、代わりにハードコード化されたセクタを読みます。grub でさえ、このようなハードコーディングをサポートしていますが、壊れやすいのでお勧めできません。つまり、いくつかのシステムファイルは、通常のコピーでは達成できない、セクタ単位での正確な位置になければなりません。Windows のデフラグやファイルシステムの縮小を実行しているときに「移動できないシステムファイル」と表示されるのは、これが理由ですが、実際には正しくないことがあります
結局のところ、ブートパーティションをアクティブに設定して、ブートローダに何を起動するかを知らせる必要があります。これは、パーティション領域の外にも置かれているので、パーティション分割ツールで行うか、手動で16進数を編集して行う必要があります
UEFI の方がずっと簡単です。UEFI は FAT ファイルシステム (そして非標準実装ではさらに多くのファイルシステム) を知っているので、ブートファイルは EFI システムパーティション、別名 ESP に保存されます。UEFI は ESP 内の *.efi アプリケーションをロードします
UEFI ファームウェアは、USB フラッシュドライブのようなリムーバブルストレージデバイスからの起動をサポートします。そのためには、リムーバブルデバイスは FAT12, FAT16, FAT32 ファイルシステムでフォーマットされている必要があり、ブートローダは標準の ESP ファイル階層に従って保存されているか、ブートローダの完全なパスをシステムのブートマネージャに提供する必要があります
つまり、基本的には *.efi ファイルを ESP にコピーして、システムファイルを正しいフォルダに入れればよいのです。しかし、*.efiファイルが入っているFATパーティションは、パーティションの外側のMBRやGPTテーブルでESPとしてマークされていなければならないので、上記のようにコピーしてもできないという小さな問題があります。特に、パーティションタイプを MBR の 0Ch/0Bh/whatever から EFh に変更し、C12A7328-F81F-11D2-BA4B-00A0C93EC93B となっています
また、他の多くの BSD ディスクラベルや APM のようなパーティション分割方式もありますが、これらは起動するために別の変更が必要です。また、USB メモリはパーティションテーブルなしでフォーマットされているかもしれません (AFAIK Windows はデフォルトでこれを行っています)。しかし、同じ制限が適用されます: パーティショニングされていない領域を修正する必要があります!
22 phuclv 2018-09-06
従来、BIOSの起動には、特別な目に見えないマーカーが必要でした。ここにいくつかの例があります
- MBR-partitioned (「ハードディスク」) の場合は、パーティションテーブル内
- フロッピー/スーパーフロッピー(「ZIPドライブ」)の場合、基本的には、パーティションテーブルなしでフォーマットされたドライブ全体が、その後、最初の数バイト以内
- CDであれば、El Torito
このような場合、単にファイルをコピーすることはできません。このような場合は、特別なマーカーがないため、結果としてドライブは起動できなくなります
しかし、UEFI ブートは特別で、よりスマートで、特にこれらの問題に対応しています。いつものように、私は このブログ記事 を読むことをお勧めします。フォールバックブートのセクションには特に注意してください。これについては、こちらでも少し詳しく説明しています
この機能を動作させるために必要なのは、ファームウェアが検索するパーティション内の特定のパスにあるファイルです。最適な互換性1のためには、GPTパーティションの中のEFIシステムパーティションとしてマークされたFAT32フォーマットのパーティションでなければなりません。しかし、ほとんどのファームウェアは MBR パーティションと未パーティション (スーパーフロッピー) ディスク上の (単一の) パーティションも検索します
これは、UEFI ブートに必要なのは、フォールバックブートエントリを含む FAT321フォーマットされた単一パーティションだけということを意味します。x86_64アーキテクチャでは、\EFI\BOOT\BOOTx64.EFI
ファイルが必要です。このファイルを含めて、あるフラッシュドライブから別のフラッシュドライブにコピーすれば、すべてが動作するはずです
1
FAT32とGPTは標準で必要とされています。また、このような場合には、BIOSは、BIOSの動作に影響を及ぼす可能性があります。このような状況では、このような問題が発生する可能性があります
2 UEFI 規格は FAT32 のサポートを必要とします。いくつかのファームウェアは NTFS をサポートしているかもしれません (保証されているわけではありませんが)
3 Bob 2018-09-06
コピー」が何を意味するかによります
オペレーティングシステムのGUIでコピー&ペースト?いいえ、それは動作しません – ブータブルUSBが必要とするいくつかのファイルは、”隠された”/不可視とみなされ、コピーされません
うまくいくコピーの種類があります。これは、新しい USB の内容を「コピー」することと区別するために、「イメージング」と呼ばれることが多いです。これを行う最も一般的な方法はコマンドラインツールですが、必要に応じてグラフィカルなオプションが利用できます
これで検索を軌道に乗せるには十分な背景があるはずだ!
0 Sapphon 2018-09-07