お知らせ

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

#1 2010-11-01 18:24:25

tetsuyakubo
メンバ
登録日: 2008-10-05

/etc/grub.d/41_custom とは

ubuntu10.10をクリーンインストールし、
grubの「40_customファイル」をカスタマイズをしようと思って /etc/grub.d/ を開けたら、
「41_custom」という新しいファイルがありました。
10.04の時にはなかったものですが、
10.10インストール時にできたものだと思います、
(このファイルを作成した記憶がないので)

内容は以下の通りです。
------------------------------------------------------
#!/bin/sh
cat <<EOF
if [ -f  \$prefix/custom.cfg ]; then
  source \$prefix/custom.cfg;
fi
EOF
------------------------------------------------------

40_custom は以前からありましたが、
41_custom は初めて見ました。
これはどのようなファイルでしょうか?

オフライン

 

#2 2010-11-02 11:27:35

tetsuyakubo
メンバ
登録日: 2008-10-05

Re: /etc/grub.d/41_custom とは

追伸
41_custom はそのままで、
/etc/default/grub 40_custom 05_debian_theme 00_header 等の修正をし、
sudo update-grub2 で 問題なく作業は終了します。

41_customについての情報は、web上でも少なく、よくわかりません。

オフライン

 

#3 2010-11-02 22:51:34

nimu
メンバ
登録日: 2009-04-02

Re: /etc/grub.d/41_custom とは

どのようなファイルかは知らないんですが、 http://packages.ubuntu.com/ja/ で検索すると grub-common パッケージがインストールするようです。

オフライン

 

#4 2010-11-03 15:10:54

tetsuyakubo
メンバ
登録日: 2008-10-05

Re: /etc/grub.d/41_custom とは

ご回答ありがとうございます。

ファイル内のスクリプトに書いてある
custom.cfg ですが、
/boot/grub/ 内には custom.cfg なるファイルは存在しませんでした。

「\$prefix/custom.cfg」でググってみると
http://www.mail-archive.com/[email protected]/msg15806.html
なるページが存在しました。
ファイル内のスクリプトに書いてある
custom.cfg ですが、やはりよく解りません。
/boot/grub/ 内には custom.cfg なるファイルは存在しませんでした。
 
41_custom はもしかすると最初からあったファイルではなく、
update-grub2 でできたファイルでしょうか?

スクリプトが読めないのでよく解りませんが、勉強して見ようと思います。

オフライン

 

#5 2010-11-03 16:42:38

nimu
メンバ
登録日: 2009-04-02

Re: /etc/grub.d/41_custom とは

Ubuntu 10.10 をインストールしていないんで、推測の部分があるんですが、

ファイル内のスクリプトに書いてある
custom.cfg ですが、
/boot/grub/ 内には custom.cfg なるファイルは存在しませんでした。

コード:

#!/bin/sh
cat <<EOF
if [ -f  \$prefix/custom.cfg ]; then
  source \$prefix/custom.cfg;
fi
EOF

は実行されると標準出力は、

コード:

if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi

となります。これが /boot/grub/grub.cfg に書きこまれるのだと思います(推測)。

シェルスクリプト的に解釈すると、
1行目の '[ -f  $prefix/custom.cfg ]' は コマンド '[' (コマンド test) で、 $prefix/custom.cfg が存在するなら返り値が 0 になり then 後が実行されます。存在しないなら返り値が 1 になり else 以下(今回は存在しないので何も実行されない)が実行されます。2行目の source は $prefix/custom.cfg を読み込み実行するというものです。おそらく $prefix/custom.cfg を作れば、grub.cfg に書いたのと同じように実行されるようになるのだと思います。

41_custom はもしかすると最初からあったファイルではなく、
update-grub2 でできたファイルでしょうか?

http://packages.ubuntu.com/maverick/grub-common のファイル一覧を見てもらうと分かるように grub-common パッケージのインストールによってインストールされたものと思われます。

オフライン

 

#6 2010-11-03 17:14:23

tetsuyakubo
メンバ
登録日: 2008-10-05

Re: /etc/grub.d/41_custom とは

回答いただきありがとうございます。
ご指摘の通り、

if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi

はgrub.cfgの仕様通り、
41_customの後にファイルが存在しないので、
/boot/grub/grub.cfg の「40_custom」の記述の後、つまり一番最後に書きこまれています。

then else のスクリプトの解説よくわかりました。ありがとうございます。感謝です。
custom.cfgを作れば何かが起きるということですね。
ただ、何を記述し、何を実行するためのファイル何でしょうか?調べてみたいと思います。
わかりましたら、ご報告いたします。

また、41_customは、
別PCで、パッケージのインストールによってインストールされたものであると確認できました。

オフライン

 

#7 2010-11-03 18:23:29

hir0
メンバ
登録日: 2008-09-28

Re: /etc/grub.d/41_custom とは

/etc/grub.d/41_custom
にコメントとか書いてないかな?

オフライン

 

#8 2010-11-03 20:42:02

tetsuyakubo
メンバ
登録日: 2008-10-05

Re: /etc/grub.d/41_custom とは

コメントは無いんですね。コレが.....
シェルスクリプトの記述だけです
以下の内容です。
------------------------------------
#!/bin/sh
cat <<EOF
if [ -f  \$prefix/custom.cfg ]; then
  source \$prefix/custom.cfg;
fi
EOF
-------------------------------------

オフライン

 

Board footer

Powered by FluxBB