ページ 11

Win10とのデュアルブート

Posted: 23/11/11(土) 20:32
by yuknak
いつもお世話になっています。
初心者のヘルプでアドバイスいただいて Puppy(FossaPup64 9.5)を
モバイル用にUSBメモリと デスクトップ機のHDD(+USB SSD)に
インストールしてBIOSの起動ドライブ選択で起動できるようになりました。
出きるようになるとさらに欲が出てきて、HDDにインストールした
Puppyを Windowsのブートローダー(BCD)からWindowsと
デュアルブートで 使いたいと色々調べてみました。
しかし、UEFI で Grub2での起動はできないとか、
UBUNTSでデュアルブートするインストール情報などが混在していて、
しかも 2010年ころの古いバージョンの情報も多くて、自分でも
それらの情報を元に bcdeditと1W以上格闘してみましたが、
あいにく Linux の知識不足で現時点で果たせていません。
(主に C:¥直下に grldr.mbr や 下記 sdc1の先頭 512byteの
イメージファイルを置いて、bcdeditで pathに指定する方法です)
以下のような環境・条件で, デュアルブートする具体的な
手順に関する 情報をお持ちの方がいらっしゃったら、お教えいただけませんか。
環境:
M/B: ASUS P8Z68-M Pro(UEFIで起動)
HDD/SSD: sda/500GB SSD sdb/ 1TB HDD sdc/300GB HDD (全て GPTフォーマット)
現時点は sda 上に Windows10,
    sdc1 に Grub2 sdc2に Puppy(Frugal install)本体 sdc3 にSwap
できれば、ブートローダーは Windowsの bootmgrを使いたいと思っています。
UEFIで起動できれば Grub2にはあまりこだわっていません。
よろしくお願いいたします。

Re: Win10とのデュアルブート

Posted: 23/11/11(土) 21:27
by thinkpadnerd
FAQ のコーナーは、本当は質問をする場所ではないです。 :)

ところで、UEFI のパソコンで sda に windows があるとのことですが、sda1 が UEFI のブートパーティションになっているはずです。まれに、パソコンによっては sda2 がブートパーティションになっています。

UEFI のパソコンでは電源を入れると、このブートパーティションを最初に読みにいきます。
デュアルブートを構成するのなら、専用のツールに任せたほうが安心だと思います。

Grub2config
viewtopic.php?f=25&t=3634

Grub2config は一部の puppy には最初から搭載されています。追加インストールして使うこともできます。
windows や puppy を自動検出してブートローダを構成してくれます。

Re: Win10とのデュアルブート

Posted: 23/11/12(日) 18:39
by yuknak
thinkpadnerdさん、いつもありがとうございます。
>FAQ のコーナーは、本当は質問をする場所ではないです。
失礼しました。
初心者は卒業した・・・と思ったわけではありませんが
どこの板がいいのか?とあちこち探しているうちに、つい
FAQのところで投稿してしまいました。
お手数ですが問題あれば適切な板に移動下さい<管理者の方
さて、私の質問の仕方が少し分かりづらかったと思いますが、
>Puppyを Windowsのブートローダー(BCD)からWindowsと
デュアルブートで 使いたいと色々調べてみました。
の主旨は
画像
から起動できないか?ということでした。
教えていただいた Grub2configを使う方法は、何となくできそうな
イメージが有りましたが、今回やってみてやはり
画像
が立ち上がりました。
機能的には変わりませんし、単なる個人的興味でしかありませんが
Windows側から起動できないのか?と思ったものですから質問してみました。
ubunts等に関する記事ではできそうな気がして試行錯誤したのですが
やはり無理なんでしょうか?
>デュアルブートを構成するのなら、専用のツールに任せたほうが安心だと思います。
easyBCDはちょっとだけ試しましたが、Puppyがリストされず
Puppyに関しては情報もなかったもので諦めました。

Re: Win10とのデュアルブート

