いますぐ実践! Linuxシステム管理

[バックナンバーのトップへ] [Linux システム管理のトップへ]


いますぐ実践! Linux システム管理 / Vol.202 / 読者数:1835名

こんばんは、うすだです。

基本的に小心者ですので、 Software Design に書かせていただいたIPv6の記事の評判が気になる今日この頃です。

ときどき Google さまに伺っているのですが、 つまんねーとかウソばっかだよなといった、 ネガティブなご意見は今のところなさそうでして、正直ほっとしております。

そして、たまーに、よかったとかためになったという文言を見つけては、 もだえ喜んでおります。

ただ、知り合い以外からはコンタクトがありませんでしたので、 身構えていたわたくしとしましては、ちょっと拍子抜けな気分です。
地方のドラマにちょい役で出演した役者の卵のような心境、でしょうか。
(…卵な役者さんの心境を勝手に想像しているだけですが…。)

しかし、これを逆に考えますと、 そういった記事を書かれている著者の方にコンタクトをとるひとは、 思ったほどいないのではないか、ということが推測できます。

ですので、コンタクトをとりたいんだけどその勇気がない、などとお悩みの貴兄は、 勇気を振り絞ってメールなどしてみてはいかがでしょうか。

もちろん、自分勝手な質問や、ただ攻撃的なだけの感想などは、言語道断です。 ですが、そうでなければ、相手もフツーのニンゲンのはずなので、 きちんと対応していただけるように思われます。

というわけで、モジモジしている貴兄は、トライしてみましょう!

暗にメールが欲しいと言っていることをおわかりいただけたかどうか不安に感じつつ (書いちゃいましたがー)、今回もはりきってまいります。

今回のお題 - GRUB を設定する 〜 GRUB 2 編

前回は、GRUB Legacy をさらりとご紹介しました。

Vol.201 - GRUB を設定する 〜 GRUB Legacy 編
http://www.usupi.org/sysad/201.html

驚くほど反響がなかったのですが、この流れで行くと、 今回は GRUB 2 をご紹介するしかないなと思っておりますので、 そのようにさせていただく所存でございます。

GRUB 2を採用しているディストリビューションは、 わたしの知る限りでは Ubuntu だけのようです。以降では、 Ubuntu 11.04 で確認しております。
(どのディストリビューションでも、GRUB 2 に差し替えることは可能だと思います。)

GRUB 2 では設定ファイルを直接触りません

GRUB 2 の場合の設定ファイルは「/boot/grub/grub.cfg」です。
ですが、このファイルを直接編集するのではなく、別のファイルに設定を書き、 コマンドを実行して前述の設定ファイルを生成する、という設計になっているようです。

その別のファイルとは、以下のことです。
「/etc/default/grub」と「/etc/grub.d/」にあるファイルです。

  /etc/default/grub
  /etc/grub.d/00_header
  /etc/grub.d/05_debian_theme
  /etc/grub.d/10_linux
  ...

これらを編集して「grub-mkconfig」コマンドを実行すると、 設定を出力してくれます。そのままでは標準出力に出力するので、 「-o」オプションで出力先を指定します。

  $ sudo grub-mkconfig -o /boot/grub/grub.cfg

