ブラウザの JavaScript がオフ(ブロックまたは許可しない)に設定されているため、このページは正常に機能しません。
disklessfun’s Wiki*
[
ホーム
]
一覧
最終更新
バックアップ
ヘルプ
Top
>
multipleboot
>
複製
?
ms
multipleboot をテンプレートにして作成
これらのキーワードがハイライトされています:
開始行:
&color(Blue){(2015-8-2)内容に変更はありませんが、ここに冒頭コメントを記述しておきます。&br;このページの内容はWindows 10 時代でも64bit、32bitを問わず、一応(その理由は後述)問題なく通用します。実際既に私は複数のPCでこのページのやり方を用いた、
(2013-2-6)ページ末尾にWindows 8に関する記述があります。
RIGHT:[[translate to English:http://translate.google.com/translate?u=http%3A%2F%2Fwikiwiki.jp%2Fdisklessfun%2F%3Fmultipleboot&langpair=ja%7Cen&hl=en&ie=UTF-8&oe=UTF-8&prev=%2Flanguage_tools]]
LEFT:
TITLE:Tips: マルチブートするなら2段階ブート方式に統一しよう
&size(17){Linuxのデフォルトのブート環境の問題点を解消しよう(各OSのブート環境は独立させよう)};
&size(13){※Linuxインストール後に二段階ブートに変更する場合に必須となる''「grubのPBRへのセットアップ」''のやり方は[[&size(13){%%%''こちら''%%%(grub2_and_grub1)};>grub2_and_grub1]]に掲載しています。};
RIGHT:初出 2007-1-13
RIGHT:最終更新 2010-8-23
LEFT:
//&color(Red){(2010-5-16)grubのページに[[&color(Red){%%%Ubuntu 9.10以降のインストーラのマルチブートに関するバグレポート%%%};>grub2_and_grub1#ubuntu-installer-tips]]をアップしました。Ubuntuを含めたマルチブート環境を構築する際は是非お読み下さ
&color(Red){(2010-5-16)grubのページに、Ubuntu系でインストール後にgrub2をMBRからPBRにセットアップし直した方への[[&color(Red){%%%重要な注意点%%%};>grub2_and_grub1#additional_work]]をアップしました。};
&aname(multiboot_techniques);
(2009-12-8)ページ作成後3年も経った今頃?という感もしますが、いくつかのマルチブートの手法を解説した図を作成してみました。
クリックすると大きな画像で見ることができます。また''PDF版:''&ref(multiboot_techniques.pdf,nolink);もどうぞ
[[&ref(multiboot_techniques_s.png);:http://wikiwiki.jp/disklessfun/?plugin=attach&pcmd=open&file=multiboot_techniques.png&refer=multipleboot]]
ダウンロード &ref(multiboot_techniques.xls,nolink); この図の出力元となったファイルです。良ければご自由に利用して下さい。
&color(Blue){(2010-3-7追記)上記資料中のWindows 7は、Windows 7のインストールより前に手動でパーティションを作成しておくことにより、Windows 7固有の100Mバイトのブートパーティションを作成しない形式をとっています。BitLockerを使用する予定がないの
''当サイトには本ページを補足するページ群があります''。←全部合わせてセットとなっています。
''深く関連''[[%%%mbm%%%>mbm]],[[%%%grub2_and_grub1%%%>grub2_and_grub1]],[[%%%hduse%%%>hduse]],[[%%%fixpbr%%%>fixpbr]],''少し弱く関連''[[%%%ntfsbkup%%%>ntfsbkup]],[[%%%linuxbkup%%%>linuxbkup]],[[%%%minimum-ubuntu%%%>minimum-ubuntu]],[[%%%utl
&aname(mbm_screen);
(2010-8-23)参考として私のMBMの画面を掲載しておきます。&size(11){MBMはチェーンロードするだけなのでどのWindowsでもどのLinuxでも起動できます。その他のOSも可です。};
[[&ref(multipleboot_5_s.jpg);:http://wikiwiki.jp/disklessfun/?plugin=attach&pcmd=open&file=multipleboot_5_b.jpg&refer=multipleboot]]
&size(9){(Windows 7,XP 2つ,Ubuntu,CentOS,openSUSEのマルチブートです。拡張領域にはいろんなLinuxをまだまだ追加できます。同一のOSを複数入れたり、バージョン違いを並べることも自由自在です。このようなことの実践時には特にこの2つのページ([[''%%%gr
#br
(2009-6-6 更新)
&size(14){このページは当初技術系で興味のある人にだけ理解してもらえばいいと思って書いたのであまり読みやすい状態になっていません。しかし実際には初心者に近い方のアクセスも多く、以前から「もっとわかりやすく書き直したいな」と思いながら実行できて
[[&ref(multipleboot_1_s.png,nolink);:http://nishiko.s16.xrea.com/]][[&ref(multipleboot_2_s.png,nolink);:http://street-green.seesaa.net/article/110348789.html]][[&ref(multipleboot_3_s.png,nolink);:http://ameblo.jp/magi-alphard/entry-10256936
[[&size(9){%%%マルチブート時のブートローダの選択について%%%};:http://nishiko.s16.xrea.com/]][[&size(9){%%%路地裏緑書: MBMによる「2段階ブート」の実践・・%%%};:http://street-green.seesaa.net/article/110348789.html]][[&size(9){%%%マルチブート
&size(9){(2010-8-23)新たにこちらもどうぞ};[[&ref(multipleboot_4_s.png,nolink);:http://d.hatena.ne.jp/den8/20100605/1275709966]]
[[&size(9){%%%Windows/Linux混在環境での二段階ブートの確立方法 - den8の日記%%%};:http://d.hatena.ne.jp/den8/20100605/1275709966]]
#br
自分でも手短に、これが本ページの''"意訳"''かな?と思うことを追記しておきます。
「[[%%%MBM%%%>mbm]]や類似のブートローダをMBRにいつでもインストール出来る手段を用意しておきましょう。その上で2段階ブートに統一すれば、''"どんな順番でどのOSをインストールしても"''マルチブートが実現できます。再インストールの順番も自由です。マ
(2009-5-4追記)いま世間で一般的なマルチブートの方法は、日頃から頻繁にマルチブートしている立場からみると不便極まりないです。一般的なgrubの使われ方はおかしいと感じます。またWindows同士のマルチブートの方法に関してもgrubと同様によろしくない方法
----
#br
2007年現在、各Linuxディストリビュータからリリースされている一般的なLinuxの標準的なブート方式は、''他のOS(Windows、Solaris、FreeBSD)のそれと比べると特異''とも言えます。現在のLinuxの標準的なインストーラが構築するデフォルトのブート環境は1段
#br
現行LinuxのPC用各ディストリビューションは標準でマルチブート対応のブートローダであるgrubを採用しており、その点ではLinuxとLinux、あるいはLinuxとWindows等のマルチブート環境構築への敷居は一見低そうに見えます。しかし、Linux標準の1段階ブート方式
本ページではLinuxにおいても他のOSと同様なブート方式の環境を構築し、非常に柔軟性の高いマルチブート環境を実現する手法を紹介します。
#br
「%%%マルチブート環境を構築する際はOSのインストール順が大切%%%」などと巷で言われる原因の99.9%は、
+Linuxがデフォルトで1段階ブートを採用していること
+Windowsのインストーラが問答無用で機能の劣る(マルチブートに対応していない)ブートローダをMBRにインストールすること
の2つにあると言えるでしょう。この2つが組み合わさることの多いことが解決を困難にしています。
実は1の問題を解消すれば2の問題も[[%%%MBM%%%>mbm]]等の高機能なブートローダをインストールすることで解消できます。
このページを読んで2段階ブートに統一すれば「WindowsとLinux」, 「Windows複数」, 「Linux複数」あるいはその組み合わせや、Solaris, FreeBSD等との組み合わせも簡単に構築でき、構成の変更も自由だということを理解しましょう。
#br
&size(11){マルチブートはディスクレスOSよりも私の得意な分野です([[※2>#Notes2]])。しかし、当サイト開設以来今まではマルチブートに関する記述をおこないませんでした。マルチブートの成功には基礎知識が重要だと私は思うのですが、既にネット上に基礎知
&size(10){&color(Blue){本ページでCD,DVDのマルチブートは扱いません。それらはカーネルの切替に過ぎません。[[&color(Blue){isolinux,isolinux+memdisk};:http://syslinux.zytor.com/iso.php]],grub,CDShellなんかを使って実現しちゃって下さい。Linuxのイ
#br
&size(14){&color(Red){(2010-01-22追記)[[&color(Red){''%%%下の追記%%%''};>#addition-2009-12-15]]はあくまでも''「''Vista以降を含む&size(19){''複数のWindows''};をマルチブートする場合''」''&size(19){''のみ''};に影響する話です。};};
長い説明が絡み合った文なので元々知識のある方でないと正確に理解するのは難しいと思います。
''ちょうどうまい具合に''[[''誤解した例'':http://q.hatena.ne.jp/1264000398#a984317]]が見つかりましたので、これを題材にしてどこが誤解しやすいかを示したいと思います。
[[''%%%このはてなの回答%%%'':http://q.hatena.ne.jp/1264000398#a984317]]には、私の文に対する二つの誤解があります。
''【一つ目の誤解】''
-そもそも[[''%%%この質問%%%'':http://q.hatena.ne.jp/1264000398]]の環境は条件に当てはまらないので[[''%%%下の追記%%%''>#addition-2009-12-15]]とは関係ありません。殆どの方には言うまでもないと思いますが、[[%%%この質問%%%:http://q.hatena.ne.jp/12
''【二つ目の誤解】''
-[[''%%%下の追記%%%''>#addition-2009-12-15]]''は、条件にあてはまる環境ではMBMを使わないことを薦めるという意味ではありません。''たとえVista以降を含む複数のWindowsをマルチブートする場合でも、他にLinuxやFreeBSDやSolarisをインストールした場合は
&aname(addition-2009-12-15);
|BGCOLOR(lightgoldenrodyellow):|c
|COLOR(BLUE):&color(Red){&size(16){''(2009-12-15)重要な追記''};};&br;&br;&size(16){''【「(Vista以降を一つ以上含んだ)Windows OS&size(18){複数};+他OS」のマルチブート環境の場合は純粋な二段階ブートではなく、「MBM等によるマルチブートとBootManage
↑(2010-3-7追記)''この文章は''人様に対して情報を提供する立場として''少々保守的な味付けで書いたものです''。実際には複数のVista以降のOSを含むマルチブート環境であっても、[[%%%''この記事''%%%>hduse#windows-multipleboot]]のような既存環境のコピー
#br
#contents
* 1. 2段階ブート方式のすすめ(頻繁にOSを入れ替える人向けのマルチブート手法) [#f307dbed]
** 1-1. 理解する為に必要な知識(各OSのブートの方式) [#a76f4850]
マルチブート手法の紹介の前に各OSのブート方式を簡単な言葉で説明させて下さい。
COLOR(RED):&size(11){(2007-7-18)赤文字の説明を追加しました。};
-DOSおよびWindows全て(Vistaや7も含む)&br;
MBRのブートローダ → PBRのブートローダ → パーティション内のプログラム
COLOR(RED):&size(10){ (多くの人が半ば無意識};
COLOR(RED):&size(10){ のうちに使用している。};
COLOR(RED):&size(10){ インタラクティブな選択};
COLOR(RED):&size(10){ 機能はない。};
COLOR(RED):&size(10){ [[後述>#para1-4-2]]のように他の種々の};
COLOR(RED):&size(10){ ブートローダで代替可(常にバックアップなしに上書き可))};
-FreeBSD&br;
MBRのブートローダ → PBRのブートローダ → パーティション内のプログラム
COLOR(RED):&size(10){ (インストールを選んだ};
COLOR(RED):&size(10){ 場合にインストールさ};
COLOR(RED):&size(10){ れるのは、FreeBSD};
COLOR(RED):&size(10){ 独自のマルチブート対};
COLOR(RED):&size(10){ 応ブートローダ。};
COLOR(RED):&size(10){ [[後述>#para1-4-2]]のように他の種々の};
COLOR(RED):&size(10){ ブートローダで代替可(常にバックアップなしに上書き可))};
-Solaris x86(Solaris 10 1/06(=update1)以降)&br;
MBRのブートローダ → PBRのブートローダ → パーティション内のプログラム
COLOR(RED):&size(10){ (自動的にインストール (専用の)grub};
COLOR(RED):&size(10){ されるのは、Solaris};
COLOR(RED):&size(10){ 独自のブートローダ。};
COLOR(RED):&size(10){ grubがマルチブートに};
COLOR(RED):&size(10){ 対応しているので、};
COLOR(RED):&size(10){ 以前はあった、インタ};
COLOR(RED):&size(10){ ラクティブな選択機能};
COLOR(RED):&size(10){ は省かれた。};
COLOR(RED):&size(10){ [[後述>#para1-4-2]]のように他の種々の};
COLOR(RED):&size(10){ ブートローダで代替可(常にバックアップなしに上書き可))};
-Linux(SUSE、openSUSE)&color(Red){2010-5-4:今までは注釈内でLinuxの例外としての記述でしたがきちんと項目として挙げる必要があると思い、ここに追記しました。};&br;
MBRのブートローダ → PBRのブートローダ → パーティション内のプログラム
COLOR(RED):&size(10){ (自動的にインストール grub};
COLOR(RED):&size(10){ されるのは、Windowsの};
COLOR(RED):&size(10){ MBR互換のブートローダ。};
COLOR(RED):&size(10){ [[後述>#para1-4-2]]のように他の種々の};
COLOR(RED):&size(10){ ブートローダで代替可(常にバックアップなしに上書き可))};
ユーザが普段意識することはないのですが、上に挙げたOSは全て、MBRのブートローダとPBRのブートローダが数珠繋ぎに呼び出されて最終的にOSが起動する形式をとっています([[※4>#Notes4]])。このブート方式を「2段階ブート」と表記することにします。;
&color(Blue){(2010-5-4追記)上に挙げた2段階ブートの環境が''そのままの状態''でベストな完成形というわけではありません。しかし2段階ブートに統一すると、''MBRに''[[&color(Blue){MBM};>mbm]]等の''高機能なブートマネージャーをインストールすることが
-Linux(SUSEを除く)
1段階ブート(← 標準的なLinuxのデフォルト)&br;
MBRのブートローダ → パーティション内のプログラム
COLOR(RED):&size(10){ (インストーラによって Linuxカーネル};
COLOR(RED):&size(10){ インストールされるのは};
COLOR(RED):&size(10){ grub。grub以外にも};
COLOR(RED):&size(10){ いくつか選択肢がある。};
COLOR(RED):&size(10){ 但しこの状態では安易};
COLOR(RED):&size(10){ に上書きは出来ない)};
もしくは
2段階ブート(← オプションで選択可能)&br;
MBRのブートローダ → PBRのブートローダ → パーティション内のプログラム
COLOR(RED):&size(10){ (先にブートローダが (インストーラによって};
COLOR(RED):&size(10){ インストールされていな インストールされるのは};
COLOR(RED):&size(10){ ければ、 必ずユーザが grub。変更すべきではない)};
COLOR(RED):&size(10){ インストールしなければ};
COLOR(RED):&size(10){ ならない。};
COLOR(RED):&size(10){ [[後述>#para1-4-2]]のように種々の};
COLOR(RED):&size(10){ ブートローダを使用できる。};
COLOR(RED):&size(10){ そのブートローダは、};
COLOR(RED):&size(10){ 常にバックアップなしに上書き可};
からユーザが選択
COLOR(RED):(2008-2-11追記) 要は2段階ブートの場合、%%%MBRのブートローダをいつでもバックアップなしに上書き可能%%%だというのが最大のポイントです。
COLOR(RED):[[&color(Red){ここ};>mbm]]でも触れているように、MBRのブートローダは意図せず上書きされてしまうことがありますが、2段階ブートにしておけば、%%%そうなっても平気%%%だということです。
&aname(para1-2);
** 1-2. 現在のLinux標準の1段階ブート方式を採用した場合の欠点 [#lafe7905]
前項を一見するとわかるようにLinuxだけ他と違って、デフォルトのブート方式が1段階ブートです。
#br
これは1段階ブート方式でマルチブートする場合の典型的なgrub設定ファイルの例ですが、
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
title Fedora Core (2.6.18-1.2849.fc6)
root (hd0,1)
kernel /boot/vmlinuz-2.6.18-1.2849.fc6 ro root=/dev/hda2 rhgb quiet
initrd /boot/initrd-2.6.18-1.2849.fc6.img
title Debian GNU/Linux, kernel 2.6.17-2-686
root (hd0,2)
kernel /boot/vmlinuz-2.6.17-2-686 root=/dev/hda3 ro
initrd /boot/initrd.img-2.6.17-2-686
title Microsoft Windows XP Professional
root (hd0,0)
makeactive
chainloader +1
前述のとおり1段階ブート方式には''「各OSのブート環境が独立しない」''という大きな欠点があり、この例の場合、
-''/dev/hda2を使用しているFedora Coreを削除するとDebianやWindows XPもブートできなくなってしまいます。''
-''Debianのカーネルをアップデートした場合、手動でこのファイルを修正する必要があります。''
-''/dev/hda1を使用しているWindows XP上の「ディスクの管理」でFedoraのパーティションを削除すると(次回起動時から)Windows XPが起動しなくなります。もちろんDebianも起動しなくなります。''
|BGCOLOR(lightgoldenrodyellow):|c
|COLOR(BLUE):全ての人には通じない喩えですが、プログラミングで「グローバル変数は使っては駄目!」とか、「オブジェクト指向が優れている」とか、言いますよね&br;Linuxデフォルトのブート手法をプログラミングに喩えて言うなれば、この「グローバル変数を
&aname(para1-3);
** 1-3. 各OSのブートの方式を2段階ブートに揃えた場合のメリット [#t38ce674]
前項の欠点を解消する為にLinuxでも
MBRのブートローダ → PBRのブートローダ → パーティション内のプログラム
の2段階ブート方式を選択することにしましょう。具体的にはLinuxインストーラのブートローダに関する設定インターフェースで''&size(20){「高度なオプション」};等を選んだり''、''&size(20){「拡張」ボタン};を押すなどして''grubのインストール先を問われ
|BGCOLOR(antiquewhite):|c
|初心者の方向けのアドバイスをしておきます。↑このブートローダのインストール形式に限らず、マルチブート環境の構築を念頭においてLinuxをインストールする際には、''%%%とにかくカスタマイズ%%%しようとする(or%%%オプションダイアログを表示してみる%%%)'
#br
マルチブートするOS''全て''を2段階ブート方式に統一すれば、MBRのブートローダは''「各パーティションのPBRのブートローダ([[※6>#Notes6]])をコールする」''役割だけをこなせば済むことになります。
#br
つまり、このようになります。
|BGCOLOR(lightgoldenrodyellow):|c
|COLOR(BLUE):2段階ブート方式に統一 = 各OS固有のブート環境が独立する|
#br
&color(olive){これによって[[&color(olive){1-2};>#para1-2]]で挙げた欠点が解消されます。以下にさらに詳しく2段階ブートに統一することによる特徴を挙げます。};
|&color(olive){2段階ブート方式に統一した場合の特徴};|
|COLOR(olive):|COLOR(olive):|COLOR(olive):|c
||CENTER:特徴|CENTER:説明|h
|1|各OSは自由にアップデート等がおこなえ、またその際にマルチブート環境であることによる余分な作業が発生しない|[[1-2>#para1-2]]で挙げたようなカーネルアップデート時の問題は発生しない|
|2|パーティションの大きさをどんなに変更しても、MBRのブートローダ(マルチブート用のブートローダ)及び直接関係のないOSは影響を受けない|MBRのブートローダは、ユーザの指定したパーテョションの番号をキーにして、起動される度にパーティションテーブルを
|3|パーティションを一旦削除した上で確保し直したり、パーティションの数を変更しても、MBRのブートローダ(マルチブート用のブートローダ)及び直接関係のないOSは影響を受けない|基本的には2と同様に影響は受けないのだが、パーティション数まで変更した場合
|4|MBRのブートローダを世界中の様々なブートローダに交換できる|別の言い方をすれば、MBRのブートローダが別の種類のもので上書きされても、それがマルチブートに対応していれば問題が生じない(SolarisとかFreeBSDのインストール後に既にこのような経験をさ
|5|全く別の種類のOSにインストールし直した場合でも、MBRのブートローダ(マルチブート用のブートローダ)は変更せずにブートできる|但しMBRのブートローダとしてgrubを使用した場合は、事前に設定変更をおこっていなかったからといってブートできないわけでは
&color(olive){※ MBRのブートローダとしてgrubを使用する場合は[[&color(olive){後述};>#para1-4-1]]の注意が必要です。};
** 1-4. 2段階ブートの設定の実際 [#p68ebdff]
上記1-3を実践するだけです。
現在のLinuxデフォルトの違いをまとめます。
-MBRのブートローダ
--MBRには「MBR用のブートローダ」をOSのインストーラに頼らずに自前でインストールする。grubも技術的には使用可能だと言えるが、この用途にgrubは非常に不向き。設定用のパーティションが不要で論理領域のOSもブート可能な[[MBM>#para1-4-2]]の採用を強く推
--「MBR用のブートローダ」として[[MBM>#para1-4-2]]のような適切なブートローダを採用した場合には、そのインストールはLinuxのインストール前・インストール後のみならず、あらゆるOSのインストール前・インストール後の%%%何時いかなる時期に何度おこなっ
-PBRのブートローダ
--各Linuxインストール時には、grubブートローダのインストール先としてMBRではなくPBR(基本的にはそのOSのシステムパーティションの先頭セクタ)を選ぶ。[[1-3>#para1-3]]と([[※9>#Notes9]])を参照して下さい。
#br
※少し不親切ですが、詳細な手順(作業の順番)までは記述しません。手順は人それぞれだからです。実際の作業では、Linuxインストール時にインストーラによってMBRにgrubをインストールして''一旦は1段階ブート方式の環境を構築し、後から2段階ブート方式に変
#br
|BGCOLOR(lightgoldenrodyellow):|c
|COLOR(BLUE):&size(18){''既存の1段階ブートのLinux環境の2段階ブートへの変更(※)''は、[[&color(Red){%%%このような作業%%%};>grub2_and_grub1#dual-stages-type]]の後に、[[&color(Red){%%%このパッケージを使用%%%};>mbm#inst-pack]]すればLinux上だけ
-2段階ブート環境構築の代表的な例(以下の例について、ここには詳しい説明は載せていません)
--先にWindowsだけがインストールされている環境に何らかの方法でLinux用のパーティションを確保し(元々の空きパーティションを利用する,新たなハードディスクを用意する,Windowsパーティションを狭める,等で)、Linuxを1段階ブート方式でインストールし、
--まっさらのハードディスクに、最初からマルチブートに適したパーティション群を確保し、Windowsをインストールし、[[MBM等>mbm]]をインストールし、Linuxを最初から2段階ブート方式でインストールする。
--まっさらのハードディスクに、最初からマルチブートに適したパーティション群を確保し、Linuxを1段階ブート方式でインストールし、2段階ブート方式に変更し([[MBM等>mbm]]をインストールし)、Windowsをインストールし、再度[[MBM等>mbm]]をインストールす
・
・
・
他にも無限にパターンは考えられますが、上記の記述が納得できるまで理解が進んでいれば、
応用も自由自在だと思います。
&aname(para1-4-1);
*** 1-4-1. MBRのブートローダとして、grubを使用する場合(非常に推奨しないけど) [#o80e2213]
&color(Red){この項は技術的な参考として記述しているに過ぎません。通常は、[[&color(Red){次の項};>#para1-4-2]]の方法を使用して下さい。};
2段階ブートに統一すると1段目の(MBRの)ブートローダは各パーティション先頭のPBRをコールするだけなのに、%%%設定ファイルや格納するパーティションが必要なgrubを使用するのは、どう考えてもナンセンスです%%%。MBRは様々なOSによって上書きされやすい場
----
この場合、Linuxを起動する際には''「MBRのgrub」'' → ''「PBRのgrub」''という形で複数のgrubによる”リレー”がおこなわれます。このページに興味を持たれる方ならすぐ理解できると思いますが、様々なOSを起動できるブートローダとしての性格上、grub同士の
#br
grubの設定ファイルやstageファイルを格納するパーティションは何とか適当に確保して下さい。次節「[[リモート環境にあるPCをマルチブートする手法>#Para2]]」の記述を参考にして下さい。
#br
-''MBRのgrub''用設定例1
実際にはこの部分には出来る限り[[MBM>#para1-4-2]]を使用して下さい。&color(Blue){(2010-8-23)[[&color(Blue){%%%MBMでのマルチブート画面%%%};>#mbm_screen]]を追加しました。};
あくまで2段階ブートの場合の「MBRのブートローダ」がどのような仕事をするのかを理解してもらう為にgrubの設定ファイルを用いて示したまでです。
%%%grubのchainloader機能は「ないよりはあった方がマシかな」程度のもので利用は極力避けるべきものです。%%%
%%%[[%%%MBM%%%>mbm]]はchainloaderとして優れた機能・使い勝手を持っています。%%%「餅は餅屋」と言われるようにチェーンロード処理は専門職の[[MBM>#para1-4-2]]に任せましょう。[[%%%MBM%%%>mbm]]は、WindowsがインストールするMicrosoft謹製のMBR用ブート
grubは本職のカーネルローダとして大いに利用して下さい。grubを2段階目のブートローダとして使用すること=grubをカーネルローダとしての役目に専念させることです。
※この例ではLinuxだけ複数ですが、Windows・FreeBSD・Solaris x86も''それぞれを''複数インストール出来ます。(ただしこれらOSは基本的には基本パーティションからしかブートできません。また複数をインストールする為にはちょっとした裏技も必要です)
&aname(solaris-bug);※(2009-3-21追記)Solaris x86のインストーラにはずっと以前から延々と続く欠陥があります。パーティションテーブルのヘッダ(H)の数値が255で1トラックあたりのセクタ(S)の数値が63、つまりH=255,S=63''以外''の場合にSolarisをインスト
&color(Blue){(2009-12-3追記)まだ世間ではWindowsは1台のハードディスクに1つのシステムドライブしか作れないと誤解している人がかなりおられるようです。Windows(7,Vista,XP,2K,NT,Me,98,95,2K3)全て、1台のハーハードディスクにシステムドライブを最大4個
default=0
timeout=3
color cyan/blue white/blue
title Microsoft Windows (95, NT, 98, Me, 2000, XP, 2003, Vista, 2008, 7)
root (hd0,0)
makeactive
chainloader +1
title FreeBSD
root (hd0,1)
chainloader +1
title Solaris 10 x86
root (hd0,2)
chainloader +1
title Linux open SUSE
root (hd0,6)
chainloader +1
title Linux Debian etch
root (hd0,7)
chainloader +1
title Linux Debian lenny
root (hd0,8)
chainloader +1
title Linux Ubuntu
root (hd0,9)
chainloader +1
title Linux Fedora
root (hd0,10)
chainloader +1
title Linux CentOS
root (hd0,11)
chainloader +1
・
・
title Minimum Ubuntu
kernel /vmlinuz
initrd /initrd.img
title Ubuntu Live
kernel /ubuntu/vmlinuz
iso-scan/filename=/UBUNTU/ubuntu-ja-X.XX-desktop-i386.iso (前の行の続き)
file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash (前の行の続き)
tz=Asia/Tokyo utc=no -- (前の行の続き)
initrd /ubuntu/initrd.gz
title KNOPPIX
kernel /KNOPPIX/linux fromhd=/dev/hda10
bootfrom=/dev/hda10/KNOPPIX/knoppix_v5.3.1CD_20080326-20080520-AC.iso (前の行の続き)
lang=ja vga=normal quiet noeject (前の行の続き)
initrd /KNOPPIX/minirt_kai.gz
※直上の2セクションはrescueやユーティリティ用のOneCDLinux。私の場合FAT32かNTFSの
パーティションに余裕があればそこにOne CD Linux(Live Linux)を置いておきます。
ただし、このPCのように他に沢山Linuxが入っている場合は本来必要ありません。
(Ubuntu のLiveについて)
この例のようにisoファイルのまま利用することをお薦めします。
isoファイルは無条件にNTFS上に置いていいのですが、カーネルとイニシャルラムディスク(vmlinuzと
initrd.gz)は、使用するブートローダの対応ファイルシステム上に置く必要があります。
FATの場合、設定ファイルに記述するパスを大文字小文字を逆にして記述する必要が生じる可能性が高いです。
(KNOPIX について)(2009-3-14更新)
私の場合、古いPCにはUbuntuよりKNOPPIXを使うようにしています。
上記バージョンのKNOPPIX上を使用しているのですが、このバージョンはどうもそのままではisoのままで
の利用が出来ないようなので、initrdにすぐ下に掲載の修正パッチを加えて使用しています。このパッチ
ではisoを置いたNTFS等のパーティションをバックアップ先としても使用可能とする為に書き込み可とする
修正もおこなっています。オプションには適宜使用PCに合わせてxmodule=fbdevとかno3dとかを付加して下さい。
ダウンロード &ref(knoppix_v5.3.1CD_20080326-20080520-AC_for_isoboot.patch,nolink);
&size(11){このパッチは本格的なものではなく、自分が使用する為だけに作成した"なんちゃってパッチ"の類です。使用例でオプションが冗長なことからもそれはわかると思います。};
#br
%%注意点はLinuxを起動するセクションにはmakeactiveを記述してはならないことです。%%
COLOR(BLUE):●savedefaultやmakeactiveはgrubのバージョンによっては非対応だったりします。その辺は適宜対応して下さい。これら機能はどちらかというと私はあまり使わないです。
●上のサンプルの最後の2セクションはレスキュー・バックアップ・リストア用のOne CD Linuxをハードディスクに内蔵(常備)しておく手法です。こちらも多少参考になると思います。→[[NTFSのデータ専用ドライブにgrubのstage1,stage2,menu.lst(grubの全て)をイン
#br
こんな風に記述してもいいでしょう。非常に汎用的で、場合によってはずっと変更しないで済みます。
-''MBRのgrub''用設定例2&br;
繰り返しますが、実際にはこの部分には出来る限り[[MBM>#para1-4-2]]を使用して下さい。
%%%grubのchainloader機能は「ないよりはあった方がマシかな」程度のもので利用は極力避けるべきものです。%%%
%%%[[%%%MBM%%%>mbm]]はchainloaderとして優れた機能・使い勝手を持っています。%%%「餅は餅屋」と言われるようにチェーンロード処理は専門職の[[MBM>#para1-4-2]]に任せましょう。[[%%%MBM%%%>mbm]]は、WindowsがインストールするMicrosoft謹製のMBR用ブート
grubは本職のカーネルローダとして大いに利用して下さい。grubを2段階目のブートローダとして使用すること=grubをカーネルローダとしての役目に専念させることです。
default=0
timeout=3
color cyan/blue white/blue
title OS(Partition 1)
root (hd0,0)
chainloader +1
title OS(Partition 2)
root (hd0,1)
chainloader +1
title OS(Partition 3)
root (hd0,2)
chainloader +1
title OS(Partition 4)
root (hd0,3)
chainloader +1
title OS(Partition 5)
root (hd0,4)
chainloader +1
title OS(Partition 6)
root (hd0,5)
chainloader +1
・
・
makeactive行が全くありませんが、Windowsを一つだけしかインストールしていない場合は、そのパーティションを元々(そして常に)アクティブにしておけば問題はありません([[※7>#Notes7]])。
#br
-''PBRのgrub''用設定例
各ディストリのユーティリティが作成した''そのままを使用すれば良い''ので省略します。
&aname(para1-4-2);
*** 1-4-2. MBRのブートローダとして、MBMを使用する場合(おすすめ) [#yae00b32]
[[&color(Blue){サイト内のMBM特集ページ};>mbm]]
----
2段階ブートに統一されている場合に「MBRのブートローダ」として使用できるブートローダは世界中に沢山ありますが、中には基本パーティションのPBRだけしかブートできないものがあります([[※8>#Notes8]])。Linux等の拡張領域からブート可能なOSを使用する場
あとの説明は、リンクに任せます。
#br
サイト内リンク:[[%%%MBM(ChaNさんの高機能・マルチブート用ブートローダ)をもっと便利に使う情報とツール%%%>mbm]]
有益な情報やツールがダウンロード出来ます。
&aname(id_o7fj2er3);
サイト内リンク:[[%%%Windowsを同一ハードディスク上にコピーしてマルチブートを実現する方法%%%>hduse#windows-multipleboot]]
(2009-7-9追加)
&aname(id_a8e95734);
参考リンク:[[%%%OSのインストール順・再インストールが自由なマルチブートの方法%%%>http://www12.atwiki.jp/linux2ch/pages/24.html#id_a8e95734]]
&size(9){(リンクが切れていたら教えて下さい)};
#br
#br
|BGCOLOR(lightgoldenrodyellow):|c
|COLOR(BLUE):結論として言えば、マルチブートする際にOSを選択するインターフェースとしてのgrubブートローダの使用は非常におすすめしません。つまりgrubのチェーンロード機能は使用すべきではありません。grubはPBRにインストールして、そのパーティション
#br
|BGCOLOR(lightgoldenrodyellow):|c
|COLOR(BLUE):冒頭にも記述しましたが、現在の標準的なLinuxが構築するブート環境は改善したほうが好ましいと思います。他のOSと同様に必ず2段階ブート方式を用いる仕様へと変更して、インストーラは、MBRのブートローダとしてMBMに似たブートローダ、PBRの
&aname(Para2);
* 2.リモート環境にあるPCをマルチブートする手法 [#j66b0168]
ネットワークブートに関しては専用ページ:[[%%%ディスクレス化に関する情報%%%>disklessinfo]]をご覧下さい。
----
ネットワークの向こう側にあるPCをmultibootで使用する手法です。ネットワークブートでのマルチブートと混同しないよう注意して下さい。&size(10){(御存じの方には当り前のことですが、ネットワークブートでのマルチブートは、ブート方式が共通のOS同士では非
基本は前節の手法を使うことにします。
このマルチブート手法に使用可能なブートローダを選択するポイントは以下の1点です。
-マルチブート用ブートローダのコンフィグレーションを事実上どんなOSから書き込めるFAT上に置くことが可能であること
ということで、当然ながら入手性の面からもgrubをマルチブート用のブートローダとして採用することになります。
#br
私はこのような場合、拡張パーティションの中に数十メガバイトの小さなgrub専用のFATパーティション([[※9>#Notes9]])を確保することにしています。
そのパーティションの中はこんな感じです。
grub----
|--fat_stage1_5
|--menu.lst
|--stage1
|--stage2
|--menu.win
|--menu.lin
|--win.bat
|--lin.bat
|--win.sh
|--lin.sh
このgrubをMBRにインストールしてもいいのですが、私ならMBRには[[MBM>mbm]]をインストールして、このgrub(のstage1)はこのパーティションのPBRにインストールします。つまり3段階ブートとなります。MBRのMBMがこのgrubのバックアップのブートローダとなって
#br
menu.win
default=0 # menu.linの場合はdefault=1、リモートでsavedは機能しないので記述しない
timeout=1
color cyan/blue white/blue
title Microsoft Windows XP Professional
root (hd0,0)
makeactive
chainloader +1
title Linux
root (hd0,1)
chainloader +1
ネットワークの向こう側にあるPCのgrubメニューを操作することはできませんから、この例ではgrub設定ファイル中のどのOSを起動するかを指し示すdefault値を変更することによって、起動するOSを切替えています。
#br
※FATパーティションを大きく確保して、その中にレスキュー・レストア用Knoppix等を置いておくのもおすすめです。もちろん、このgrub用設定ファイルにエントリを記述しておきます。各常用OS群から完全に独立しているのでレストア用途にはピッタリです。
#br
win.bat
copy menu.win menu.lst
#br
lin.bat
copy menu.lin menu.lst
#br
win.sh,lin.shはbatファイルからコマンドと改行コードを変えたただけのものです。さらにそのスクリプトを以下のようなスクリプトで呼び出すといいのではないでしょうか? 私はランチャーに登録しています。
#!/bin/sh
if [ "$1" != "-f" ]; then
zenity --question --title="デフォルトブートOSの変更" --text \
"Windowsをデフォルト起動OSにしますか?"
if [ $? = 1 ]; then
exit 1
fi
fi
cd /KYOYU/grub
exec /KYOYU/grub/win.sh
&aname(grub_conf);
|BGCOLOR(lightgoldenrodyellow):|c
|COLOR(BLUE):オリジナルのgrubの設定ファイル名はmenu.lstなのですが、ご存知のようにredhat系では設定ファイル名をgrub.confに変更しています。FATのようにシンボリックリンクのないファイルシステムを使用する場合はこの点を明確に意識しておく必要があり
この章関連でこんなページを作りました。↓
[[%%%NTFSのデータ専用ドライブにgrubのstage1,stage2,menu.lst(grubの全て)をインストールする%%%>ntfs-grub]]
#br
----
サイト内関連ページ:[[強力な(?)NTFSのPBR修復法>fixpbr]]
----
&aname(Notes1);
※1:ブートローダの種類を変更する際に、それを最初におこなったディストリビューションが、そのタイミングを逃さずに他のOSと同様の標準のブート方式に改めておけば良かったと思います。確かgrubを初採用したのはRedHatだと思いますが、今となっては罪つく
(2009-12-23追記)MBRがWindowsに上書きされることは阻止できないんだから、上書きされる側は上書きされても困らない構成を取るべきではないでしょうか。その点でLinuxディストリビューター達は何を考えているんでしょうか?同じく[[grub2の開発者も何を考えて
#br
(2007-8-18) %%openSUSEをインストールしてみると標準が2段階ブートでした。そういえばSUSEは以前から2段階ブートだったような気がします。本文ではメジャーディストリは皆標準が1段階ブートだみたいな書き方をしていますが、こういう例外もあります。ご容
#br
(2009-6-13)数ヶ月前にopenSUSE11.1をインストールした際のメモを主体にちょっと書いておきます。
openSUSEはインストーラが柔軟で様々なカストマイズができ、2段階ブートの指定も、MBRのブートローダの上書きをおこなわない指定も可能なのですが、慣れていない人がそれらの指定を完璧におこなうのはまず不可能ではないかと思えるほど画面構成が複雑とな
既に2段階ブートに統一してマルチブート構成で運用している環境の中の1パーティションにopenSUSEをインストールする場合はこんな感じの設定となります。
+左側ペインで、[パーティション分割の提案] -> [パーティション設定の作成] -> [熟練者向けパーティション設定]を選択する
+[起動] -> [ブートローダの設定] -> [ブートローダのインストール] -> [ブートローダの場所]で、&br;「ブートパーティションから起動」についてはチェックを外し、「カスタムブートパーティション」についてはチェックを入れる
+[ブートローダのオプション] -> [ブートメニュー]で「MBRに汎用ブートコードを書き込む」のチェックを外す
私自身は一度も間違えずに自信を持ってこれらの指定を正しくおこなえるのですが、さてどれだけの人がこれらを最初から間違えずに、しかも教えられずにおこなえるだろうかと思ってしまいます。まあ必須なのは「熟練者向けパーティション設定」を選ぶことだけ
ただしopenSUSEに限らない話ですが、各ディストリともあまりに「新規にパーティションを作る」ことに拘り過ぎてるんじゃないかと思います。既存のパーティションを検出したなら早い段階で「既存のパーティションにインストールする」選択肢を示すべきじゃな
&aname(Notes2);
※2:10年近くの間に数百回、研究(?)してきました。
&aname(Notes3);
※3:必然的に当サイトのPC系コンテンツはニッチなネタばかり扱うことになります。但しちょっとそのポリシーに反すると思うのが[[これ>raid1tip]](manの後追いだから)。
&aname(Notes4);
※4:FreeBSDはインストール時、MBRにFreeBSD独自のブートローダをインストールしていいか確認してくれます。DOSおよびWindows、Solarisは、既存ブートローダの存在にかかわらず、MBRに独自のブートローダをインストールします。
&aname(Notes5);
※5:Linuxでこの形式を選択した場合、インストーラはMBRのブートローダをインストールしません。先にマルチブート対応のMBRのブートローダをインストールしておけば問題ありませんが、そうではない場合には注意が必要です。
また、grubブートローダをインストールするパーティションの指定を誤り、NTFSパーティションのPBRをgrubで上書きすることのないようにして下さい。DebianやUbuntu系の場合は間違いやすいインターフェースなので特に注意が必要です。もし上書きしてしまった場
&aname(Notes6);
※6:それぞれ各OSに元々付属しているPBR用のブートローダ
&aname(Notes7);
※7:Windowsを複数インストールした場合、個別のシステムドライブを持ち、且つ、システムパーティションを変動させてもシステムドライブを常にCに保つ場合は、makeactiveを記述する必要があります。
&aname(Notes8);
※8:WindowsXPのMBRもこのようなブートローダの一種です。アクティブフラグを付け替えることによって基本パーティションにインストールされた複数のOSをブートすることが出来ます。Windows2000のMBRはXPのそれより機能が劣ります。
&aname(Notes9);
※9:FAT16パーティションだけではなく、巨大なFAT32のパーティション上にgrubディレクトリを置くこともできます。また、そのFATパーティションをブートしない(データ専用パーティションとして使用する)場合は、そのFATパーティションのPBRにgrubのstage1をイ
-一般にgrubのstage1をインストール出来ない場所
--NTFSのPBR(先頭セクタ)
--FATのブートパーティションのPBR(先頭セクタ) ・・・大丈夫だったかも...
--raidパーティションのPBR(先頭セクタ)
-(意外にも)grubのstage1をインストール出来る場所
--拡張領域のPBR(先頭セクタ) 私は3段階ブートの際よく利用します。でもOSのインストーラに消去されたりします。邪道であることは確かです。事実上3段階以上ブートの場合専用と言っていいでしょう。
--ブートさせないFATパーティションのPBR(先頭セクタ) ※: ブートパーティションにもインストールは可能ですが意味がないです。
#br
※:検索エンジンの誤誘導対策
grubの(再)インストールに関する情報に関しては、当サイト内であれば、
[[ブート環境の復旧(grub再インストール時の注意点)>grub2_and_grub1#grub1_rescue]]
[[grubのインストール>grub2_and_grub1#grub1]]
[[1-3>#para1-3]]
あたりが参考になると思います。
#br
* ご要望、ご意見、質問を下のフォームにどうぞ&br;(でもここより、[[掲示板>board]]や[[書き込みフォーム>form]]のページに書いて頂いた方が気づき易いと思います。) [#qcae76ff]
#areaedit(nofreeze,noauth,btn:[修正(書き間違った場合にご利用下さい)])
- ずっと困っていたことが、わかり易く解説されていてずごく参考になりました。 -- [[赤帽子]] &new{2008-06-07 (土) 02:16:55};
- ビンゴ! MBM->XP/Grub-Ubuntu で、すごく快適。ありがとう! -- [[キタ]] &new{2009-06-09 (火) 12:37:21};
- MBMというのは初めて聞きました。この方法でやってみようと思います -- [[やまま]] &new{2009-12-26 (土) 00:41:51};
- 新しいPCを購入するので、今のPCでも実施している grub を使った2段ブートの方法を思い出そうと調べている中で流れ着きました。 今のPCではマスターgrub用に1つ小さなパーティションを用意しているので、無駄ですね。色々と勉強になりました。 そもそも「
- 活用して頂きありがとうございます。 -- [[disklessfun]] &new{2012-07-08 (日) 23:42:00};
- Windowsだけの環境でもWindows 7まではMBMでいけてメンテナンス性が上がりました。8はブートプロセスの関係でWindowsブートマネージャじゃないとダメっぽかったです。 -- [[Tatsu]] &new{2012-12-23 (日) 15:44:38};
- 有益な情報ありがとうございます。ちなみにSecure Bootは有効な状態ですか? -- [[disklessfun]] &new{2012-12-26 (水) 20:48:48};
- MBRなのでSecure Boot自体が存在しない状態です。 -- [[Tatsu]] &new{2013-01-03 (木) 23:21:42};
- Tatsuさん、当方で独自に検証作業をおこなったところ、Windows 8でもWindows 7以前と同様に、MBMでマルチブート環境が実現できることを確認しました。 -- [[disklessfun]] &new{2013-02-05 (火) 22:11:35};
- 上記に異論、疑問のある方はここに書き込むなり、メール頂く等の手段でご連絡下さい。当方の検証手順をお知らせしたいと思います。 -- [[disklessfun]] &new{2013-02-05 (火) 22:17:57};
- 検証する際、各Windows上でフォーマットして作成したPBR間に互換性がないということを前提において作業願います。 -- [[disklessfun]] &new{2013-02-13 (水) 01:25:51};
- WIN XP Pro 64 上でマルチブート環境を具体的なガイドを望みます -- [[長谷川 武]] &new{2013-08-29 (木) 20:57:26};
- このページおよび[[%%%mbmのページ%%%>mbm]]で紹介している手法は基本的に、(1)各OSがLegacy(BIOS)ブートに対応している、(2)UEFI採用マザーボードの場合は「Legacy Boot」を選択している、(3)ブートに関係するHDDもしくはSSDの容量が2Tバイト以下、の条件
- リモートPCのマルチブートで、起動するパーティションの選択だけでなくパーティションマスク機能なども利用したい場合は、MBRを直接書き換えてしまうのが一番手っ取り早いでしょうか。PBRに制御を移す直前までのMBMの処理をWindowsやLinux等の上で実現でき
- 最初の文について:その通りだと思います。2番めの文について:この話は前文に引き続いてリモートPCについての話でしょうか。詳細な理由説明は省略しますが、完全には腑に落ちません。多分「Intel AMT的なインターフェースで起動OSが選択したい」みたいな
- 05-25(日)21:07の者です。AMT的な物を使ったことは無いのですが、想定していたのはそれではなく「OSを起動させる以外のMBMの動作を高級なOS上で」(∵現在のリモートPCでも使えるように&ローカルPCでもシャットダウンから再起動まで放置できるように)です
- 特別な情報ではないんですが、Windows 10について言及しておきます。ブートに関しては基本的にWindows 8.1以前と同じです。MBMを使ってWindows 10を含むOS群をマルチブート環境にできます。 -- [[disklessfun]] &new{2015-06-28 (日) 16:43:04};
- マルチブートを主眼にしたPCじゃないんですが、一応の参考として私のメインPCのハードディスクの分割状況を公開します。 ダウンロード &ref(fdisk-l-my-mainpc.txt,nolink); UEFIのマザボですがMBMでマルチブートしています。パーティション4(拡張領域)
- 今までHDDでOSインストール後、MBMを書き込んでいました。 最近SSD Sandisk Ultra II 240GBにW7インストール後、MBMを書き込もうとしても、書き込めませんでした。SSDのためには、MBMの改定が必要なようです。 -- [[田中]] &new{2016-12-06 (火) 13:37:50}
- その見立ては間違いです。&br;コンピュータにとって、SATA接続のSSDは、基本的には、“とても速いSATA接続のHDD”に過ぎません。&br;私はMBMをSSDにインストールして使用していますし、他にも大勢の方がそうしている筈です。&br;MBMは、レガシーな(非GPTな)
#comment
#areaedit(end)
終了行:
&color(Blue){(2015-8-2)内容に変更はありませんが、ここに冒頭コメントを記述しておきます。&br;このページの内容はWindows 10 時代でも64bit、32bitを問わず、一応(その理由は後述)問題なく通用します。実際既に私は複数のPCでこのページのやり方を用いた、
(2013-2-6)ページ末尾にWindows 8に関する記述があります。
RIGHT:[[translate to English:http://translate.google.com/translate?u=http%3A%2F%2Fwikiwiki.jp%2Fdisklessfun%2F%3Fmultipleboot&langpair=ja%7Cen&hl=en&ie=UTF-8&oe=UTF-8&prev=%2Flanguage_tools]]
LEFT:
TITLE:Tips: マルチブートするなら2段階ブート方式に統一しよう
&size(17){Linuxのデフォルトのブート環境の問題点を解消しよう(各OSのブート環境は独立させよう)};
&size(13){※Linuxインストール後に二段階ブートに変更する場合に必須となる''「grubのPBRへのセットアップ」''のやり方は[[&size(13){%%%''こちら''%%%(grub2_and_grub1)};>grub2_and_grub1]]に掲載しています。};
RIGHT:初出 2007-1-13
RIGHT:最終更新 2010-8-23
LEFT:
//&color(Red){(2010-5-16)grubのページに[[&color(Red){%%%Ubuntu 9.10以降のインストーラのマルチブートに関するバグレポート%%%};>grub2_and_grub1#ubuntu-installer-tips]]をアップしました。Ubuntuを含めたマルチブート環境を構築する際は是非お読み下さ
&color(Red){(2010-5-16)grubのページに、Ubuntu系でインストール後にgrub2をMBRからPBRにセットアップし直した方への[[&color(Red){%%%重要な注意点%%%};>grub2_and_grub1#additional_work]]をアップしました。};
&aname(multiboot_techniques);
(2009-12-8)ページ作成後3年も経った今頃?という感もしますが、いくつかのマルチブートの手法を解説した図を作成してみました。
クリックすると大きな画像で見ることができます。また''PDF版:''&ref(multiboot_techniques.pdf,nolink);もどうぞ
[[&ref(multiboot_techniques_s.png);:http://wikiwiki.jp/disklessfun/?plugin=attach&pcmd=open&file=multiboot_techniques.png&refer=multipleboot]]
ダウンロード &ref(multiboot_techniques.xls,nolink); この図の出力元となったファイルです。良ければご自由に利用して下さい。
&color(Blue){(2010-3-7追記)上記資料中のWindows 7は、Windows 7のインストールより前に手動でパーティションを作成しておくことにより、Windows 7固有の100Mバイトのブートパーティションを作成しない形式をとっています。BitLockerを使用する予定がないの
''当サイトには本ページを補足するページ群があります''。←全部合わせてセットとなっています。
''深く関連''[[%%%mbm%%%>mbm]],[[%%%grub2_and_grub1%%%>grub2_and_grub1]],[[%%%hduse%%%>hduse]],[[%%%fixpbr%%%>fixpbr]],''少し弱く関連''[[%%%ntfsbkup%%%>ntfsbkup]],[[%%%linuxbkup%%%>linuxbkup]],[[%%%minimum-ubuntu%%%>minimum-ubuntu]],[[%%%utl
&aname(mbm_screen);
(2010-8-23)参考として私のMBMの画面を掲載しておきます。&size(11){MBMはチェーンロードするだけなのでどのWindowsでもどのLinuxでも起動できます。その他のOSも可です。};
[[&ref(multipleboot_5_s.jpg);:http://wikiwiki.jp/disklessfun/?plugin=attach&pcmd=open&file=multipleboot_5_b.jpg&refer=multipleboot]]
&size(9){(Windows 7,XP 2つ,Ubuntu,CentOS,openSUSEのマルチブートです。拡張領域にはいろんなLinuxをまだまだ追加できます。同一のOSを複数入れたり、バージョン違いを並べることも自由自在です。このようなことの実践時には特にこの2つのページ([[''%%%gr
#br
(2009-6-6 更新)
&size(14){このページは当初技術系で興味のある人にだけ理解してもらえばいいと思って書いたのであまり読みやすい状態になっていません。しかし実際には初心者に近い方のアクセスも多く、以前から「もっとわかりやすく書き直したいな」と思いながら実行できて
[[&ref(multipleboot_1_s.png,nolink);:http://nishiko.s16.xrea.com/]][[&ref(multipleboot_2_s.png,nolink);:http://street-green.seesaa.net/article/110348789.html]][[&ref(multipleboot_3_s.png,nolink);:http://ameblo.jp/magi-alphard/entry-10256936
[[&size(9){%%%マルチブート時のブートローダの選択について%%%};:http://nishiko.s16.xrea.com/]][[&size(9){%%%路地裏緑書: MBMによる「2段階ブート」の実践・・%%%};:http://street-green.seesaa.net/article/110348789.html]][[&size(9){%%%マルチブート
&size(9){(2010-8-23)新たにこちらもどうぞ};[[&ref(multipleboot_4_s.png,nolink);:http://d.hatena.ne.jp/den8/20100605/1275709966]]
[[&size(9){%%%Windows/Linux混在環境での二段階ブートの確立方法 - den8の日記%%%};:http://d.hatena.ne.jp/den8/20100605/1275709966]]
#br
自分でも手短に、これが本ページの''"意訳"''かな?と思うことを追記しておきます。
「[[%%%MBM%%%>mbm]]や類似のブートローダをMBRにいつでもインストール出来る手段を用意しておきましょう。その上で2段階ブートに統一すれば、''"どんな順番でどのOSをインストールしても"''マルチブートが実現できます。再インストールの順番も自由です。マ
(2009-5-4追記)いま世間で一般的なマルチブートの方法は、日頃から頻繁にマルチブートしている立場からみると不便極まりないです。一般的なgrubの使われ方はおかしいと感じます。またWindows同士のマルチブートの方法に関してもgrubと同様によろしくない方法
----
#br
2007年現在、各Linuxディストリビュータからリリースされている一般的なLinuxの標準的なブート方式は、''他のOS(Windows、Solaris、FreeBSD)のそれと比べると特異''とも言えます。現在のLinuxの標準的なインストーラが構築するデフォルトのブート環境は1段
#br
現行LinuxのPC用各ディストリビューションは標準でマルチブート対応のブートローダであるgrubを採用しており、その点ではLinuxとLinux、あるいはLinuxとWindows等のマルチブート環境構築への敷居は一見低そうに見えます。しかし、Linux標準の1段階ブート方式
本ページではLinuxにおいても他のOSと同様なブート方式の環境を構築し、非常に柔軟性の高いマルチブート環境を実現する手法を紹介します。
#br
「%%%マルチブート環境を構築する際はOSのインストール順が大切%%%」などと巷で言われる原因の99.9%は、
+Linuxがデフォルトで1段階ブートを採用していること
+Windowsのインストーラが問答無用で機能の劣る(マルチブートに対応していない)ブートローダをMBRにインストールすること
の2つにあると言えるでしょう。この2つが組み合わさることの多いことが解決を困難にしています。
実は1の問題を解消すれば2の問題も[[%%%MBM%%%>mbm]]等の高機能なブートローダをインストールすることで解消できます。
このページを読んで2段階ブートに統一すれば「WindowsとLinux」, 「Windows複数」, 「Linux複数」あるいはその組み合わせや、Solaris, FreeBSD等との組み合わせも簡単に構築でき、構成の変更も自由だということを理解しましょう。
#br
&size(11){マルチブートはディスクレスOSよりも私の得意な分野です([[※2>#Notes2]])。しかし、当サイト開設以来今まではマルチブートに関する記述をおこないませんでした。マルチブートの成功には基礎知識が重要だと私は思うのですが、既にネット上に基礎知
&size(10){&color(Blue){本ページでCD,DVDのマルチブートは扱いません。それらはカーネルの切替に過ぎません。[[&color(Blue){isolinux,isolinux+memdisk};:http://syslinux.zytor.com/iso.php]],grub,CDShellなんかを使って実現しちゃって下さい。Linuxのイ
#br
&size(14){&color(Red){(2010-01-22追記)[[&color(Red){''%%%下の追記%%%''};>#addition-2009-12-15]]はあくまでも''「''Vista以降を含む&size(19){''複数のWindows''};をマルチブートする場合''」''&size(19){''のみ''};に影響する話です。};};
長い説明が絡み合った文なので元々知識のある方でないと正確に理解するのは難しいと思います。
''ちょうどうまい具合に''[[''誤解した例'':http://q.hatena.ne.jp/1264000398#a984317]]が見つかりましたので、これを題材にしてどこが誤解しやすいかを示したいと思います。
[[''%%%このはてなの回答%%%'':http://q.hatena.ne.jp/1264000398#a984317]]には、私の文に対する二つの誤解があります。
''【一つ目の誤解】''
-そもそも[[''%%%この質問%%%'':http://q.hatena.ne.jp/1264000398]]の環境は条件に当てはまらないので[[''%%%下の追記%%%''>#addition-2009-12-15]]とは関係ありません。殆どの方には言うまでもないと思いますが、[[%%%この質問%%%:http://q.hatena.ne.jp/12
''【二つ目の誤解】''
-[[''%%%下の追記%%%''>#addition-2009-12-15]]''は、条件にあてはまる環境ではMBMを使わないことを薦めるという意味ではありません。''たとえVista以降を含む複数のWindowsをマルチブートする場合でも、他にLinuxやFreeBSDやSolarisをインストールした場合は
&aname(addition-2009-12-15);
|BGCOLOR(lightgoldenrodyellow):|c
|COLOR(BLUE):&color(Red){&size(16){''(2009-12-15)重要な追記''};};&br;&br;&size(16){''【「(Vista以降を一つ以上含んだ)Windows OS&size(18){複数};+他OS」のマルチブート環境の場合は純粋な二段階ブートではなく、「MBM等によるマルチブートとBootManage
↑(2010-3-7追記)''この文章は''人様に対して情報を提供する立場として''少々保守的な味付けで書いたものです''。実際には複数のVista以降のOSを含むマルチブート環境であっても、[[%%%''この記事''%%%>hduse#windows-multipleboot]]のような既存環境のコピー
#br
#contents
* 1. 2段階ブート方式のすすめ(頻繁にOSを入れ替える人向けのマルチブート手法) [#f307dbed]
** 1-1. 理解する為に必要な知識(各OSのブートの方式) [#a76f4850]
マルチブート手法の紹介の前に各OSのブート方式を簡単な言葉で説明させて下さい。
COLOR(RED):&size(11){(2007-7-18)赤文字の説明を追加しました。};
-DOSおよびWindows全て(Vistaや7も含む)&br;
MBRのブートローダ → PBRのブートローダ → パーティション内のプログラム
COLOR(RED):&size(10){ (多くの人が半ば無意識};
COLOR(RED):&size(10){ のうちに使用している。};
COLOR(RED):&size(10){ インタラクティブな選択};
COLOR(RED):&size(10){ 機能はない。};
COLOR(RED):&size(10){ [[後述>#para1-4-2]]のように他の種々の};
COLOR(RED):&size(10){ ブートローダで代替可(常にバックアップなしに上書き可))};
-FreeBSD&br;
MBRのブートローダ → PBRのブートローダ → パーティション内のプログラム
COLOR(RED):&size(10){ (インストールを選んだ};
COLOR(RED):&size(10){ 場合にインストールさ};
COLOR(RED):&size(10){ れるのは、FreeBSD};
COLOR(RED):&size(10){ 独自のマルチブート対};
COLOR(RED):&size(10){ 応ブートローダ。};
COLOR(RED):&size(10){ [[後述>#para1-4-2]]のように他の種々の};
COLOR(RED):&size(10){ ブートローダで代替可(常にバックアップなしに上書き可))};
-Solaris x86(Solaris 10 1/06(=update1)以降)&br;
MBRのブートローダ → PBRのブートローダ → パーティション内のプログラム
COLOR(RED):&size(10){ (自動的にインストール (専用の)grub};
COLOR(RED):&size(10){ されるのは、Solaris};
COLOR(RED):&size(10){ 独自のブートローダ。};
COLOR(RED):&size(10){ grubがマルチブートに};
COLOR(RED):&size(10){ 対応しているので、};
COLOR(RED):&size(10){ 以前はあった、インタ};
COLOR(RED):&size(10){ ラクティブな選択機能};
COLOR(RED):&size(10){ は省かれた。};
COLOR(RED):&size(10){ [[後述>#para1-4-2]]のように他の種々の};
COLOR(RED):&size(10){ ブートローダで代替可(常にバックアップなしに上書き可))};
-Linux(SUSE、openSUSE)&color(Red){2010-5-4:今までは注釈内でLinuxの例外としての記述でしたがきちんと項目として挙げる必要があると思い、ここに追記しました。};&br;
MBRのブートローダ → PBRのブートローダ → パーティション内のプログラム
COLOR(RED):&size(10){ (自動的にインストール grub};
COLOR(RED):&size(10){ されるのは、Windowsの};
COLOR(RED):&size(10){ MBR互換のブートローダ。};
COLOR(RED):&size(10){ [[後述>#para1-4-2]]のように他の種々の};
COLOR(RED):&size(10){ ブートローダで代替可(常にバックアップなしに上書き可))};
ユーザが普段意識することはないのですが、上に挙げたOSは全て、MBRのブートローダとPBRのブートローダが数珠繋ぎに呼び出されて最終的にOSが起動する形式をとっています([[※4>#Notes4]])。このブート方式を「2段階ブート」と表記することにします。;
&color(Blue){(2010-5-4追記)上に挙げた2段階ブートの環境が''そのままの状態''でベストな完成形というわけではありません。しかし2段階ブートに統一すると、''MBRに''[[&color(Blue){MBM};>mbm]]等の''高機能なブートマネージャーをインストールすることが
-Linux(SUSEを除く)
1段階ブート(← 標準的なLinuxのデフォルト)&br;
MBRのブートローダ → パーティション内のプログラム
COLOR(RED):&size(10){ (インストーラによって Linuxカーネル};
COLOR(RED):&size(10){ インストールされるのは};
COLOR(RED):&size(10){ grub。grub以外にも};
COLOR(RED):&size(10){ いくつか選択肢がある。};
COLOR(RED):&size(10){ 但しこの状態では安易};
COLOR(RED):&size(10){ に上書きは出来ない)};
もしくは
2段階ブート(← オプションで選択可能)&br;
MBRのブートローダ → PBRのブートローダ → パーティション内のプログラム
COLOR(RED):&size(10){ (先にブートローダが (インストーラによって};
COLOR(RED):&size(10){ インストールされていな インストールされるのは};
COLOR(RED):&size(10){ ければ、 必ずユーザが grub。変更すべきではない)};
COLOR(RED):&size(10){ インストールしなければ};
COLOR(RED):&size(10){ ならない。};
COLOR(RED):&size(10){ [[後述>#para1-4-2]]のように種々の};
COLOR(RED):&size(10){ ブートローダを使用できる。};
COLOR(RED):&size(10){ そのブートローダは、};
COLOR(RED):&size(10){ 常にバックアップなしに上書き可};
からユーザが選択
COLOR(RED):(2008-2-11追記) 要は2段階ブートの場合、%%%MBRのブートローダをいつでもバックアップなしに上書き可能%%%だというのが最大のポイントです。
COLOR(RED):[[&color(Red){ここ};>mbm]]でも触れているように、MBRのブートローダは意図せず上書きされてしまうことがありますが、2段階ブートにしておけば、%%%そうなっても平気%%%だということです。
&aname(para1-2);
** 1-2. 現在のLinux標準の1段階ブート方式を採用した場合の欠点 [#lafe7905]
前項を一見するとわかるようにLinuxだけ他と違って、デフォルトのブート方式が1段階ブートです。
#br
これは1段階ブート方式でマルチブートする場合の典型的なgrub設定ファイルの例ですが、
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
title Fedora Core (2.6.18-1.2849.fc6)
root (hd0,1)
kernel /boot/vmlinuz-2.6.18-1.2849.fc6 ro root=/dev/hda2 rhgb quiet
initrd /boot/initrd-2.6.18-1.2849.fc6.img
title Debian GNU/Linux, kernel 2.6.17-2-686
root (hd0,2)
kernel /boot/vmlinuz-2.6.17-2-686 root=/dev/hda3 ro
initrd /boot/initrd.img-2.6.17-2-686
title Microsoft Windows XP Professional
root (hd0,0)
makeactive
chainloader +1
前述のとおり1段階ブート方式には''「各OSのブート環境が独立しない」''という大きな欠点があり、この例の場合、
-''/dev/hda2を使用しているFedora Coreを削除するとDebianやWindows XPもブートできなくなってしまいます。''
-''Debianのカーネルをアップデートした場合、手動でこのファイルを修正する必要があります。''
-''/dev/hda1を使用しているWindows XP上の「ディスクの管理」でFedoraのパーティションを削除すると(次回起動時から)Windows XPが起動しなくなります。もちろんDebianも起動しなくなります。''
|BGCOLOR(lightgoldenrodyellow):|c
|COLOR(BLUE):全ての人には通じない喩えですが、プログラミングで「グローバル変数は使っては駄目!」とか、「オブジェクト指向が優れている」とか、言いますよね&br;Linuxデフォルトのブート手法をプログラミングに喩えて言うなれば、この「グローバル変数を
&aname(para1-3);
** 1-3. 各OSのブートの方式を2段階ブートに揃えた場合のメリット [#t38ce674]
前項の欠点を解消する為にLinuxでも
MBRのブートローダ → PBRのブートローダ → パーティション内のプログラム
の2段階ブート方式を選択することにしましょう。具体的にはLinuxインストーラのブートローダに関する設定インターフェースで''&size(20){「高度なオプション」};等を選んだり''、''&size(20){「拡張」ボタン};を押すなどして''grubのインストール先を問われ
|BGCOLOR(antiquewhite):|c
|初心者の方向けのアドバイスをしておきます。↑このブートローダのインストール形式に限らず、マルチブート環境の構築を念頭においてLinuxをインストールする際には、''%%%とにかくカスタマイズ%%%しようとする(or%%%オプションダイアログを表示してみる%%%)'
#br
マルチブートするOS''全て''を2段階ブート方式に統一すれば、MBRのブートローダは''「各パーティションのPBRのブートローダ([[※6>#Notes6]])をコールする」''役割だけをこなせば済むことになります。
#br
つまり、このようになります。
|BGCOLOR(lightgoldenrodyellow):|c
|COLOR(BLUE):2段階ブート方式に統一 = 各OS固有のブート環境が独立する|
#br
&color(olive){これによって[[&color(olive){1-2};>#para1-2]]で挙げた欠点が解消されます。以下にさらに詳しく2段階ブートに統一することによる特徴を挙げます。};
|&color(olive){2段階ブート方式に統一した場合の特徴};|
|COLOR(olive):|COLOR(olive):|COLOR(olive):|c
||CENTER:特徴|CENTER:説明|h
|1|各OSは自由にアップデート等がおこなえ、またその際にマルチブート環境であることによる余分な作業が発生しない|[[1-2>#para1-2]]で挙げたようなカーネルアップデート時の問題は発生しない|
|2|パーティションの大きさをどんなに変更しても、MBRのブートローダ(マルチブート用のブートローダ)及び直接関係のないOSは影響を受けない|MBRのブートローダは、ユーザの指定したパーテョションの番号をキーにして、起動される度にパーティションテーブルを
|3|パーティションを一旦削除した上で確保し直したり、パーティションの数を変更しても、MBRのブートローダ(マルチブート用のブートローダ)及び直接関係のないOSは影響を受けない|基本的には2と同様に影響は受けないのだが、パーティション数まで変更した場合
|4|MBRのブートローダを世界中の様々なブートローダに交換できる|別の言い方をすれば、MBRのブートローダが別の種類のもので上書きされても、それがマルチブートに対応していれば問題が生じない(SolarisとかFreeBSDのインストール後に既にこのような経験をさ
|5|全く別の種類のOSにインストールし直した場合でも、MBRのブートローダ(マルチブート用のブートローダ)は変更せずにブートできる|但しMBRのブートローダとしてgrubを使用した場合は、事前に設定変更をおこっていなかったからといってブートできないわけでは
&color(olive){※ MBRのブートローダとしてgrubを使用する場合は[[&color(olive){後述};>#para1-4-1]]の注意が必要です。};
** 1-4. 2段階ブートの設定の実際 [#p68ebdff]
上記1-3を実践するだけです。
現在のLinuxデフォルトの違いをまとめます。
-MBRのブートローダ
--MBRには「MBR用のブートローダ」をOSのインストーラに頼らずに自前でインストールする。grubも技術的には使用可能だと言えるが、この用途にgrubは非常に不向き。設定用のパーティションが不要で論理領域のOSもブート可能な[[MBM>#para1-4-2]]の採用を強く推
--「MBR用のブートローダ」として[[MBM>#para1-4-2]]のような適切なブートローダを採用した場合には、そのインストールはLinuxのインストール前・インストール後のみならず、あらゆるOSのインストール前・インストール後の%%%何時いかなる時期に何度おこなっ
-PBRのブートローダ
--各Linuxインストール時には、grubブートローダのインストール先としてMBRではなくPBR(基本的にはそのOSのシステムパーティションの先頭セクタ)を選ぶ。[[1-3>#para1-3]]と([[※9>#Notes9]])を参照して下さい。
#br
※少し不親切ですが、詳細な手順(作業の順番)までは記述しません。手順は人それぞれだからです。実際の作業では、Linuxインストール時にインストーラによってMBRにgrubをインストールして''一旦は1段階ブート方式の環境を構築し、後から2段階ブート方式に変
#br
|BGCOLOR(lightgoldenrodyellow):|c
|COLOR(BLUE):&size(18){''既存の1段階ブートのLinux環境の2段階ブートへの変更(※)''は、[[&color(Red){%%%このような作業%%%};>grub2_and_grub1#dual-stages-type]]の後に、[[&color(Red){%%%このパッケージを使用%%%};>mbm#inst-pack]]すればLinux上だけ
-2段階ブート環境構築の代表的な例(以下の例について、ここには詳しい説明は載せていません)
--先にWindowsだけがインストールされている環境に何らかの方法でLinux用のパーティションを確保し(元々の空きパーティションを利用する,新たなハードディスクを用意する,Windowsパーティションを狭める,等で)、Linuxを1段階ブート方式でインストールし、
--まっさらのハードディスクに、最初からマルチブートに適したパーティション群を確保し、Windowsをインストールし、[[MBM等>mbm]]をインストールし、Linuxを最初から2段階ブート方式でインストールする。
--まっさらのハードディスクに、最初からマルチブートに適したパーティション群を確保し、Linuxを1段階ブート方式でインストールし、2段階ブート方式に変更し([[MBM等>mbm]]をインストールし)、Windowsをインストールし、再度[[MBM等>mbm]]をインストールす
・
・
・
他にも無限にパターンは考えられますが、上記の記述が納得できるまで理解が進んでいれば、
応用も自由自在だと思います。
&aname(para1-4-1);
*** 1-4-1. MBRのブートローダとして、grubを使用する場合(非常に推奨しないけど) [#o80e2213]
&color(Red){この項は技術的な参考として記述しているに過ぎません。通常は、[[&color(Red){次の項};>#para1-4-2]]の方法を使用して下さい。};
2段階ブートに統一すると1段目の(MBRの)ブートローダは各パーティション先頭のPBRをコールするだけなのに、%%%設定ファイルや格納するパーティションが必要なgrubを使用するのは、どう考えてもナンセンスです%%%。MBRは様々なOSによって上書きされやすい場
----
この場合、Linuxを起動する際には''「MBRのgrub」'' → ''「PBRのgrub」''という形で複数のgrubによる”リレー”がおこなわれます。このページに興味を持たれる方ならすぐ理解できると思いますが、様々なOSを起動できるブートローダとしての性格上、grub同士の
#br
grubの設定ファイルやstageファイルを格納するパーティションは何とか適当に確保して下さい。次節「[[リモート環境にあるPCをマルチブートする手法>#Para2]]」の記述を参考にして下さい。
#br
-''MBRのgrub''用設定例1
実際にはこの部分には出来る限り[[MBM>#para1-4-2]]を使用して下さい。&color(Blue){(2010-8-23)[[&color(Blue){%%%MBMでのマルチブート画面%%%};>#mbm_screen]]を追加しました。};
あくまで2段階ブートの場合の「MBRのブートローダ」がどのような仕事をするのかを理解してもらう為にgrubの設定ファイルを用いて示したまでです。
%%%grubのchainloader機能は「ないよりはあった方がマシかな」程度のもので利用は極力避けるべきものです。%%%
%%%[[%%%MBM%%%>mbm]]はchainloaderとして優れた機能・使い勝手を持っています。%%%「餅は餅屋」と言われるようにチェーンロード処理は専門職の[[MBM>#para1-4-2]]に任せましょう。[[%%%MBM%%%>mbm]]は、WindowsがインストールするMicrosoft謹製のMBR用ブート
grubは本職のカーネルローダとして大いに利用して下さい。grubを2段階目のブートローダとして使用すること=grubをカーネルローダとしての役目に専念させることです。
※この例ではLinuxだけ複数ですが、Windows・FreeBSD・Solaris x86も''それぞれを''複数インストール出来ます。(ただしこれらOSは基本的には基本パーティションからしかブートできません。また複数をインストールする為にはちょっとした裏技も必要です)
&aname(solaris-bug);※(2009-3-21追記)Solaris x86のインストーラにはずっと以前から延々と続く欠陥があります。パーティションテーブルのヘッダ(H)の数値が255で1トラックあたりのセクタ(S)の数値が63、つまりH=255,S=63''以外''の場合にSolarisをインスト
&color(Blue){(2009-12-3追記)まだ世間ではWindowsは1台のハードディスクに1つのシステムドライブしか作れないと誤解している人がかなりおられるようです。Windows(7,Vista,XP,2K,NT,Me,98,95,2K3)全て、1台のハーハードディスクにシステムドライブを最大4個
default=0
timeout=3
color cyan/blue white/blue
title Microsoft Windows (95, NT, 98, Me, 2000, XP, 2003, Vista, 2008, 7)
root (hd0,0)
makeactive
chainloader +1
title FreeBSD
root (hd0,1)
chainloader +1
title Solaris 10 x86
root (hd0,2)
chainloader +1
title Linux open SUSE
root (hd0,6)
chainloader +1
title Linux Debian etch
root (hd0,7)
chainloader +1
title Linux Debian lenny
root (hd0,8)
chainloader +1
title Linux Ubuntu
root (hd0,9)
chainloader +1
title Linux Fedora
root (hd0,10)
chainloader +1
title Linux CentOS
root (hd0,11)
chainloader +1
・
・
title Minimum Ubuntu
kernel /vmlinuz
initrd /initrd.img
title Ubuntu Live
kernel /ubuntu/vmlinuz
iso-scan/filename=/UBUNTU/ubuntu-ja-X.XX-desktop-i386.iso (前の行の続き)
file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash (前の行の続き)
tz=Asia/Tokyo utc=no -- (前の行の続き)
initrd /ubuntu/initrd.gz
title KNOPPIX
kernel /KNOPPIX/linux fromhd=/dev/hda10
bootfrom=/dev/hda10/KNOPPIX/knoppix_v5.3.1CD_20080326-20080520-AC.iso (前の行の続き)
lang=ja vga=normal quiet noeject (前の行の続き)
initrd /KNOPPIX/minirt_kai.gz
※直上の2セクションはrescueやユーティリティ用のOneCDLinux。私の場合FAT32かNTFSの
パーティションに余裕があればそこにOne CD Linux(Live Linux)を置いておきます。
ただし、このPCのように他に沢山Linuxが入っている場合は本来必要ありません。
(Ubuntu のLiveについて)
この例のようにisoファイルのまま利用することをお薦めします。
isoファイルは無条件にNTFS上に置いていいのですが、カーネルとイニシャルラムディスク(vmlinuzと
initrd.gz)は、使用するブートローダの対応ファイルシステム上に置く必要があります。
FATの場合、設定ファイルに記述するパスを大文字小文字を逆にして記述する必要が生じる可能性が高いです。
(KNOPIX について)(2009-3-14更新)
私の場合、古いPCにはUbuntuよりKNOPPIXを使うようにしています。
上記バージョンのKNOPPIX上を使用しているのですが、このバージョンはどうもそのままではisoのままで
の利用が出来ないようなので、initrdにすぐ下に掲載の修正パッチを加えて使用しています。このパッチ
ではisoを置いたNTFS等のパーティションをバックアップ先としても使用可能とする為に書き込み可とする
修正もおこなっています。オプションには適宜使用PCに合わせてxmodule=fbdevとかno3dとかを付加して下さい。
ダウンロード &ref(knoppix_v5.3.1CD_20080326-20080520-AC_for_isoboot.patch,nolink);
&size(11){このパッチは本格的なものではなく、自分が使用する為だけに作成した"なんちゃってパッチ"の類です。使用例でオプションが冗長なことからもそれはわかると思います。};
#br
%%注意点はLinuxを起動するセクションにはmakeactiveを記述してはならないことです。%%
COLOR(BLUE):●savedefaultやmakeactiveはgrubのバージョンによっては非対応だったりします。その辺は適宜対応して下さい。これら機能はどちらかというと私はあまり使わないです。
●上のサンプルの最後の2セクションはレスキュー・バックアップ・リストア用のOne CD Linuxをハードディスクに内蔵(常備)しておく手法です。こちらも多少参考になると思います。→[[NTFSのデータ専用ドライブにgrubのstage1,stage2,menu.lst(grubの全て)をイン
#br
こんな風に記述してもいいでしょう。非常に汎用的で、場合によってはずっと変更しないで済みます。
-''MBRのgrub''用設定例2&br;
繰り返しますが、実際にはこの部分には出来る限り[[MBM>#para1-4-2]]を使用して下さい。
%%%grubのchainloader機能は「ないよりはあった方がマシかな」程度のもので利用は極力避けるべきものです。%%%
%%%[[%%%MBM%%%>mbm]]はchainloaderとして優れた機能・使い勝手を持っています。%%%「餅は餅屋」と言われるようにチェーンロード処理は専門職の[[MBM>#para1-4-2]]に任せましょう。[[%%%MBM%%%>mbm]]は、WindowsがインストールするMicrosoft謹製のMBR用ブート
grubは本職のカーネルローダとして大いに利用して下さい。grubを2段階目のブートローダとして使用すること=grubをカーネルローダとしての役目に専念させることです。
default=0
timeout=3
color cyan/blue white/blue
title OS(Partition 1)
root (hd0,0)
chainloader +1
title OS(Partition 2)
root (hd0,1)
chainloader +1
title OS(Partition 3)
root (hd0,2)
chainloader +1
title OS(Partition 4)
root (hd0,3)
chainloader +1
title OS(Partition 5)
root (hd0,4)
chainloader +1
title OS(Partition 6)
root (hd0,5)
chainloader +1
・
・
makeactive行が全くありませんが、Windowsを一つだけしかインストールしていない場合は、そのパーティションを元々(そして常に)アクティブにしておけば問題はありません([[※7>#Notes7]])。
#br
-''PBRのgrub''用設定例
各ディストリのユーティリティが作成した''そのままを使用すれば良い''ので省略します。
&aname(para1-4-2);
*** 1-4-2. MBRのブートローダとして、MBMを使用する場合(おすすめ) [#yae00b32]
[[&color(Blue){サイト内のMBM特集ページ};>mbm]]
----
2段階ブートに統一されている場合に「MBRのブートローダ」として使用できるブートローダは世界中に沢山ありますが、中には基本パーティションのPBRだけしかブートできないものがあります([[※8>#Notes8]])。Linux等の拡張領域からブート可能なOSを使用する場
あとの説明は、リンクに任せます。
#br
サイト内リンク:[[%%%MBM(ChaNさんの高機能・マルチブート用ブートローダ)をもっと便利に使う情報とツール%%%>mbm]]
有益な情報やツールがダウンロード出来ます。
&aname(id_o7fj2er3);
サイト内リンク:[[%%%Windowsを同一ハードディスク上にコピーしてマルチブートを実現する方法%%%>hduse#windows-multipleboot]]
(2009-7-9追加)
&aname(id_a8e95734);
参考リンク:[[%%%OSのインストール順・再インストールが自由なマルチブートの方法%%%>http://www12.atwiki.jp/linux2ch/pages/24.html#id_a8e95734]]
&size(9){(リンクが切れていたら教えて下さい)};
#br
#br
|BGCOLOR(lightgoldenrodyellow):|c
|COLOR(BLUE):結論として言えば、マルチブートする際にOSを選択するインターフェースとしてのgrubブートローダの使用は非常におすすめしません。つまりgrubのチェーンロード機能は使用すべきではありません。grubはPBRにインストールして、そのパーティション
#br
|BGCOLOR(lightgoldenrodyellow):|c
|COLOR(BLUE):冒頭にも記述しましたが、現在の標準的なLinuxが構築するブート環境は改善したほうが好ましいと思います。他のOSと同様に必ず2段階ブート方式を用いる仕様へと変更して、インストーラは、MBRのブートローダとしてMBMに似たブートローダ、PBRの
&aname(Para2);
* 2.リモート環境にあるPCをマルチブートする手法 [#j66b0168]
ネットワークブートに関しては専用ページ:[[%%%ディスクレス化に関する情報%%%>disklessinfo]]をご覧下さい。
----
ネットワークの向こう側にあるPCをmultibootで使用する手法です。ネットワークブートでのマルチブートと混同しないよう注意して下さい。&size(10){(御存じの方には当り前のことですが、ネットワークブートでのマルチブートは、ブート方式が共通のOS同士では非
基本は前節の手法を使うことにします。
このマルチブート手法に使用可能なブートローダを選択するポイントは以下の1点です。
-マルチブート用ブートローダのコンフィグレーションを事実上どんなOSから書き込めるFAT上に置くことが可能であること
ということで、当然ながら入手性の面からもgrubをマルチブート用のブートローダとして採用することになります。
#br
私はこのような場合、拡張パーティションの中に数十メガバイトの小さなgrub専用のFATパーティション([[※9>#Notes9]])を確保することにしています。
そのパーティションの中はこんな感じです。
grub----
|--fat_stage1_5
|--menu.lst
|--stage1
|--stage2
|--menu.win
|--menu.lin
|--win.bat
|--lin.bat
|--win.sh
|--lin.sh
このgrubをMBRにインストールしてもいいのですが、私ならMBRには[[MBM>mbm]]をインストールして、このgrub(のstage1)はこのパーティションのPBRにインストールします。つまり3段階ブートとなります。MBRのMBMがこのgrubのバックアップのブートローダとなって
#br
menu.win
default=0 # menu.linの場合はdefault=1、リモートでsavedは機能しないので記述しない
timeout=1
color cyan/blue white/blue
title Microsoft Windows XP Professional
root (hd0,0)
makeactive
chainloader +1
title Linux
root (hd0,1)
chainloader +1
ネットワークの向こう側にあるPCのgrubメニューを操作することはできませんから、この例ではgrub設定ファイル中のどのOSを起動するかを指し示すdefault値を変更することによって、起動するOSを切替えています。
#br
※FATパーティションを大きく確保して、その中にレスキュー・レストア用Knoppix等を置いておくのもおすすめです。もちろん、このgrub用設定ファイルにエントリを記述しておきます。各常用OS群から完全に独立しているのでレストア用途にはピッタリです。
#br
win.bat
copy menu.win menu.lst
#br
lin.bat
copy menu.lin menu.lst
#br
win.sh,lin.shはbatファイルからコマンドと改行コードを変えたただけのものです。さらにそのスクリプトを以下のようなスクリプトで呼び出すといいのではないでしょうか? 私はランチャーに登録しています。
#!/bin/sh
if [ "$1" != "-f" ]; then
zenity --question --title="デフォルトブートOSの変更" --text \
"Windowsをデフォルト起動OSにしますか?"
if [ $? = 1 ]; then
exit 1
fi
fi
cd /KYOYU/grub
exec /KYOYU/grub/win.sh
&aname(grub_conf);
|BGCOLOR(lightgoldenrodyellow):|c
|COLOR(BLUE):オリジナルのgrubの設定ファイル名はmenu.lstなのですが、ご存知のようにredhat系では設定ファイル名をgrub.confに変更しています。FATのようにシンボリックリンクのないファイルシステムを使用する場合はこの点を明確に意識しておく必要があり
この章関連でこんなページを作りました。↓
[[%%%NTFSのデータ専用ドライブにgrubのstage1,stage2,menu.lst(grubの全て)をインストールする%%%>ntfs-grub]]
#br
----
サイト内関連ページ:[[強力な(?)NTFSのPBR修復法>fixpbr]]
----
&aname(Notes1);
※1:ブートローダの種類を変更する際に、それを最初におこなったディストリビューションが、そのタイミングを逃さずに他のOSと同様の標準のブート方式に改めておけば良かったと思います。確かgrubを初採用したのはRedHatだと思いますが、今となっては罪つく
(2009-12-23追記)MBRがWindowsに上書きされることは阻止できないんだから、上書きされる側は上書きされても困らない構成を取るべきではないでしょうか。その点でLinuxディストリビューター達は何を考えているんでしょうか?同じく[[grub2の開発者も何を考えて
#br
(2007-8-18) %%openSUSEをインストールしてみると標準が2段階ブートでした。そういえばSUSEは以前から2段階ブートだったような気がします。本文ではメジャーディストリは皆標準が1段階ブートだみたいな書き方をしていますが、こういう例外もあります。ご容
#br
(2009-6-13)数ヶ月前にopenSUSE11.1をインストールした際のメモを主体にちょっと書いておきます。
openSUSEはインストーラが柔軟で様々なカストマイズができ、2段階ブートの指定も、MBRのブートローダの上書きをおこなわない指定も可能なのですが、慣れていない人がそれらの指定を完璧におこなうのはまず不可能ではないかと思えるほど画面構成が複雑とな
既に2段階ブートに統一してマルチブート構成で運用している環境の中の1パーティションにopenSUSEをインストールする場合はこんな感じの設定となります。
+左側ペインで、[パーティション分割の提案] -> [パーティション設定の作成] -> [熟練者向けパーティション設定]を選択する
+[起動] -> [ブートローダの設定] -> [ブートローダのインストール] -> [ブートローダの場所]で、&br;「ブートパーティションから起動」についてはチェックを外し、「カスタムブートパーティション」についてはチェックを入れる
+[ブートローダのオプション] -> [ブートメニュー]で「MBRに汎用ブートコードを書き込む」のチェックを外す
私自身は一度も間違えずに自信を持ってこれらの指定を正しくおこなえるのですが、さてどれだけの人がこれらを最初から間違えずに、しかも教えられずにおこなえるだろうかと思ってしまいます。まあ必須なのは「熟練者向けパーティション設定」を選ぶことだけ
ただしopenSUSEに限らない話ですが、各ディストリともあまりに「新規にパーティションを作る」ことに拘り過ぎてるんじゃないかと思います。既存のパーティションを検出したなら早い段階で「既存のパーティションにインストールする」選択肢を示すべきじゃな
&aname(Notes2);
※2:10年近くの間に数百回、研究(?)してきました。
&aname(Notes3);
※3:必然的に当サイトのPC系コンテンツはニッチなネタばかり扱うことになります。但しちょっとそのポリシーに反すると思うのが[[これ>raid1tip]](manの後追いだから)。
&aname(Notes4);
※4:FreeBSDはインストール時、MBRにFreeBSD独自のブートローダをインストールしていいか確認してくれます。DOSおよびWindows、Solarisは、既存ブートローダの存在にかかわらず、MBRに独自のブートローダをインストールします。
&aname(Notes5);
※5:Linuxでこの形式を選択した場合、インストーラはMBRのブートローダをインストールしません。先にマルチブート対応のMBRのブートローダをインストールしておけば問題ありませんが、そうではない場合には注意が必要です。
また、grubブートローダをインストールするパーティションの指定を誤り、NTFSパーティションのPBRをgrubで上書きすることのないようにして下さい。DebianやUbuntu系の場合は間違いやすいインターフェースなので特に注意が必要です。もし上書きしてしまった場
&aname(Notes6);
※6:それぞれ各OSに元々付属しているPBR用のブートローダ
&aname(Notes7);
※7:Windowsを複数インストールした場合、個別のシステムドライブを持ち、且つ、システムパーティションを変動させてもシステムドライブを常にCに保つ場合は、makeactiveを記述する必要があります。
&aname(Notes8);
※8:WindowsXPのMBRもこのようなブートローダの一種です。アクティブフラグを付け替えることによって基本パーティションにインストールされた複数のOSをブートすることが出来ます。Windows2000のMBRはXPのそれより機能が劣ります。
&aname(Notes9);
※9:FAT16パーティションだけではなく、巨大なFAT32のパーティション上にgrubディレクトリを置くこともできます。また、そのFATパーティションをブートしない(データ専用パーティションとして使用する)場合は、そのFATパーティションのPBRにgrubのstage1をイ
-一般にgrubのstage1をインストール出来ない場所
--NTFSのPBR(先頭セクタ)
--FATのブートパーティションのPBR(先頭セクタ) ・・・大丈夫だったかも...
--raidパーティションのPBR(先頭セクタ)
-(意外にも)grubのstage1をインストール出来る場所
--拡張領域のPBR(先頭セクタ) 私は3段階ブートの際よく利用します。でもOSのインストーラに消去されたりします。邪道であることは確かです。事実上3段階以上ブートの場合専用と言っていいでしょう。
--ブートさせないFATパーティションのPBR(先頭セクタ) ※: ブートパーティションにもインストールは可能ですが意味がないです。
#br
※:検索エンジンの誤誘導対策
grubの(再)インストールに関する情報に関しては、当サイト内であれば、
[[ブート環境の復旧(grub再インストール時の注意点)>grub2_and_grub1#grub1_rescue]]
[[grubのインストール>grub2_and_grub1#grub1]]
[[1-3>#para1-3]]
あたりが参考になると思います。
#br
* ご要望、ご意見、質問を下のフォームにどうぞ&br;(でもここより、[[掲示板>board]]や[[書き込みフォーム>form]]のページに書いて頂いた方が気づき易いと思います。) [#qcae76ff]
#areaedit(nofreeze,noauth,btn:[修正(書き間違った場合にご利用下さい)])
- ずっと困っていたことが、わかり易く解説されていてずごく参考になりました。 -- [[赤帽子]] &new{2008-06-07 (土) 02:16:55};
- ビンゴ! MBM->XP/Grub-Ubuntu で、すごく快適。ありがとう! -- [[キタ]] &new{2009-06-09 (火) 12:37:21};
- MBMというのは初めて聞きました。この方法でやってみようと思います -- [[やまま]] &new{2009-12-26 (土) 00:41:51};
- 新しいPCを購入するので、今のPCでも実施している grub を使った2段ブートの方法を思い出そうと調べている中で流れ着きました。 今のPCではマスターgrub用に1つ小さなパーティションを用意しているので、無駄ですね。色々と勉強になりました。 そもそも「
- 活用して頂きありがとうございます。 -- [[disklessfun]] &new{2012-07-08 (日) 23:42:00};
- Windowsだけの環境でもWindows 7まではMBMでいけてメンテナンス性が上がりました。8はブートプロセスの関係でWindowsブートマネージャじゃないとダメっぽかったです。 -- [[Tatsu]] &new{2012-12-23 (日) 15:44:38};
- 有益な情報ありがとうございます。ちなみにSecure Bootは有効な状態ですか? -- [[disklessfun]] &new{2012-12-26 (水) 20:48:48};
- MBRなのでSecure Boot自体が存在しない状態です。 -- [[Tatsu]] &new{2013-01-03 (木) 23:21:42};
- Tatsuさん、当方で独自に検証作業をおこなったところ、Windows 8でもWindows 7以前と同様に、MBMでマルチブート環境が実現できることを確認しました。 -- [[disklessfun]] &new{2013-02-05 (火) 22:11:35};
- 上記に異論、疑問のある方はここに書き込むなり、メール頂く等の手段でご連絡下さい。当方の検証手順をお知らせしたいと思います。 -- [[disklessfun]] &new{2013-02-05 (火) 22:17:57};
- 検証する際、各Windows上でフォーマットして作成したPBR間に互換性がないということを前提において作業願います。 -- [[disklessfun]] &new{2013-02-13 (水) 01:25:51};
- WIN XP Pro 64 上でマルチブート環境を具体的なガイドを望みます -- [[長谷川 武]] &new{2013-08-29 (木) 20:57:26};
- このページおよび[[%%%mbmのページ%%%>mbm]]で紹介している手法は基本的に、(1)各OSがLegacy(BIOS)ブートに対応している、(2)UEFI採用マザーボードの場合は「Legacy Boot」を選択している、(3)ブートに関係するHDDもしくはSSDの容量が2Tバイト以下、の条件
- リモートPCのマルチブートで、起動するパーティションの選択だけでなくパーティションマスク機能なども利用したい場合は、MBRを直接書き換えてしまうのが一番手っ取り早いでしょうか。PBRに制御を移す直前までのMBMの処理をWindowsやLinux等の上で実現でき
- 最初の文について:その通りだと思います。2番めの文について:この話は前文に引き続いてリモートPCについての話でしょうか。詳細な理由説明は省略しますが、完全には腑に落ちません。多分「Intel AMT的なインターフェースで起動OSが選択したい」みたいな
- 05-25(日)21:07の者です。AMT的な物を使ったことは無いのですが、想定していたのはそれではなく「OSを起動させる以外のMBMの動作を高級なOS上で」(∵現在のリモートPCでも使えるように&ローカルPCでもシャットダウンから再起動まで放置できるように)です
- 特別な情報ではないんですが、Windows 10について言及しておきます。ブートに関しては基本的にWindows 8.1以前と同じです。MBMを使ってWindows 10を含むOS群をマルチブート環境にできます。 -- [[disklessfun]] &new{2015-06-28 (日) 16:43:04};
- マルチブートを主眼にしたPCじゃないんですが、一応の参考として私のメインPCのハードディスクの分割状況を公開します。 ダウンロード &ref(fdisk-l-my-mainpc.txt,nolink); UEFIのマザボですがMBMでマルチブートしています。パーティション4(拡張領域)
- 今までHDDでOSインストール後、MBMを書き込んでいました。 最近SSD Sandisk Ultra II 240GBにW7インストール後、MBMを書き込もうとしても、書き込めませんでした。SSDのためには、MBMの改定が必要なようです。 -- [[田中]] &new{2016-12-06 (火) 13:37:50}
- その見立ては間違いです。&br;コンピュータにとって、SATA接続のSSDは、基本的には、“とても速いSATA接続のHDD”に過ぎません。&br;私はMBMをSSDにインストールして使用していますし、他にも大勢の方がそうしている筈です。&br;MBMは、レガシーな(非GPTな)
#comment
#areaedit(end)
ページ名: