• 締切済み

grub2のinitrdの取り扱い

initrdはカーネルが展開するものと思っていましたが、grub2では、雰囲気grub2自身が展開してるように思えるのですが・・・ もし、そうなら、grub2が/にinitrdを割り当てて、このファイルシステムをカーネルが引き継ぐという理解でいいのでしょうか?

みんなの回答

  • 486HA
  • ベストアンサー率45% (1013/2247)
回答No.1

そのように理解すると、LILOやSyslinuxからロードして起動する場合はどう解釈するのでしょうか? initrd(initial ramdisk)について読み直すことをお勧めします。 http://ja.wikipedia.org/wiki/Initrd

v-north
質問者

補足

start_kernel()からkernel_init()で、/initが存在しないと、 prepare_namespace()からinitrd_load()でinitrd.imageをロード展開して、/rootにマウント後/に再マウントしているようです。(LILOのサポートのため?) 私の環境はカーネルの3で、initrmイメージには/initがあって、トレースしてみるとどうもprepare_namespace()をコールしていないようでして・・・。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • grubでkernel panic

    DELLノートにXPとVine2.6のデュアルブートをしたいのですが,grubでLinuxを起動できません. インストールではliloをMBRではなくBOOTに書き込んでいます. つまり,先にXPを起動できるようにしてから次にgrubでLinuxを起動させる手順を選択しております. デュアルブートの解決方法などを教えていただけませんでしょうか? …以下、症状です… 僕は hda1: DELL hda2: NTFS hda3: ext3 hda4: extenstion hda5: ext3 hda6: swap でhda3にBOOT,hda5に本体を置いてるので  grub> root (hd0,2)  grub> kernel /vmlinuz root=/dev/hda3  grub> boot だけだと kernel panic: no init found Try passing it=option to kernel と怒られますので bootの直前に  grub> root (hd0,4)  grub> initrd /initrd/initrd.img としようとするのですが、initrd.imgがありません.  grub> root (hd0,2) と打つと Filesystem type is ext2fs, partision type 0x83 と帰ってきますが,   ^ ext3fsでないのが気になります. 再インストールしてliloをMBRに書き込んでから 先にLinuxを起動できるようにして, 次にgrubでXPを起動させる方が簡単でしょうか?

  • grubのエラーについて

    ブートローダ修復時に、以下のようなエラーになってしまいます。 # chroot /mnt/sysimage # grub-install --root-directory=/ /dev/cciss/c0d0 上記のコマンドを打つと 「エラー:/dev/cciss/c0d0:not found or not a block device」 になってしまいます。 chroot すると、/dev/ccissを認識しないようです。 どのように認識させたらよいかご存知でしょうか。 ○/mnt/sysimage/boot/grub/device.map # this device map was generated by anaconda (fd0) /dev/fd0 (hd0) /dev/cciss/c0d0 ○/mnt/sysimage/boot/grub/grub.conf # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/cciss/c0d0p7 # initrd /initrd-version.img #boot=/dev/cciss/c0d0 default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz title Red Hat Enterprise Linux ES (2.6.9-42.ELsmp) root (hd0,0) kernel /vmlinuz-2.6.9-42.ELsmp ro root=LABEL=/ rhgb quiet initrd /initrd-2.6.9-42.ELsmp.img title Red Hat Enterprise Linux ES (2.6.9-42.EL) root (hd0,0) kernel /vmlinuz-2.6.9-42.EL ro root=LABEL=/ rhgb quiet initrd /initrd-2.6.9-42.EL.img よろしくお願いします。

  • Ubuntu10.04LSTをgrub4dosで起動していますが・・・

    Ubuntu10.04LSTをgrub4dosで起動していますが・・・。  使っているコンピュータがUSB(メモリ)起動できない状態のため、Ubuntu10.04LSTをgrub4dosで起動しています。USB(メモリ)がsdbであるとして、/etc/initramfs-tools/modulesにこれを追記し、initrd.imgを再構築しました。  grub4dosではカーネルのアップデートがあったとき、c:\bootに最新のvmlinuz-2.6.32-xx-genericとinitrd.imgをコピーすると思うのですが、initrd.imgの再構築が面倒です。これを回避することは不可能なことでしょうか。あるいは、この方法しかないのでしょうか。教えていただきますよう、お願いいたします。

  • grub-installが不可能なので、違う方法がありますか?

    Vine Linux 3.0 をインストールしました。 システムコマンダーからブートできないため、試行錯誤しています まず、/sbin/grub-install /dev/hda が comand not found となり、何をどうすれば良いか知識がありません。 となれば、Linux専用MBRファイルを作成するのが良いかと思い付きました。 hda1 WinME(20GB)とシステムコマンダー8.0 hda2 WinXP(30GB) hda3 /boot(47MB) hda4 拡張 hda5 /(26GB) hda6 swap(1024MB) 現在は、GRUBをFDよりブートし、Vine が起動できています。 title Linux root (hd0,2) kernel /vmlinuz root=/dev/hda5 ro #initrd /boot/initrd.img そこで、FDブートではなく、MBRファイルを作成し、システムコマンダーよりMBR指定での起動としたいのです。 # dd if=/dev/hda of=/bootlnx bs=512 count=1 このようなコマンドでよろしいでしょうか。 ただ、bootlnxファイルをバイナリで見ても全て 00 の表示のような感じでしたが、正常に作成されていないのでしょうか。 何か良いアドバイスありましたら宣しくお願いします。

  • 「Linux(CentOS)でGRUB読み込み後起動しない」

    「Linux(CentOS)でGRUB読み込み後起動しない」 現在CentOSを利用しているのですが、下記のメッセージ後起動しない状態となっており、非常に困惑しております。 root (hd0,0) Filesystem type is ext2fs, partion type 0x83 kernel /vmlinuz-2.6.18-164.11.1.el5 ro root=LABEL=/ rhgb quiet [Linux-bzImage, setup=0x1e00, size=0x1c3fb4] initrd /initrd-2.6.18-164.11.1.el5.img [Linux-initrd @ 0x37d84000, 0x26bcb5 bytes] GRUB画面が表示されない状態であればGRUBを修復するなど、対処方法も分かるのですが、GRUBを読んだ後上記が表示され、画面に何も表示されないので、原因も分からない状態です。 なお、HIGHPOINTのRocketRAIDでRAID構築をしていますが、システムが別のHDDに入っていることや、事前にちゃんと起動していましたので、これが原因とはあまり思えません。 また、"rhgb quiet"をはずしても、やはり同様の状態で停止します。 この状態からの復旧方法など、アドバイス程度でも結構ですので、ご教授頂ければ幸いです。

  • GRUBでOSの選択画面が出ない

    今、大学生協で買ったdynabookSS MX25Aを使っています。 もともとWindowsXPとVineLinuxが入っていて GRUBでOSを選択するようになっていたのですが、 WindowsXPが起動しなくなってしまったので、 PowerX Hard Disc Manager7を使って リカバリーをかけました。 (バックアップを取ったのは買った時です) そうしたら今度は起動した時 GRUBの選択画面(WindowsかLinuxか)が 出ず grub>のコンソールだけ出るようになってしまいました。 Knoppixで立ち上げてみたところ Windowsのパーティション(NTFS)も Linuxのパーティション(Ext3)も認識しますし 中身もきちんとリカバリー出来ているように思います。 どうやったら元のようにOSを選択して 起動できるようになるのでしょうか? 生協に行けば済むかもしれませんが 家の都合で今行けないんです。。。 パーティションの構成↓ 1.WindowsXP(NTFS) 2.VineLinux(Ext3) 3.?(LinuxSwapと出ています) 4.?(WindowsXPのアプリ用領域) 2番目のVineLinuxの/boot/grub/grub.confには #menu.lst generated by anaconda # # Note that you do not have to rerun grub after changes to this file # NOTICE: You do not have a /boot partition. This means that # all kernel and inited paths are relative to /, eg. # root(hd0,2) # kernel /boot/vmlinuz-version ro root=/dev/sda3 # initrd /boot/initrd-version.img default=1 timeout=10 title Windows rootnoverify (hd0,0) chainloader +1 title VineLinux root(hd0,2) kernel /boot/vmlinuz ro root=LABEL=/ resume2=swap:/dev/sda5 vga=0x314 hdc=ide-scsi initrd /boot/initrd.img #title VineLinux (Previous kernel) # root (hd0,2) # kernel /boot/vmlinuz.old ro root=LABEL=/ resume2=swap:/dev/sda5 vga=0x314 # initrd /boot/initrd.old.img と書いてあります。

  • Redhatのシングルユーザーモードの起動方法

    GRUB上で、以下のコマンドを実行しましたが、起動しません。カーネルパニックになって止まります。 grub> kernel /boot/vmlinuz-2.6.9-42.EL ro root=LABEL=/ 1 initrd /boot/initrd-2.6.9-42.EL.img この後に・・・ grub> boot で、起動途中でカーネルパニックになってしまいます。 よろしくおねがいします。

  • GRUBのメニューに反映されない

    Debian4.0を使用していますが、OS起動時(GRUB起動時)、/boot/grub/menu.lstに記述したOSタイトルが選択リストに表示されません。 menu.lstを更新した時の詳細を以下に記述します。 1.カーネルを再構築   「make-kpkg」でカーネルパッケージを作成し、「dpkg -i」でインストール 2.インストール完了後、念の為menu.lstに新たに構築したカーネルが追加されていることを確認。 3.OS再起動。   GRUBのOS選択リストの中に、menu.lstに追加したカーネルバージョンが表示されていない。 4.今度はmenu.lstの「timeout=」や「default=」の値を変更してみるが、やはり反映されない。 5.findコマンドで確認したが、/boot/grubディレクトリ以外にmenu.lstは存在しない。   念の為確認したが、grub.confファイルも存在しない。 上記のように、/boot/grub/menu.lstを更新しても反映されません。 しかし、GRUBは何かの設定ファイルを読んでいるようです。 何故menu.lstが反映されないのか、GRUBは一体どのファイルを読んでいるのか全く分かりません。 どうすれば/boot/grub/menu.lstファイルの内容が反映されるようになるでしょうか。

  • GRUBでOSのトリプルブートが出来ない

    Linuxを始めたばかりの高校生です。 マシンはWin7、64bitの入ったものでマスターHDDはWin7に、スレーブHDDにはSwap,CentOS 5.4, Fedora 12をパーティションを切って入れました。 ところが、GRUBのメニューで選択すると先に入れたLinux OSが起動しません。「Error 15 File not found Press any key to continue......」なるメッセージです。後から入れたものは問題なく起動します。当然Win 7の起動はいずれもOKです。つまりデユアルブートなら問題ありません。 grub.confの内容は以下の通りです。(Fedora 12の場合) default=0 timeout=10 splashimage=(hd1,0)/boot/grub/splash.xpm.gz #hiddenmenu title CentOS 5.4 (2.6.18-164.11.1.el5) root (hd1,0) kernel /boot/vmlinuz-2.6.18-164.11.1.el5 ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.18-164.11.1.el15.img title Fedora 12 (2.6.31.5-127.fc12.x86_64) root (hd1,2) kernel /boot/vmlinuz-2.6.31.5-127.fc12.x86_64 ro root=UUID=799e26d1-a3e4-49c6-964d-c0801241d7d9 LANG=ja_JP.UTF-8 KEYBOARDTYPE=pc KEYTABLE=jp106 rhgb quiet initrd /boot/initramfs-2.6.31.5-127.fc12.x86_64.img title WINDOWS 7 rootnoverify (hd0,1) chinloader +1 Error 15の理由がgrub.confの記述のやり方が悪いのか検索で調べましたがまだ判っておりません。 どうか解決策を教えて下さい。

  • grub2がおかしい

    ubuntuを12.04にアップデートしました。 ubuntuは/dev/sda7にインストールされています。 grub2もsda7にあります。 windowsのローダから、grub2をチェインロードしています。 ところが、grub2のメニューでubuntuを選択すると、 error : no such partition press any key to continue と表示されます。 /boot/grub/grub.cfgを見ると menuentry 'Ubuntu, with Linux 3.2.0-23-generic' --class ubuntu --class gnu-linux --class gnu --class os { recordfail gfxmode $linux_gfx_mode insmod gzio insmod part_msdos insmod ext2 set root='(hd0,msdos7)' search --no-floppy --fs-uuid --set=root 9a612e22-6915-4b08-9491-0f8a394c7fe3 linux /boot/vmlinuz-3.2.0-23-generic root=UUID=9a612e22-6915-4b08-9491-0f8a394c7fe3 ro quiet splash $vt_handoff initrd /boot/initrd.img-3.2.0-23-generic } となっているので、これを改造して、/etc/grub.d/40_customに追記してupdate-grub2 すればいいんですかね? uuidはあってるんですが。 これからどこをチェックすればいいんでしょうか。