Posted: 23/11/12(日) 21:15
by thinkpadnerd
FAQ の意味は frequently asked questions (よくある質問) なので、予め Q & A を書いておく場所です。実際には、ここに質問のためのスレッドが立てられることが多いのですが... :?
高度な質問ということなら、「ユーザの話し合い」あたりでしょうか。

すでに参照されたかどうか分かりませんが、以下のような記事がありました。

ブートローダーはWindows Boot Managerのまま、WindowsとLinuxでデュアルブート
https://w.atwiki.jp/linuxjapanwiki/pages/116.html

上記の記事には、「休止状態」に関する記述がありますが、基本的には、Linux を使う場合は「休止状態」は使うべきではないと考えています。(「高速スタートアップ」も仕組みは「休止状態」と同じなのでオフにしておくのが吉)
yuknak さんが書きました: 23/11/12(日) 18:39 Windows側から起動できないのか?と思ったものですから質問してみました。
趣旨は分かります。私は legacy bios のマシンで windows 8.1 の boot manager から grub4dos を呼び出して使っていたことがあります。しかし、uefi のマシンでは試したことがありません。
windows はほとんど使いませんが、失敗して windows が起動不能な状態に陥るのは好ましくないので...

実践された方が投稿してくれるといいですね。 :)

追記
ディスクはすべてGPTフォーマットと書かれていたと思いますが、GPT と MBR は互換性がないのでは?

Re: Win10とのデュアルブート

Posted: 23/11/12(日) 23:26
by yuknak
thinkpadnerdさん
いつも素早いご回答恐れ入ります。
ご案内のURLは一応見ておりました。
その中で、一旦先頭パーティション(Fat32)に Grub2をインストールして、
その Grubが 第2パーティションの Puppyを起動する状態にして
その先頭パーティションの ddイメージを Windowsの C:\直下にコピーして・・・
という方法も試しましたが、Puppyを選択しても起動しませんでした。
(Error 0Xc000007b とか 0Xc000000f が返されました)
多くのケースが NotePCの例で(しかも Puppy以外の Linux)
Windwosと物理的な同一 ディスクに Puppyをインストールしていると思われ
実は私も、一旦 Windows側の SSDの第1パーティションの ddイメージを保存してから
そこに Grub2をクリーンインストールして、その ddイメージを使っても
試しましたが結果は 残念ながら同じでした。
私の手順のどこかに間違いがあるのではと思いますが、
悲しいかな Linuxの知識不足で原因追究に至っていません。
ただ、今回ご案内先の URLページにコメント機能があるのに気づいたので
そちらにも質問してみたいと思います。
いずれにしても成功したら 結果は書き込ませていただきます。
ありがとうございました。

Re: Win10とのデュアルブート

Posted: 23/11/13(月) 12:13
by thinkpadnerd
まず、grub4dos は GPT に対応していないので、これは選択肢から外れます。

参照先の記事では、「MBRを取得する」と言っていますが、私の理解では GPT と MBR は相容れないものではないかと思います。
不可解なのは、UEFI の場合は grub2 を使うと言っておきながら、添えられた GParted の図というか、画面を見ると、legacy bios マシンの構成になっていることです。
そして、筆者さんが参考にしたという、nyacom.net の記事を見ても、GParted の画面は legacy bios マシンの構成です。これでは全く説得力がありません。

そういうわけで、私は上記の記事を鵜呑みにはできないと考えています。この辺、もっと詳しく知っている方がいらっしゃいましたら、教えていただきたいと思います。

Re: Win10とのデュアルブート

Posted: 23/11/14(火) 12:24
by thinkpadnerd
yuknak さんが書きました: 23/11/12(日) 23:26 参照先の記事では、「MBRを取得する」と言っていますが、私の理解では GPT と MBR は相容れないものではないかと思います。
不可解なのは、UEFI の場合は grub2 を使うと言っておきながら、添えられた GParted の図というか、画面を見ると、legacy bios マシンの構成になっていることです。
そして、筆者さんが参考にしたという、nyacom.net の記事を見ても、GParted の画面は legacy bios マシンの構成です。これでは全く説得力がありません。
MBR のディスクなら可能なのかもしれません。しかし、UEFI のシステムは GPT のディスクを前提にしているので、UEFI のシステムではうまくいかないのではないでしょうか。

