USBスティック上の複数のWindowsインストーラー


12

最近、これらのSanDisk Extreme 64GBスティックの1つを手に入れて、いじくり始めました。このストーリーでは、これはremovableビットが設定されているモデルであることに注意してください0(つまり、Windowsはすべてのパーティションをデフォルトで認識します。それぞれがエクスプローラーで単一のディスクとして表示されます)。

目標:

  1. 単一のスティックに多くの異なるブート可能なディストリビューションを作成するには
  2. それらの中には、Windows 7インストーラーとWindows 8インストーラーが必要です。
  3. Windows(およびできれば他のOS)で自動マウントされるパーティションは1つだけです(最初のパーティション(ファイル用のストレージ))。これは、起動可能なパーティションまたはそれらのファイルの偶発的な変更を防ぐためです。NTFSタイプである必要があります。
  4. 必要に応じて、このスティック上で直接起動可能な完全永続Linux(できればUbuntu)も必要です。
  5. これらの機能はすべて、USBスティックからマシンを起動するときに表示される単一のメニューから利用できます。

とりとめ:

これは、SYSLINUXGRUBの組み合わせを使用することで、すべて簡単に実現できます(以下を参照)。ただし、1つの問題があります。Linuxベースのすべてのブータブルアイテム(create ramdisk -> load kernel -> have funPartEd Magic、Ubuntu Installerなどのスキームを使用するもの)は、単一のブータブルパーティション上の独自のフォルダーから実行しても問題はないようです。単に異なるフォルダに入れて、単一のSYSLINUXメニューエントリをポイントするだけでうまくいきます(その後使用するものは何でも、単に別のSYSLINUXかもしれません:))。

問題は(いつものように:D)Windowsインストーラーにあります。彼らは(または言うべきですbootmgr)相対パスの認識を拒否します。たとえば、Windowsインストーラーをフォルダーに配置すると、Win7次のよう/Win7/bootmgrになります。実際に格納されている場所ではなく、制御が渡されたときに、かっこいいモノが探します。当然ながら、単一のパーティション(単一のディレクトリ構造)に複数のWindowsインストーラーを配置することはできません。これは目標2に違反します。\Boot\BCD\Win7\Boot\BCD

現在のスキーム:

画像を投稿するには10の評判が必要です:(。これが視覚化されたスキームです。

説明:

  1. 通常のNTFSパーティション。あなたがそれでやりたいことをしてください-それはそれらの敏感なブートリンクには影響しません:)
  2. FAT32ブートパーティション。これは、MBRから制御が転送される場所です。これは、MBRから制御を転送できるようにするためにプライマリである必要があります。メインSYSLINUX-メニューを表示するもの(GOAL 5およびGOAL 1)が含まれています。 以下のすべてのパーティションは、ディスクごとに最大4つのプライマリパーティションを持ち上げるように拡張されています
  3. Windows 7インストーラー。このパーティションには、その上にあるGRUBを指すブートセクターが含まれ/bootmgrています(なぜこれほど多くのブートローダーがあるのか​​尋ねないでください-テストのセットアップです:))。以下の懸念事項(GOAL 2)を除き、正常に動作します。
  4. Windows 8インストーラー。このパーティションには、を指すGRUBを指すブートセクターが含まれてい/bootmgrます。以下の懸念事項(GOAL 2)を除き、正常に動作します。
  5. Ubuntuが通常の方法(同じUSBスティックから)を使用してインストールされた永続的なLinuxパーティション。GRUBを使用して、ブートメニューを管理します。もちろんブートセクタもあります(GOAL 4)。
  6. Linuxスワップ。通常、以前のパーティションでLinuxによって使用されますが、誰が使用できるかについての制限に拘束されません。

これで、GOAL 3を除いて、すべて正しいように見えます(そして動作します)。

問題点:

  1. hiddenフラグを使用してこれらのパーティションをWindowsから見えないようにしようとしましたが、うまく機能しました。また、Windowsのインストーラーの目に見えないようにしました。隠しパーティションからWindowsをインストールしようとすると、インストーラーは基本的に、:Oからどこでブートしたかを見つけられませんでした。これは重大な問題です。
  2. Windowsインストーラーを格納するために2つの追加パーティションを使用しました。これは本当に素晴らしいスキームではありません。何かを変更したいときはいつでも、これらに当てはまらないので、パーティションを再作成する必要があります。これは非重要な問題です-私はそれで生きることができます。

私の考え:

  1. ISOLINUXGRUB4DOSのようなものがあります(これについて検索すると表示されます)。私が理解したことから、それらは実際にWindowsインストーラの起動可能な.isoをマウントするのに役立ちます。本当?一部のページには、このようにマウントされたイメージに関する警告が含まれており、BIOSブートステージでのみアクセスできます。Windowsインストーラーが起動すると、マウントされたイメージを表示できません。本当?私を正しい方向に向けることができますか?
  2. たぶん私は(基本的に、私は戦うため、Windowsのためのいくつかのカスタムインストーラを使用することができbootmgr、ここで時間を100%)、または、それは正気になりそうという何とか?これは実行できますか?これにより、パーティションがまだ非表示になり、インストーラーがおそらくそれを表示しないという問題が残っていると思いますchrootbootmgr
  3. たぶん、パスをハックすることができますがbootmgr、それはかなり大胆な仮定です:)

これに関する追加のアドバイスがあれば、ここでそれを議論することを大歓迎します。どんな提案も受け付けています。明確にする必要があるものや追加情報を提供する必要がある場合は、お気軽にお問い合わせください。

どうもありがとうございました!


WRT Windowsインストーラー:なぜ複数のブートローダーが必要なのですか?新しいバージョン(つまり、Windows 8のバージョン)を使用して、同じパーティションから両方のインストーラーを起動できるように、エントリを変更することは可能ですか?
マリオ14

その方法の例を提供できますか?私が理解している限り、あなたは単一のbootmgrを使用しているが複数のインストーラを使用しているセットアップについて言及していますか?これについて何か読むことができますか?
Gear54rus 14

自分で試したことはありませんが、基本的にセットアップDVDのブートマネージャーは通常のHDDインストールと変わりません。したがって、BCDEditなどのツールを使用して「デュアルブート」セットアップを作成できるはずです。
マリオ14

OK、私は部分的な解決策を見つけたと思います。徹底的にテストしたら、ここにすべて掲載します。私はまだ別の問題が残っています:どのように私は作るのですか隠さpertition参照インストーラのWindows
Gear54rus

