お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2011-08-29 12:24:18

doragon
メンバ
登録日: 2011-01-27

usb3.0拡張カードに接続されたHDDからubuntuを起動する(その2)

 このトピックは以前に投稿したトピック(https://forums.ubuntulinux.jp/viewtopic.php?pid=76474#p76474)の続編です。事情によりこのトピックを中断しなければならず、アドバイスをいただいた方々(hmatsueさん、Crushさん、weykさん、jackalopeさん)には大変ご迷惑をかけました。その後、東北地方で東日本大震災に巻き込まれ、この4月に復帰、最近ようやくubuntuに向き合うことができるようになりました。
 以前のトピックのアドバイスを精読し、jackalopeさんの示された手順(https://forums.ubuntulinux.j/viewtopic.php?pid=56668#p56668)を理解することに努めました。それに基づいて、試行錯誤した結果、usbメモリを介して、usb3.0拡張カードに接続されたHDDからubuntuを起動することができましたので報告します(この間ubuntuは10.10から11.04にバージョンアップされましたが、この報告は最新バージョンによるものです)。

 設定に際して留意した点は以下のとおりです。
(1)拡張ボードの認識はgrubuとカーネルで異なる(カーネルバージョン(2.6.38-10-11)ではgrubメニューにusb3.0-hddのubuntuのエントリーが表示されるが、それを選んでもubuntuは起動しない)
(2)grub.cfgのset rootはgrubを起動する媒体(usbメモリ)のマウントポイントを指示し、root=usbメモリのUUIDとなる(weykさんの#37の記事)。
(3)usbメモリ、修正initrd、usb3.0-hdd、ファイルシステム等のカーネルバージョンの整合性(上記トピックのjackalopeさんの#27、#35の記事)

 具体的な手順は次のとおりです。
(1)/etc/initramfa-tools/modulesにはxhci_hcd, usb_storageの他に/lib/modules......../pciの中のモジュール-pci-stab.ko, xon-pcifront.koを入れる。
(2)/etc/grub.d/40_customの内容
#!/bin/sh
exec tail -n +3 $0
menuentry "Ubuntu on usb3.0-disc, 2.6.38-11-generic (on /dev/sdd1)"{
    recordfail
    set gfxpayload=$linux_gfx_mode
    insmod part_msdos
    insmod ext2
    set root='(/dev/sdc,msdos1)'
    search --no-floppy --fs-uuid --set=root 7403ad27-f1d5-4860-8632-929fc7aba6d4
    linux /boot/xhci/vmlinuz-2.6.38-11 root=UUID=cbc6e27b-0c78-44c5-9437-9441dd718aae ro quiet splash vt.handoff=7
    initrd /boot/xhci/initrd.gz
}
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
(3)まずliveCDのカーネルバージョン2.6.38-8でシステムを構成し、起動後拡張ボード接続のHDDのubuntuをバージョンアップ(カーネルバージョン2.6.38-11)し、次にusbメモリーのubuntuをバージョンアップする。そしてinitrd等をカーネルバージョン2.6.38-11用に再構成する。これでカーネルバージョン2.6.38-11のubuntuが起動できるようになる。

以上が試行の概要ですが、課題として
(1)カーネルのバージョンアップに伴って、上記(3)を繰り返えすことになるが、簡素化する方法はないか。
(2)usb3.0拡張ボード接続のubuntuをスルーに起動するか、grubuメニューの最上部におけないか。

が残ります。コメント及びアドバイスがいただければ幸です。

オフライン

 

#2 2011-08-29 16:12:57

hmatsue
アドバイザ
登録日: 2009-03-10

Re: usb3.0拡張カードに接続されたHDDからubuntuを起動する(その2)

doragon による投稿:

usbメモリを介して、usb3.0拡張カードに接続されたHDDからubuntuを起動することができましたので報告します(この間ubuntuは10.10から11.04にバージョンアップされましたが、この報告は最新バージョンによるものです)。

いまいち現在の状態が読み取れませんでした。
現在のシステムのインストール状況(使用デバイス、それぞれのマウントポイント、grub2のインストール場所、BIOSからLinuxカーネル起動までの流れ、grub2の設定内容(grub.cfgの内容全部))をご説明いただけますでしょうか。
また、

コード:

sudo blkid
df -Th

の実行結果もあるとより、状況が明確になるかと思います。

doragon による投稿:

(1)拡張ボードの認識はgrubuとカーネルで異なる(カーネルバージョン(2.6.38-10-11)ではgrubメニューにusb3.0-hddのubuntuのエントリーが表示されるが、それを選んでもubuntuは起動しない)

「拡張ボードの認識はgrubuとカーネルで異なる」の意味がよく分かりませんでした。
インストール済みのシステムでupdate-grubが走ると、grubはM/BがUSB-3.0拡張ボードからシステム起動できるかどうかを判定せずに、USB-3.0拡張ボードにつながったHDDにLinuxカーネルを見つけると、それをgrub.cfgに書き出すのではないかと思いますが、そのような状態のことでしょうか。
たとえ、grub.cfgにUSB-3.0拡張ボードにつながったHDDのLinuxカーネルが記述されていても、grubからはそのカーネルを直接起動することはできないかと思います。

doragon による投稿:

以上が試行の概要ですが、課題として
(1)カーネルのバージョンアップに伴って、上記(3)を繰り返えすことになるが、簡素化する方法はないか。

現在の状態が明確に理解できていないので、おそらく、という程度の話ですが、この話の肝は、BIOSからはUSB-3.0拡張ボードが見えないので、最低限initrdはBIOSから見える場所に置き、そのinitrdにUSB-3.0拡張ボードが駆動できるカーネルモジュールを含ませておきましょう、という話と理解しています。
もっとも簡単な方法は、
https://forums.ubuntulinux.jp/viewtopic.php?pid=75698#p75698
でjackalopeさんも書かれているように、/boot自体をBIOSから見えるところに配置する方法です。
initrdだけ配置する方法を用いる場合、例えば、/usr/sbin/update-grubや、/etc/grub.d以下のファイルを使って新しいinitrdの生成、配置、grub.cfgへの記述などを自動化するという手もあるかと思います。
(システムのファイルを変更する場合は、grubの更新時に上書きされる可能性はあることを覚えておいて下さい)

doragon による投稿:

(2)usb3.0拡張ボード接続のubuntuをスルーに起動するか、grubuメニューの最上部におけないか。

が残ります。コメント及びアドバイスがいただければ幸です。

https://forums.ubuntulinux.jp/viewtopic.php?pid=43082
のGRUB_DEFAULTの項が参考になるかと思います。

オフライン

 

#3 2011-08-29 17:33:43

Tako090929
メンバ
登録日: 2009-09-29

Re: usb3.0拡張カードに接続されたHDDからubuntuを起動する(その2)

doragonさん による投稿:

grubuメニューの最上部におけないか。

update-grub は /etc/grub.d 内のファイルを辞書順に処理するようなので
40_custom というファイル名を、例えば 09_usb3 のように変えれば
10_linux によって生成されるメニューエントリの前に表示されると思います。

オフライン

 

#4 2011-08-30 15:41:40

doragon
メンバ
登録日: 2011-01-27

Re: usb3.0拡張カードに接続されたHDDからubuntuを起動する(その2)

hmatsueさんへ

 詳しいコメントありがとうございます。
 このトピックは(https://forums.ubuntulinux.jp/viewtopic.php?pid=76474#p76474)の続編として書いていますので、それまでのプロセスは省いています。また、ここでやっていることはjackalopeさんの手順(https://forums.ubuntulinux.jp/viewtopic.php?pid=56668#p56668)においてSDHC---->usb3.0-hddに置き換えたその物ですので、Linux初心者の私が説明するよりそちらを読んでいただいた方がわかりやすいと思います。わからない、理解できないとしていることでhmatsueさんが推察していることはすべてその通りです。

 記事中誤りが2点ありますので訂正しておきます。
(1)留意した点の(2)で、root=usbメモリのUUID------->、root=usb3.0-hddのUUID
(2)具体的な手順(2)で、set root='(/dev/sdc,msdos1)'-------->set root='(/dev/sdb,msdos1)'

 提案しているカーネルバージョンアップ時の対応について、/rootをusbメモリに置く方法はレスポンスが遅くなりそうだし、他の方法を含めて具体的な手順が分かりませんので、今回は現状で我慢します。

Tako090929さんへ

 具体的な手順ご教示いただきましてありがとうございます。この方法でusb-3.0-hddのエントリーがメニューのトップになり、ほっておいてもusb3.0-hddのubuntuが起動するようになりました。

 使用感はとてもレスポンスが早く、満足しています。古いXPマシンの内臓HDDにインストールしたubunntuに比べて数倍レスポンスが早いです。このマシン(HP-s5330jp)の内臓HDDにインストールしたものと比べればどうかは分かりませんが(数値計算中のスワップ応答も含めて)、このシステムをツールとして次のステップに進みたいと思います。

 皆さん有難うございました。

オフライン

 

Board footer

Powered by FluxBB