安定した Puppy & Windows multi boot

Dual / Triplle bootも OK


ドキュメント履歴: 2025- 6-30 初回アップ



Puppyの親記事へ

最初に
Windows10 のサポート切れを視野に入れて、古くて遅い PCでも軽快に作動する Puppyという Linux派生の O/Sを使い始めたが、まだ Windows10も完全には捨てきれずに時々は Winows10を起動したいという場合 Windowsは残したまま Puppyをインストールして、起動時に O/Sを選択する デュアルブートシステム化をしたい。
しかし Windowsのアップデートがあったりするとブートシステムが存在する EFIパーティションが書き換わってしまって、Puppyが起動しなくなるなどのトラブルに見舞われる。
この記事はそんな意図しないトラブルを防止して、安定した起動を実現する方法を探った現時点での結論。
いつものお約束で、ここで書いたことは単に私が実験的に試した結果であって、 結果の保証はもちろん思わぬ弊害がないことを保証するものではありません。 情報を利用する場合は、利用者自身の適切な判断と責任で行って下さい。

  1. 起動専用デバイス(USBメモリ または パーティション)を準備する
  2. パソコンで Windows /Linux を使う場合、システムの内部では 通常 O/Sの起動に先立って UEFIから Windows/Puppy などのブートデバイスを選択し、それぞれのブートローダーに処理を渡してカーネルを起動する。
    Normal Dual Boot System
    Puppyなどの UEFI対応ブートローダーは Grub2で、ディスクの boot, esp フラグが付いた fat32フォーマットの EFIシステム・パーティション(ESP)に配置されここから Windowsなどの O/Sも起動可能で、デュアルブートでも使われる。
    しかし、この EFIシステム・パーティションが Windows O/Sと同じデバイス(ディスク)上に存在していた場合、Windowsにアップデートなどがあると Windowsがセキュリティ対策でこの Grub2のブートローダーを書き換えてしまい Puppyは選択・起動できなくなる。
    私も何回かこの現象に遭遇して、そのたびに Grub2の再インストールをせざるを得なかった。再インストールは 数分で終わるので大した手間ではないが、それでも急いでいる時など Puppyを起動するつもりが いきなり Windowsが起動してしまうのは避けたい。
    更に、PCをいじくり回しているうちにも起動できなくなることが多々あるが、バックアップイメージなどから復元する場合、一部の Windows PEベースのバックアップソフトでは、Linuxのブートローダーを正常に認識できず、イメージのリストアでは問題が解決しないこともある。
    こうした問題を何とか出来ないか考えてきたが、最近になって一つの解決策を思いついた。それは Grub2の ESPパーティションを Windowsの存在するドライブとは別のドライブに配置しておくことで、Windowsのアップデート処理から独立できるのではないかというアイデアだ。
    更に、今までと同様 Windows の O/Sが存在するディスクにも 従来どおり ESPパーティションを残しておくことで、UEFIのブートプライオリティを変えるだけで、通常の Windowsの起動プロセスを実行できるので、何かあった場合の緊急の選択肢が増える。
    などと考えているうちに試さずにいられなくなった。ジャンク箱を漁ると 20年ほど前に販促品としてもらった 256MBの USBメモリが出てきた。今更 256MB容量のメモリを使うシーンがあるとは思いもしなかったが、これだからジャンクはいつまでも捨てられない。
    実際の手順とシステムは図の通りで、
    Improved Dual Boot System
    1. まず Grub2のインストールが実行できる Puppyなどの O/S(Dev4)から起動しておいて Windowsや Linuxなどが存在するディスク (Dev2, Dev3)を接続しておいて、更に上記の EFIパーティション用のディスク (Dev1 > 100MB)も接続する。
    2. GPartedなどのパーティション操作ユーティリティで、Dev1 を Fat32にフォーマットして、boot esp フラグを立てる。
    3. Grub2 インストーラを起動して、Dev1 に Grub2をインストールする。この際、起動選択したい O/Sが存在するディスクを全て指定する。
      実際の Grub2インストール方法は ここを参照。
    4. Dev1に Grub2 がインストール出来たら、Dev4は外して一旦シャットダウンしてから、再起動して Delキーなどを押して UEFI ブートマネージャの設定画面を起動して、上記 Dev1を最優先で起動するように設定する。
    右図の 点線は Grub2インストール時のデバイス認識、実線矢印が ブートローダーのデバイス認識の様を示す。
    このようにすることで、UEFIブートマネージャは Dev1の EFIパーティションから Grub2のブートローダーを探して起動し、Grub2の O/S選択画面を表示する。
    万が一 Windowsのアップデートが行われて、Dev2のブートローダー部分が書き換えられても Dev1の EFIパーティションには影響しない(と思われる)ので、起動トラブルに見舞われることもなくなる(ハズ)。
    私もこの設定をしてからまだあまり日にちが経っていないので、どれくらい効果があるかは不明だが、現時点では問題は起きていない。
    なお 私は確認していないが、Dev1は独立した USBメモリではなくても、例えばデータ用のパーティションと同じディスク上に EFIパーティションを作成したり、あるいは Dev3のような Windows以外の O/Sのパーティションが存在するディスクに EFIパーティションを作成しても構わないと思う。

    実装の状態
    なお、私の場合 実際のデスクトップ機への実装は、Dev1がケース前面USB端子に常にぶら下がっているのも不安定だ。
    そこで 近くの DOSパラ店で見つけた USBメス同士のコネクタ(写真左上)を半分に切断したものに、10Pin コネクタをハンダで直接続し、エポキシ接着剤で補強して写真のような加工をし(写真 左下)、マザボの空き USB端子にこの USBコネクタを接続して(写真 右)ケース内部に隠れるようにしてある。

    1. Note-PC への応用
    2. 上記 デスクトップ機のデュアルブートがうまくいったので、今度は Note-PC に同じような起動専用デバイスをつけることを画策。 ただし Note-PC では通常の USBメモリを外付けしたのでは出っ張りが大きくて不安定だし、USB端子の数が少ないので 起動用USBメモリだけで USB端子を専有してしまうのは痛い。 しかも 私の Sony時代の Vaioは USB端子が 2.0と 3.0の 2個しかなく、タッチパッドが嫌いな私は USB2.0側は常にマウスが専有してしまっている。 (Bluetoothマウスもあるが、Puppyではドライバーの設定などが難しくて使えていない) そこで起動用 USBメモリを挿すと空きの USB端子がなくなる。
      L字型ハブ
      どうしようかとしばらく悩んだが、ネットをうろついていたら 写真のような L字型の USBハブがあった。普通のハブはコードで引き出すタイプだが、それだと Note-PC筐体との一体感がない。 しかしこの L字型のハブならボディに沿って固定配置できるので少しは一体感が出るだろう。ついでに 小型の USBメモリを探して一緒に ポチッた。
      完成
      しかし届いたモノを見たら、L字の曲がりが想定した方向とは逆方向になっていた。これだと マウスを接続している USB2.0 端子を覆ってしまって使えない。隙間は実測で 4mmしかない。
      どうしようかと考えたが、USBオス側コネクタをバラしてコードを横方向に引き出せば行けるかも知れない。  ということで、USBコネクタのプラスチック部分をナイフや糸鋸で剥いで、コネクタ本体部分を露出させハンダ作業。 最初は8芯のリード線を使ったがそれだとハンダも乗りづらく外れやすいので、単芯コードに変更しておいてハンダ付け後にエポキシ接着剤で補強兼取り外し時の指掛りにした。 はみ出した接着剤を削って完成。
      写真左側が改造した USBコネクタ部分。説明用に少し引き出した状態。右側が USBハブと改造 USBコネクタを両方挿した状態。先端の赤丸内が 起動用 USBメモリ。
      何とか外観以外は満足できる出来になった。(汗;;;)

      ページトップへ


      このページ(puppy_dualboot.html)にコメント/質問をどうぞ
      タイトル(30文字以内)
      コメント
      お名前(ID:10文字以内)
      URL(HP or ブログをお持ちの方)
      パスワード*
      タイトル・コメント・ID は必須です
      このページ(puppy_dualboot.html)への今までのコメント/質問
      このページにはまだ表示できる投稿がありません。

      Back to Page top

      Access Counter:  総アクセス数