BCDファイルを編集しました。私がしたことは、Windows 7 .isoインストーラーをSYSLINUXパーティションの/ Win7フォルダーに解凍することでした。次に、Win7からルートフォルダーにプルしbootmgr、ファイルをboot編集/boot/BCDして、変更されたノードdeviceosdeviceノードを反映しました。その後、インストーラはSYSLINUXから正常に起動しますchain.c32 fs ntldr=/bootmgrが、その後、恐ろしいA required CD/DVD drive device driver is missingメッセージが表示されます。別のUSBポートに再挿入しても役に立ちません。クリックするBrowseと、ramdiskが正常にマウントされ、必要なすべてのフォルダーがあることがわかります。私は再び失われました:(
Gear54rus 14

回答:


6

長い、そして最終的に成功した旅の後、私はすべてを達成することができました。

これを実行する方法についてのチュートリアルを作成しました。見てみな。

リクエストごとに、以下も全部掲載しています。

ソフトウェア:

まず第一に、Windows 7/8とその管理アクセスを備えたPCが必要です(Vistaは動作するかもしれませんが、確実ではありません)。これは、チュートリアルが実行される場所です。

このソフトウェアパッケージを必要とするすべてを実行するにはGitHubにミラーリングされます([ ZIPのダウンロード ]をクリックします)。[0](今後、参照には[]のマークが付けられます)。ダウンロードするには、そこに登録する必要があるかもしれません(理由はわかりません)。

ソフトウェアパッケージには以下が含まれます。

  • YUMI by pendrivelinux.com[1]
  • altmbr.binからSYSLINUXの数でパーティションをブートすることを可能にするパッケージ。[2]
  • 複数のスクリプトと1つの実行可能ファイル(vmountプログラム-erwan.lによる 32ビットバージョンと64ビットバージョン、およびこのスレッドからの32/64ビットをスリープさせて、これらすべてを連携させる[3])

さらに、次をダウンロードする必要があります。

  • WinSetupFromUSB(後のWSFUSB)。これは、このスキームが機能するために重要です。7zipがインストールされていない場合は、.exeバージョンを使用してください。このチュートリアルは、バージョン1.4が最新であったときに作成されました。[4]

必要に応じて(推奨するソフトウェアは、プロセスをより簡単かつ柔軟にしますが、必須ではありません):

  • .isoパーティション分割とパーティションフラグの設定のためにGpartedをライブで使用します(アナログには、最近支払われることを決めたParted Magicや、より小さいパーティションウィザードが含まれていますが、Gpartedではなく、操作するには経験が必要なことに注意してください)。[5]
  • Notepad ++は、多くのプラグインを備えたWindows用の優れたテキストエディターです。[6]

そしてもちろん、いくつかのWindowsインストーラー.isoといくつかの起動可能なLinuxディストリビューションは、YUMIとSYSLINUXがサポートするものであれば何でもかまいません(このチュートリアルの後半で確認できます)。

これをすべてダウンロードしたら、次のステップに進む準備ができています。

概念:

ここでは、操作のスキームについて簡単に説明します。

ここで説明するスキームは、セットアップに使用するものです。確かに同じ目標を達成する唯一の方法ではありません。あなたのニーズに合わせてセットアップをカスタマイズできるように、それを試して説明するために最善を尽くします。

このプロセスは、写真で最もよく説明されているようです。(ペイントについては申し訳ありませんが、グラフィックデザインは本当に私の強みではありません):

概念

それはほとんどそれです。私はそれをもっと良く説明する方法を本当に知りません。このスレッドを監視しますので、お気軽にご質問ください。

行動:

  1. [ソフトウェアの構成]

    1. ソフトウェアパッケージ[0]をいくつかのフォルダーに解凍します(必要なすべてのソフトウェアは上記にリストされていますまだ確認していない場合は、そこを参照してください)。
    2. WinSetupFromUSBを同じフォルダーに抽出します(そのため、YUMI.exe他のすべてのものと一緒になります)。ダブルクリックして、同じフォルダーに抽出します。
    3. 次に、WinSetupFromUSB含むフォルダーをdrag_here.cmdファイルにドラッグします。このように(フォルダー構造もこのようにする必要があります): DND すべてを正しく実行すると、プロセスが完了したことを示すウィンドウが表示されます。
      WinSetupFromUSB was set up successfully, you can delete that folder.
      Now it's time to run 'start_admin.cmd'.
      Press any key to continue...
    4. 言うように、任意のキーを押してウィンドウを閉じます。まだstart_admin.cmdを実行しないでください。次の手順に進み、パーティション構造を定義します。
  2. [パーティショニング]

    1. パーティション構造を決定します少なくとも1つのストレージパーティションと少なくとも1つのブートパーティションを含める必要があります。ブートパーティションのタイプはFAT32である必要があります(FAT32には最大ファイル-4GBと最大ボリューム-32GB(32768MB)の制限があります。より大きなファイルまたはボリュームを使用する場合、NTFSを使用できませんが、exFATを試すことができます実験-私はそれを試しませんでした)ストレージは何でも構いませんが、NTFSをお勧めします。私の場合は次のようになります: 構造 ストレージパーティションは32GB NTFSブートパーティションは15GB FAT32です(G:のような文字はありません。隠しフラグが既に設定さているため、後で学習します)。大きなディスクを使用している場合は、一部のBIOSが特定の境界を超えて読み取ることができないため、ブートパーティションを最初に置くことをお勧めします
    2. ここではディスク管理の方法について説明しますが、パーティション構造を適用するために好きな他のソフトウェアを使用できます(前述のGparted [5]WinSetupFromUSBから起動できるBooticeなど)。Windowsでディスクの管理を開きます。これは、[スタート]メニュー([ ディスクの管理 ]で入力)またはWindowsコマンドプロンプト:diskmgmtで検索することで実行できます。
    3. 目的のパーティション構造を適用します。パーティションを右クリックして管理します。パーティションの削除後に残った未割り当て領域を右クリックして、新しいパーティションを作成します。常にドライブ文字を割り当てることを選択し、同じウィザードで自由にフォーマットできます。 パーティション作成
    4. ディスクの管理を終了する前に、ブートパーティションの数に注意して、あなたのディスクの数、システム内を。これは、ディスクの管理でどのように見えるかです。 指数 ここでは、ディスク番号は2でブートパーティション番号は1です。
    5. パーティションスキームの適用が完了したら、このドライブを実際に起動可能にします。
  3. [ベースブート環境(YUMI)の追加]

    1. 手順1のフォルダーに移動します。を開始しYUMI.exeます。
    2. [ すべてのドライブを表示]ボックスをオンにし、ドロップダウンリストからブートパーティションを選択します。オプションで、フォーマットすることもできます。
    3. 次に、いくつかのLinuxベースのディストリビューションを追加します。パーティションウィザードを例として選択しました(他のディストリビューションを選択して複数のディストリビューションを追加することもできます。パーティションウィザードへのリンクはソフトウェアセクションにあります)。この時点ですべてのLinuxベースのディストリビューションを追加することをお勧めします。ディスクがファイナライズされた後、後で行うのが難しくなるからです。
    4. [ 参照]を選択し、.iso画像を選択します。画面は次のようになります。 ゆみ
    5. [ 作成]をクリックして、画面の指示に従います。さらに追加するかどうかを尋ねられたら、[はい]を選択して手順を繰り返すことができます(手順を繰り返すときに書式設定オプションを選択しないでください)。
    6. この時点で、ディスクは起動可能です。ディスクを切断して再接続します(Windowsがパーティションを適切にアクティブとして検出するために必要です)。
    7. 手順1のフォルダーに移動しstart_admin.cmd 、管理者として実行ます。これはその操作にとって重要であり、右クリックして「管理者として実行」を選択します管理者として実行
    8. ディスク番号ブート可能なパーティション番号を尋ねます(ステップ2.4)。ディスクの管理を再度開き、手順2.4で行ったような番号を見つけます。それぞれの番号を指定してEnterを押します。

    [注意]繰り返しますが、このステップまたは他の場所で適切なディスク番号とパーティション番号を指定しなかった場合、ディスク(このチュートリアルで言及されていないものを含む)に何が起こるかについて責任を負いません。


    1. 最後に、実行可能ファイルを圧縮してからUSBドライブに入れるかどうかを尋ねます。最近ではサイズが問題になることはめったにないので、nここに入力することをお勧めします(を押した場合、予期しない副作用が後で現れる可能性がありyます。
  4. [Windowsベースのインストーラー(WinSetupFromUSB)の追加]

    1. 同じフォルダーに戻り、WSFUSBフォルダー(WinSetupFromUSBフォルダーではない)に移動して、システムアーキテクチャに適したWinSetupFromUSB.exeを実行します。
    2. 一番上のドロップダウンメニューでパーティションを選択します。慎重に行ってください。
    3. Windows 7/8インストーラーの横にあるチェックボックスをオンにし、右側のボタンをクリックしてWindowsインストーラー.isoを選択します。
    4. [ 詳細オプション]ボックスを選択します。セットアップの前にgrub4dos MBRチェックしてインストールしないで、Q-Dir起動するようにしてください
    5. 設定を再確認し、この例とほぼ同じ(ディスクと.isoパスを除く)に見えることを確認します。 WSFUSB
    6. 必要に応じて、Vista / 7/8 / Server Sourceのカスタムメニュー名を選択して、ブート時にWindowsディストリビューションを選択するときにカスタム名を表示できるようにすることができます。
    7. 準備ができたら、GOボタンを押します。ステップ4.7でボックスを選択した場合、名前を尋ねます。その後、操作が完了するまで待ちます。
    8. 追加するWindowsディストリビューションごとに手順を繰り返します。
  5. [ファイナライズ]

    1. この時点で、2つのブート可能な構造があります。1つはLinux(MBRから開始)と1つはWindows(ブートパーティションのbootmgrから開始)です。それらをリンクする必要があります。Windowsエクスプローラーで起動可能なパーティションを開きます
    2. ファイルを開きます<drive root>\multiboot\syslinux.cfg。ドライブから起動するときに表示されるメニューに関する情報が含まれています。詳細については、menu.c32-syslinux.cfg構文chain.c32 chainloaderコマンドを参照してください。今のところ、Windowsインストーラーを起動できるメニューエントリを作成する必要があります。新しいメニューエントリを作成するには、下部(または他のメニューエントリの間に)に次の行を追加します。
      MENU LABEL Windows Installers/Recoveries >>>
      MENU INDENT 1 
      KERNEL chain.c32
      APPEND fs ntldr=/bootmgr
      できれば、このコードの前後に空の改行を追加してください。必要に応じて、メニューエントリのラベルを調整します。ファイルを保存して閉じます。
    3. [ここからオプション] WinSetupFromUSBを再度開きます。Windowsインストーラーメニューから古いメインメニューに戻る(Grub4dos)メニューエントリを削除します。Booticeツールを選択します。
    4. BCD Edit進みます。他のBCDファイルを選択<drive root>\boot\bcdして、ブートパーティション上のファイルを見つけます。 ブーティス
    5. イージーモードを押して、BCD(ブート構成データ)ファイルを編集します。 BCD 注:インストーラーが1つしかない場合、追加したメニューエントリを押すと、メニューがsyslinux.cfg まったく表示されずにすぐにロードされます。また、デフォルトにするメニュー項目で[デフォルト設定 ] を押すこともできます。[ 閉じる]をクリックしてBooticeツールを終了します。WinSetupFromUSBも終了します。
  6. [クリーンアップ(オプション)]

    1. 次に、古いファイルを削除する必要があります。この種のことを気にしない場合は、このセクションをスキップできます。Windowsエクスプローラーで起動可能なパーティションを開きます。また、ドライブの最初のパーティションを開きます(それらは同一である場合があります)。
    2. このディスクが機能するには、次のファイルとフォルダーが必要です(フォルダーがリストされている場合、そのすべてのコンテンツを保存する必要があります)。
      \boot
      \efi
      \multiboot
      \WINSETUP
      \bootmgr
      
    3. 次のファイルとフォルダーは安全に削除できます。
      .disk
      \default
      \grldr
      \menu.lst
      \plpbt.bin
      \shifthd.bat
      \usbdrive.tag
      
      自由に削除してください。さらに、Windowsはその愚かなシステムボリューム情報を作成する場合があります-運が良ければそれも削除できます。また、これは、ブートパーティションの名前MULTIBOOTから他の任意の名前に変更できるポイントです(単にBootを好む)。これは、Windowsエクスプローラーを介して任意のフォルダーで行うことができます。
  7. [ブートパーティションの非表示(オプション)]

    1. ブートパーティション非表示にして、そのパーティション上のファイルが誤って変更されないようにすることができます。これは、ディスクを挿入すると、デフォルトではほとんどのシステムで表示されないことを意味しますが、ディスクから起動することはできます。WinSetupFromUSBを再度開きます。
    2. Booticeツールを開き、[ 物理ディスク ]タブが選択されていない場合は選択します。ドロップダウンメニューでディスクを(慎重に)選択します
    3. [ パーツ管理 ]ボタンをクリックます。パーティションリストが表示されます。
    4. リストでパーティションを見つけ、表示ボタンを押します。成功を確認するウィンドウが表示されます。全体は次のようになります: これを隠す それだけです。ほとんどのシステムでパーティションが自動マウントされなくなり(ドライブ文字がなくなります)、ドライブの起動に必要なファイルが誤って変更されることはありません

また、必要に応じてWindowsで隠しパーティションをすばやくマウントできるように、vmountプログラム([ ソフトウェア]セクションの[3])を保持することを好みます。

誤解や誤りに気づいたら、ここに投稿してください。また、質問やフィードバックも歓迎します。

クレジット:

Wonkoerwan.lilkoスティーブ -で途方もなく私を助けreboot.proコミュニティのメンバー、このスレッド。これは旅が終わった場所です:)

最初にこの部屋で ImDiskドライバーについてほのめかしたボブ

この元の質問で BCDファイル、その目的、およびそれらを編集する手段について教育したマリオ。これが旅の始まりです。

インデントのエラーを修正したリッキー


ここにソリューションをコピーできるといいですね。
クリスチャンシウピトゥ14年

よくできました。驚くほど詳細なガイド。
デビアン14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.