
Ubuntu日本語フォーラム

ログインしていません。
外付けUSBハードディスクに種々のLinuxをインストールしています。
ここに、ubuntu 10.10 を追加しようとしています。
現在のディスクの分割は、下記のようになっています。
sdc1 --- fedora 9 の boot
sdc2 --- fedora 9 の /
sdc3 --- fedora 9 の swap
sdc5 --- centos 5.4 の boot
sdc6 --- centos 5.4 の /
sdc7 --- centos 5.4 の swap
sdc8 --- fedora 8 の boot
sdc9 --- fedora 8 の /
sdc10 --- fedora 8 の swap
マルチブートは、sdc1 の fedora 9 の /boot/grub/grub.confに各項目を
記述して行っています(sdc の MBR には fedora 9 のブートローダがインストール
されています)。
sdc11 に ubuntu 10.10 の boot を
sdc12 に ubuntu 10.10 の / を
sdc13 に ubuntu 10.10 の swap を
sdc11 に ubuntu 10.10 の ブートローダをインストールしました。
sdc11 にインストールした ubuntu 10.10 の /boot/grub/grub.cfgを開いて
title,root,kernel,initrd の各項目を fedora 9 の /boot/grub/grub.confに
複写しようとしたのですが、それらしき項目がありません。
ubuntu 10.04 の場合は、title,root,kernel,initrd の各項目があり、それを
fedora 9 の /boot/grub/grub.confに複写すると、fedora 9 のブートローダで
ubuntu 10.04 を起動できました。
ubuntu 10.10 の場合はどのようにすれば、fedora 9 のブートローダで ubuntu 10.10
を起動できるのでしょうか?
ご教授よろしくお願い致します。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
sdc11 は ext4 ですか。
ferora8,9 の grub で ext4 は読めなかったような気がします。
(fedora12くらいから読めるようになったと思います。)
backport されているんでしょうか?
sdc11 に chainload するのは嫌ですか。
選択画面が一回増えますが chainload はできると思います。
オフライン
kiyop 様
回答を頂きまして有難うございます。
/dev/sdc11に(/boot)/grub/grub.cfgは存在しています。
fedora 9 のあとからインストールしたディストリビューションは、fedora 9 の
ブートローダー(grub )で起動して、マルチブートにしています。
fedora 9 のブートローダーは従来の grub で grub2 ではありません。
fedora 9 のブートローダーの grub で ubuntu 10.10 を起動したいのです。
その場合、fedora 9 の /boot/grub/grub.conf には、どのように記述
したらよいのでしょうか?
それとも、fedora 9 のブートローダーの grub で ubuntu 10.10 を起動
することは不可能なのでしょうか?
-------------------------------------------------------
Tako090929 様
回答を頂きまして有難うございます。
sdc11 は ext3 です。
「sdc11 に chainload する」とは具体的には、どのようにすればよいのでしょうか?
オフライン
grub legacy という前提で、今使っていないのでうろ覚えですが
title "ubuntu 10.10 chainload on sdc11" root (hd2,10) chainloder +1
というエントリーをMBR に grub をインストールしたシステムの
/boot/grub/grub.conf の適切な場所に書き加えて起動できるか
試してみてください。
ext3 と言うことなので、kiyop さんの投稿を参考に、直接起動できると思います。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
当方,Fedora14 の grub(legacy)から,/dev/sda4 の Ubuntu10.10 をブートしています.
設定は次の通り.
title Ubuntu Boot
root (hd0,3)
kernel /vmlinuz root=UUID=0d23cf6f-7cab-42b3-9793-6a98217eb836 ro quiet splash
initrd /initrd.img
title Ubuntu grub2
root (hd0,3)
kernel /boot/grub/core.img
title Ubuntu PBR
root (hd0,3)
chainloader +1Ubuntu Boot のエントリは,パッケージマネージャのdpkg が
最新の vmlinuz-* と initrd.img-* に張ってくれるリンク
lrwxrwxrwx 1 root root 33 2010-11-25 20:52 /initrd.img -> boot/initrd.img-2.6.35-23-generic lrwxrwxrwx 1 root root 33 2010-11-06 15:56 /initrd.img.old -> boot/initrd.img-2.6.35-22-generic lrwxrwxrwx 1 root root 30 2010-11-25 20:52 /vmlinuz -> boot/vmlinuz-2.6.35-23-generic lrwxrwxrwx 1 root root 30 2010-11-06 15:56 /vmlinuz.old -> boot/vmlinuz-2.6.35-22-generic
を利用して,直接 Ubuntu のカーネルをキックするもの.
こうしておけば,Ubuntu 側でカーネルアップデートしても Fedora 側の grub.conf は無変更で最新カーネルが起動できます.
Ubuntu grub2 のエントリは Fedora の grub に Ubuntu grub2 の core.img をロードさせるもの.
後述の PBR にインストールした grub2 の boot.img へのチェインロードでは,
Ubuntu の grub-pc パッケージがアップデートしたとき,起動できなくなるかもしれないので,
Fedra grub → Ubuntu grub2 のバトンタッチはこれがお薦めです.
Ubuntu PBR は念のため /dev/sda4 の PBR にチェインロードするエントリ.
此方では Ubuntu 10.04 → 10.10 のアップグレード後,このエントリでは起動出来なくなり,
grub2 の /dev/sda4 への再インストールが必要になりました.
# core.img の位置が block list の意味で「動かされて」しまったのが原因か?
私が情報提供できるのはこれだけです.
オフライン
einundzwanzighundertsechs による投稿:
Ubuntu grub2 のエントリは Fedora の grub に Ubuntu grub2 の core.img をロードさせるもの.
…中略…
Fedra grub → Ubuntu grub2 のバトンタッチはこれがお薦めです.
Fedora9 の grub でこれが可能かどうかは知りません.
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
kiyop さん による投稿:
質問者がインストールされたUbuntuでは/bootパーティションと/パーティションが分けてあるので、
リンク/vmlinuz(-> boot/vmlinuz-2.6.*-*-generic)と/initrd.img(-> boot/initrd.img-2.6.*-*-generic)はダメなような気がします。そもそも/vmlinuzや/initrd.imgが無いかもしれません。
当方では /etc/kernel-img.conf に link_in_boot = no の行が有ります.
/boot を分けるとこれが yes とかになり(推測),postinst スクリプトの
if ($link_in_boot) {
$image_dest = "/$image_dir/"; # same as realimageloc
}の部分で,リンクを作るディレクトリ=カーネル本体を格納するディレクトリ に設定され,
結果 /boot を別パーティションにしたときはリンク vmlinuz は /boot にできるのではと予想しています.
ls -l /boot/
で確認できます.
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
einundzwanzighundertsechs による投稿:
結果 /boot を別パーティションにしたときはリンク vmlinuz は /boot にできるのではと予想しています.
ls -l /boot/
で確認できます.
/boot パーティションに「vmlinuz → vmlinuz-最新バージョン」のシンボリックリンクが有るはずと思っていますが,
たとえ無い場合でも,手動でリンクを張れば良いのです.
Ubuntu のカーネルバージョンが更新される度に,
「手動で Fedora の grub.conf を修正,もしくはエントリを追加する」のと,
「手動で /boot パーティションのシンボリックリンクを張り直す」の
どちらが,より簡単か,間違いをおかす危険がより少ないかを,比較検討して下さい.
// スクリプトにし易いのはどっちでしょう?
オフライン
kiyop 様
ご教授頂きまして有難うございます。
/boot の中に vmlinuz-2.6.35-22-generic と initrd.img-2.6.35-22-generic
があったので、blkid で求めたUUID と共に fedora 9 の /boot/grub/grub.conf に
title ubuntu_10.10 (2.6.35-22-generic)
root (hd0,10)
kernel /vmlinuz-2.6.35-22-generic ro root=UUID=e50501fd-9ff5-4461-8122-a7665f3bb5c4 rhgb quiet
initrd /initrd.img-2.6.35-22-generic
と記述すると ubuntu 10.10 を起動できるようになりました。有難う御座いました。
kernel 行の root= の部分を root=/dev/sdc12 とした場合は、起動できたり、できなかったり
と不安定です。root= の部分を UUID で記述した場合は安定でした。
---------------------------------------------------------------------------------------
Tako090929 様
ご教授頂きまして有難うございます。
fedora 9 の /boot/grub/grub.conf に
title ubuntu_10.10
root (hd0,10)
chainloader +1
と記述すると、ubuntu の起動選択画面が出るようになるので、そこで ubuntu を選択すると
ubuntu 10.10 を起動できるようになりました(二段階選択になる)。
---------------------------------------------------------------------------------------
einundzwanzighundertsechs 様
ご回答頂きまして有難う御座います。
上記のように、起動できるようになりました。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
kiyop 様
ご教示頂きまして有難う御座います。
ご教示頂いたことを試してみました。
・ core.img については
title ubuntu_10.10
root (hd0,10)
kernel /grub/core.img
とすると、、ubuntu の起動選択画面が出るようになるので、そこで ubuntu を選択すると
ubuntu 10.10 を起動できるようになりました(二段階選択になる)。
・ uuid については
title ubuntu_10.10
uuid e50501fd-9ff5-4461-8122-a7665f3bb5c4
chainloader +1
とすると、unrecognized command との伝言が出て起動出来ませんでした。
・ vmlinuz,initrd については
/boot の中には、本体の vmlinuz-2.6.35-22-generic のみで、シンボリックリンクの
vmlinuz は作成されていません。initrd についても同じです。
したがって、手動でシンボリックリンクを作っても、アップデートをすると、また、手動で
シンボリックリンクを作り直さなければなりません。
・ geometry については
grub > geomerry (hd0)
drive 0x80: C/H/S = 1023/255/63, The number of sector = 117210240, LAB
Partition num: 0, Filesystem type is ext2fs, partition type 0x83
Partition num: 1, Filesystem type is ext2fs, partition type 0x83
Partition num: 2, Filesystem type unknown, partition type 0x82
Partition num: 4, Filesystem type is ext2fs, partition type 0x83
Partition num: 5, Filesystem type is ext2fs, partition type 0x83
Partition num: 6, Filesystem type unknown, partition type 0x82
Partition num: 7, Filesystem type is ext2fs, partition type 0x83
Partition num: 8, Filesystem type is ext2fs, partition type 0x83
Partition num: 9, Filesystem type unknown, partition type 0x82
Partition num: 10, Filesystem type is ext2fs, partition type 0x83
Partition num: 11, Filesystem type is ext2fs, partition type 0x83
Partition num: 12, Filesystem type unknown, partition type 0x82
grub > geomerry (hd1)
drive 0x81: C/H/S = 1023/255/63, The number of sector = 312581808, LAB
Partition num: 0, Filesystem type unknown, partition type 0x7
Partition num: 2, Filesystem type unknown, partition type 0x83
Partition num: 3, Filesystem type unknown, partition type 0x83
Partition num: 4, Filesystem type is ext2fs, partition type 0x83
Partition num: 5, Filesystem type is ext2fs, partition type 0x83
Partition num: 6, Filesystem type unknown, partition type 0x82
Partition num: 7, Filesystem type is ext2fs, partition type 0x83
Partition num: 8, Filesystem type is ext2fs, partition type 0x83
Partition num: 9, Filesystem type unknown, partition type 0x82
以上のようになりました。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
ubuntu_novice さん による投稿:
・ vmlinuz,initrd については
/boot の中には、本体の vmlinuz-2.6.35-22-generic のみで、シンボリックリンクの
vmlinuz は作成されていません。initrd についても同じです。
予想が外れました.そういう風に postinst スクリプトが作られていないとしたら,軽い驚きです.
後学のため,差し支え無ければ,/etc/kernel-img.conf の内容を
cat /etc/kernel-img.conf
で教えて頂けませんでしょうか.
オフライン
einundzwanzighundertsechs 様
/etc/kernel-img.conf の内容は、下記の通りです。
do_symlinks = yes
relative_links = yes
do_bootloader = no
do_bootfloppy = no
do_initrd = yes
link_in_boot = no
オフライン
ubuntu_novice さん,わざわざ,有難うございました.
ubuntu_novice さん による投稿:
/etc/kernel-img.conf の内容は、下記の通りです。
…中略…
link_in_boot = no
/boot を別パーティションにするよう選択したとき
自動的に link_in_boot = yes になるのかな?
と思っていたのですが,そうでは無い様子ですね.
dpkg に /boot へリンク vmlinuz を張って欲しいときには,
ユーザが明示的に /etc/kernel-img.conf を編集するのかな…?
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
kiyop さん,実地検証有難うございました.私はドキュメントを探してみました.
Bug #52679 in linux-source-2.6.15 (Ubuntu): “link_in_boot not set correctly”では,dapper の時代に
「yaboot(arch = ppc のブートローダだっけ?) が,最新のカーネルを拾ってくれない」との報告がなされていますが,
fix の対象は livecd-rootfs になってます.
kernel-img.conf の man ページは kernel-package パッケージに含まれるのですが,
link_in_boot に関する記述は10.10 の man ページには無く,8.04 LTS の man ページに有りました.
同じく kernel-package パッケージの sample.kernel-img.conf についても,
ネットで見つけたsample.kernel-img.confの方が解説が詳しいです.
link_in_boot の解説に至るルートが,10.04 LTS 以降消されているのはどういうことなんでしょうね?
オフライン
Fedora9 の grub は ext4 を認識しないので,ルートは性能の良い ext4 に,/boot は ext3 に分けたい.
そもそもなぜサポートの切れた Fedora9 なのかも,導入済みの商用パッケージ Fedora9 までしかサポートしないから.
とか,理由は色々想像出きるので,ともかく /boot を別パーティションにするのが前提だとして,
/etc/kernel-img.conf の link_in_boot の設定を変更し,シンボリックリンクを使った1段階ブートを実現する道が見えていますが,
link_in_boot をドキュメントから削除した時の説明 git.debian.org Git - users/srivasta/debian/kernel-package.git/commitdiff
によれば,リンクを張る作業は postinst スクリプトから,/etc/kernel/*.d 以下のスクリプトへと,移行する方針の様です.
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
さらに見つけた情報を,備忘録として…
einundzwanzighundertsechs による投稿:
リンクを張る作業は postinst スクリプトから,/etc/kernel/*.d 以下のスクリプトへと,移行する方針の様です.
カーネルのシンボリックリンク・マネージメントのサンプルスクリプトが kernel-package パッケージに含まれていました.
/usr/share/kernel-package/examples/etc/kernel/postinst.d/symlink_hook
これを修正(そのままではダメ)して /etc/kernel/postinst.d/ に突っ込んでも,
/boot 以下でシンボリックリンク vmlinuz を自動的に管理できそうです.
したがって /boot を別パーティションにした状態であることを前提とするなら,
1. /etc/kernel-img.conf の link_in_boot を設定し,出来たシンボリックリンクを利用する.
2. /etc/kernel/postinst.d/ にフックスクリプトを作成し,シンボリックリンクを作成する.
そして,もちろん,
3. /boot/grub/core.img 経由(chainloader でも結局は同じ) の2段階ブートで満足する.
の,3つが考えられるって所です.
オフライン