GPT のディスクの最初のセクタをコピーしても、そこにはパーティション情報は格納されていないと思います。その解釈は間違っているよ、という場合は、どなたでも結構ですのでコメントいただければと思います。

Re: Win10とのデュアルブート

Posted: 23/11/14(火) 13:40
by yuknak
参照先の記事では、「MBRを取得する」と言っていますが、私の理解では GPT と MBR は相容れないものではないかと思います。
当該ページの筆者さんは下記部分を読むと
>そのパーティションのMBRを取得します。
>・・・・・
>dd if=/dev/sda4 of=grub.dd bs=512 count=1
とあり「MBR」=Master Boot Record =HDDの先頭領域 ではなくて、単に パーティションの先頭領域のことだと
理解していました。
しかし正直に言って 私は Linux/Grub に無知で、ブートローダーインストールパーティションの先頭領域のコピーを
C:\ ドライブ直下に置いて Windows側の bootmgr に指示すると、なぜ Linuxが起動するのか? 分かりません。
若かりし頃(歳がバレますね!)、Windows2k/Xp に何度も余分な操作をしてしまい、MBRシステムについては
泣く泣く表面的に勉強しましたが、UEFIは最初から勉強しなおさないと・・・と感じています。
さらに Linux も となると絶望的ですが、せめて処理が vmlinuz? に渡されるまでのブートプロセス
(Grubのパーティションを見ると、grldr 以外に grubx64.efi /mmx64.efi/bootx64.efi などが見えますが)
に関する<やさしい>説明資料があればなぁ〜と思い始めました。

Re: Win10とのデュアルブート

Posted: 23/11/14(火) 15:02
by thinkpadnerd
legacy bios マシンの起動プロセスは
MBRを読む→boot フラグの付いたパーティションのPBRを読む→OSを起動
という順番だと思われます。

私はなぜパーティションの先頭にMBRがあるのだろう、と考えていました。
おそらく参照記事の言葉の使い方が間違っています。「PBRを取得する」が正しいと思います。

しかし、GPT のディスクはディスク管理の方法が異なるので、パーティションの先頭のセクタをコピーしてもうまくいかないのではないかと思います。

2番目以降のディスクが MBR フォーマットのディスクだったら、MBR も PBR も存在するはずなので、ひょっとしたら、と思いますが、自分の環境では試すことができません。仮に試すとしてもリスクが伴うことなので躊躇します。
yuknak さんが書きました: 23/11/14(火) 13:40 Grubのパーティションを見ると、grldr 以外に grubx64.efi /mmx64.efi/bootx64.efi などが見えますが
拡張子 efi のファイルは UEFI システム用のブートローダです。grubx64.efi 以外にあるのは、ブートローダが消されたり壊れたりした場合の予備? 実はよく分かりません。 :)

Re: Win10とのデュアルブート

Posted: 23/11/14(火) 19:45
by きりん
横から、すみません。
3番目のポスト内容から推察して、
元々の Windows のローダーから、puppy のローダー選択を経由操作せずに puppy を起動出来ないか?
と捉えました。

もし、そうであるなら、grub.cfg の記述で、"menuentry" 内のブロックを直接実行出来るように指定することで、目的が達成出来ませんか?

実際の実験は行っていませんが、アイディアです・・・。

Re: Win10とのデュアルブート

Posted: 23/11/14(火) 23:34
by yuknak
thinkpadnerd さん、きりんさん
コメントありがとうございます。
元々の Windows のローダーから、puppy のローダー選択を経由操作せずに puppy を起動出来ないか?
実は最初の頃、私もそう思い bcdに直に grldr などのデバイス+pathを登録してみました。
しかし、私の知識不足か 同じようなエラーで起動できませんでした。
また、どこかで読んだ情報では Windows10の UEFIブートプロセスは
Windows以外の UEFIを無視してしまう・・・・(正確な表現は忘れました)
だから PBRの ddイメージのコピーで「騙す」というような記述を見て諦めました。
いずれにしろ Linuxのブートプロセスが分かっていないものにはハードルが高すぎるようです。
せめてブートログがとれれば・・・(ため息)
「ジタバタせずに、技術的興味は捨てて、HDD切替器(電源切り替えスイッチ)にしろ」という
悪魔の囁きが聞こえはじめました。

Re: Win10とのデュアルブート

Posted: 23/11/15(水) 20:23
by きりん
既に酔っ払いモードsなっているので、正確性に欠けますがポストします。
再インストールの覚悟が必要です。

1.まず、Windows上で、ディスクの利用方法を確認します。"ディスクの管理"からかな?
(ポイント)
・各パーティションの並びと容量
・そのパーティションのフォーマット
・windows上でのドライブ割付状態

2.USBメモリーからPuppyさんを起動。windowsから見えない起動パーテイションもドライブとして認識されているはず。
・ここのファイルリストを取ってみる。→windowsのローダーが何か確認出るはず。

3.USBメモリー上からPuppyさんのローダーを確認。多分、/BOOT とか /EFI がポイント

4.Puppy 上から、内蔵ドライブのローダーのあるパーティションに、USBメモリーにあるローダー関係のファイルをコピーする。
・grub.cfg のドライブ指定等を実際の配置に修正しておく。

5.(いったんシャットダウン後)再起動し、[ESC]連打などでBIOSの起動メニューに入る。
・確か、"Bootエントリー指定"のような項目があったような・・・。ここで、Puppyさんのローダーを追加指定する。

6.(いったんシャットダウン後)再起動し、[ESC]連打などでBIOSの起動メニューに入る。
・boot指定で、windows または puppy のローダーを指定する。

の流れでは目的にかなわないでしょうか?

個人的には、windowsのローダーに手を加えることはお勧めしません。アップデート後の再起動で混乱することがあるので。

Re: Win10とのデュアルブート

Posted: 23/11/18(土) 14:37
by yuknak
きりんさん  何度も恐れ入ります。
きりん さんが書きました: 23/11/15(水) 20:23 既に酔っ払いモードsなっているので、正確性に欠けますがポストします。
再インストールの覚悟が必要です。
・・・・・・・
の流れでは目的にかなわないでしょうか?

個人的には、windowsのローダーに手を加えることはお勧めしません。アップデート後の再起動で混乱することがあるので。
どんな状況でもコメントいただければ感謝です。
1〜6 の手順は何度繰り返したことか!
Puppy 再インストールももう20回くらい(Puppyは軽いので助かります)
Windows EFI パーティションのリカバリーも数回。怖いものはありません(強がり!)
ただ、最初に説明を省きましたが 実は私の特殊な環境で デスクトップ機 2台を、
1つのモニター、K/B、マウスで使っており、モニターは自動で切り替わりますが、
K/B・マウスは USB切替器で手動切り替えしています。
Puppyをインストールしようとしているのはサブ機のほうで、USB切替器が電源投入時は
メイン機側になっており、気づかずに UEFI設定画面を表示させようとして「Del」キーを
押しても反応しません。
慌てて少し奥まった所にある 切替器に手を伸ばしているうちに デフォルトのWindowsが立ち上がる・・・
ということが多く、ストレスです。
もちろん、待ち時間を伸ばしたり、デフォルトを変えればある程度改善されるのでしょうが
「思いついたら試さずにはいられない」困った性格が災いしています。
とはいえ、インストールするのが目的ではなく 永続的に使える O/S環境を構築するのが
最終目的ですので 当面 Grub2をデフォルトの設定にして使っていこうと思います。
万が一 Win Updateで書き換わったらパーティションのリカバリーで凌ぎます。
皆様 いろいろ情報をありがとうございました。
今後何か思いついて、Windows bootmgr 側からのデュアルブートに成功したら
結果をご報告させていただきます。