「update-grub2」コマンドでも、上記と同様の結果が得られます。
というのも、以下のようにたどっていくと、 結局 grub-mkconfig を実行しているからです。

  $ file `which update-grub2`
  /usr/sbin/update-grub2: symbolic link to `update-grub'
  $ file `which update-grub`
  /usr/sbin/update-grub: POSIX shell script text executable
  $ cat /usr/sbin/update-grub
  #!/bin/sh
  set -e
  exec grub-mkconfig -o /boot/grub/grub.cfg "$@"

…おっと、やや脱線してしまいました。

まずは /etc/default/grub から

/etc/default/grub は、grub-mkconfig が読み込む設定ファイルです。
grub-mkconfig はシェルスクリプトであり、 /etc/default/grub もシェルスクリプトとしてそのまま解釈します。
ただ、基本的には、「パラメータ名=値」の羅列になっています。
/etc/default/grub の例を以下に示します。

  GRUB_DEFAULT=6
  GRUB_TIMEOUT=8
  GRUB_CMDLINE_LINUX=""
  GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
  GRUB_GFXMODE=800x600
  GRUB_BACKGROUND=/some/where/else/background-grub.png
  ...

主要なパラメータとその意味を、以下に示します。

  • GRUB_DEFAULT
    デフォルトのOSを指定するためのパラメータです。
    位置で指定することもできますし(先頭は0番です)、 メニューの名称をそのまま指定することもできます。また、 「saved」と指定した場合、前回起動したOSがデフォルトになります。
  • GRUB_TIMEOUT
    デフォルトのOSを起動するまでの時間を秒で指定するパラメータです。
  • GRUB_HIDDEN_TIMEOUT
    これが指定されていると、メニューが表示されません。
    また、これで指定された秒数だけ待ちます。
  • GRUB_HIDDEN_TIMEOUT_QUIET
    true か false の値を指定します。true だと画面に何も表示しませんが、 false だと GRUB_HIDDEN_TIMEOUT の残り時間を表示します。
  • GRUB_CMDLINE_LINUX
    カーネルのコマンドラインオプションに追加したい場合に指定するためのパラメータです。
  • GRUB_CMDLINE_LINUX_DEFAULT
    こちらは、通常起動の場合に、 コマンドラインオプションへ追加したいオプションを指定するためのパラメータです。
  • GRUB_GFXMODE
    画面の解像度を指定するパラメータです。 ご使用の PC のグラフィックカードが対応する解像度をご指定ください。
  • GRUB_BACKGROUND
    背景画像を指定するパラメータです。
    わたしが試した限りでは、 GRUB_GFXMODEと一致するサイズの画像を指定する必要がありました。…が、 さだかではありません。

/etc/grub.d/ のファイル

お次は、/etc/grub.d/ 以下のファイルです。
「README」で始まるファイルや「.dpkg-」とつくファイル以外で、 実行権のあるものは、すべて対象となります。

これらは、前述の grub-mkconfig から起動され、 /etc/default/grub の設定にしたがった内容を出力します。
ですので、基本的には、 /etc/grub.d/ にあるファイルもあまり触らない方がよさそうです。 /etc/default/grub の指定だけではどうしようもないときにだけ、 手を加えればよいと思います。

たとえば、 GRUB_CMDLINE_LINUX および GRUB_CMDLINE_LINUX_DEFAULT は、 「/etc/grub.d/10_linux」と「/etc/grub/20_linux_xen」で解釈されて、 Linux の起動のためのエントリ出力時に用いられます。

試しに、/etc/default/grub に以下の設定を追加してみましょう。

  GRUB_CMDLINE_LINUX="foo"
  GRUB_CMDLINE_LINUX_DEFAULT="bar"

そして、grub-mkconfig を実行しますと、標準出力に以下のようなものが出力されます。

  $ sudo /usr/sbin/grub-mkconfig
  ...
  menuentry 'Ubuntu, with Linux 2.6.38-8-generic' --class ubuntu \
  --class gnu-linux --class gnu --class os {
      ...
      linux   /vmlinuz-2.6.38-8-generic root=UUID=... ro foo bar
      initrd  /initrd.img-2.6.38-8-generic
  }
  menuentry 'Ubuntu, with Linux 2.6.38-8-generic (recovery mode)' \
  --class ubuntu --class gnu-linux --class gnu --class os {
      ...
      linux   /vmlinuz-2.6.38-8-generic root=UUID=... ro single foo
      initrd  /initrd.img-2.6.38-8-generic
  }
  ...

recovery mode で起動する場合は GRUB_CMDLINE_LINUX だけ、 普通に起動する場合は両方が、コマンドラインオプションに追加されています。

ちなみに 10_linux は、 「/boot/vmlinu[zx]-*」の各ファイルを起動するためのエントリを出力します。
シェルスクリプトなので、詳細を知りたい方は、 スクリプトをがんばって読んでくださいませ。(投げやりですみません…)

おわりに

以上、GRUB 2 について、ざっくりとご紹介しました。

GRUB Legacy と比べると、設定できる項目などが増え、 そのまま手で記述するのは大変になったので、/etc/default/grub の設定内容を元に、 設定ファイルを生成するようにしたのかな、という気がいたします。

解像度や背景を変えるだけでも楽しいと思います。 いろいろ試行錯誤して楽しんでください。

宿題の答え

前回の宿題は、

  PCをシャットダウンするメニューをGRUBに追加してみましょう。

でした。

といっても、シャットダウンするには「halt」というコマンドを実行するだけです。 ですので、以下を「menu.lst」もしくは「grub.conf」などに追加するだけです。

  title Shutdown
      halt

OS起動前ですので、 ブチッと電源を切ってもファイルシステムがおかしくなることはありませんが、 念のためにと思われる貴兄は、上記がメニューにあると、 ほっとされるのではないでしょうか。

また、「reboot」コマンドを実行すると再起動します。

  title Reboot
      reboot

BIOSの設定変更を忘れた! …なんていうときに、有用かもしれません。

今回の宿題

今回の宿題は、

  GRUB 2 でも、シャットダウンのメニューを追加してみましょう。

です。

ただ単に追加するだけでは面白くありませんので、 /etc/default/grub に(自分で決めた)パラメータを設定した場合に、 シャットダウンをメニューに追加するようにしてみてください。

あとがき

2月に転職してから生活パターンが一転して、 戸惑うことの多い数ヶ月を過ごしてまいりました。

ですが、5月末で試用期間を終え、お仕事にも慣れてきて、 ようやく波に乗りつつあるかな、という気がしております。

ただ、あれやこれやと欲張って仕事を取りすぎたためでしょうか、 一昨日までの1週間は、やるべきことのオンパレードで、 あたふたしながら仕事をこなすはめになってしまいました。

納期が決まっていれば、それに間に合うよう、 最大限の努力を行うことが必要だということはわかります。
追い詰められて窮地に陥ったとき、ひらめきの神様が手を差し伸べてくれたり、 火事場のバカ力でなんとかなる、という経験をすることも無駄ではないと思います。

ですが、追い詰められて必死になることは、 下記によるとあまりよいことではないそうです。

「自分を追い詰めてがんばる」のが良くない4つの理由 : earth in us.
http://www.earthinus.com/2011/06/dont-chase-you-up.html

たしかに今回、達成感が得られたり、いろいろ考えさせられることを経験できました。 ですが、足やお腹の調子が悪くなったり、抜け毛がたくさんあったりと、 不調な面も多々見受けられました。

目の前に納期があると、それに間に合わせることに意識が集中しますが、 そればっかりでなく、ときには広い視野で眺め計画的に行動することで、 自分を追い詰める状況をあまり作り出さないようにしようと思います。

…と思っているのですが、計画を立てるには計画を立てる時間が必要、 というジレンマに陥っている気がしなくもないです…。

 

今回も、ここまで読んでいただき、たいへんありがとうございました。
次回は、7月3日(日) の未明にお会いしましょう!

 

「いますぐ実践! Linux システム管理」の解除は、以下からできます。
http://www.usupi.org/sysad/ (まぐまぐ ID:149633)

バックナンバーは、こちらにほぼ全部そろっています。
http://www.usupi.org/sysad/backno.html

「栗日記」- 日経Linux8月号は、局所的にクリクリしているかもです。
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)
http://usupi.seesaa.net/ (栗日記ブログ)
http://usupi.org/k/ (モバイル栗日記)


[バックナンバーのトップへ] [Linux システム管理のトップへ]

トップ

バックナンバー
    [日付順] [目的別]

プロフィール

▼ リンク

独学Linux
Linuxデスクトップ環境に関する情報が満載です。 メルマガもありますよ。
Server World
CentOS 6をサーバとしたときの設定例が、これでもかというくらいたくさん載っています。 CentOS以外のディストリビューション(Fedora, Ubuntu)も充実しています。
LINUXで自宅サーバーを構築・導入(Fedora9)
Fedora9のインストールの仕方から管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
マロンくん.NET
〜サーバ管理者への道〜
Linuxをサーバとして使用するための、いろいろな設定方法が載っています。 マロンくんもかわいいです。 なんといっても、マロンくんという名前がいいですね!!
日経Linux
今や数少なくなってしまったLinuxの雑誌。ニュースやガイドもあります。
Linux Square − @IT
@ITが提供する、Linux の情報が満載。 載っていない設定方法はないんじゃないでしょうか。
gihyo.jp…技術評論社
Linuxに限らず様々な技術情報が満載のサイト。 SoftwareDesign誌も、 ソフトウェア技術者は必見です。
SourceForge.JP Magazine
Linux に限らず、オープンソース関連の記事が網羅されています。
ITmediaエンタープライズ:Linux Tips 一覧
Tips というより FAQ 集でしょうか。わからないことがあれば覗きましょう。
IBM developerWorks : Linux
開発者向けですが、勉強になりますよ。
Yahoo!ニュース - Linux
Yahoo!のLinuxに関するニュース一覧です。
栗日記
システム管理とかと全然関係ありませんが、毎日栗の絵を描いています。
システム管理につかれちゃったとき、癒されたいときに、ご覧ください。:-)
WEB RANKING - PC関連
ランキングに参加してみました。押してやってください。

▼ 作ってみました

Add to Google

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本