
Ubuntu日本語フォーラム

ログインしていません。
Grub2の起動メニューから不要なカーネルのエントリを消す方法は、
情報も多く、色々調べて、理解しましたが、
そもそも、Grub2の起動メニューに登録されるエントリーの総数を制限する方法はないのでしょうか?
以前は、「startupmanager」で エントリー総数数を制限できたんですが、
現バージョンではなくなってしまいました。
それとも上限は決まっているのでしょうか?
ご指導よろしくお願いいたします。
オフライン
synapticパッケージマネージャを起動し「クイック検索」にて「Linux kernel image」でサーチして下さい。
サーチ後、インストール済みとインストール可能なカーネルがヒットしますので
アンインストールしたいカーネルのチェックを外し「適用」を実行すると不要なカーネルが削除されます。
その後、システムを再起動するとGRUB2の起動画面から不要なカーネルが削除されているはずです。
因みに、最新のカーネルの動作確認が良好であるなら、それ以前のカーネルは削除しても構いませんが
アップデード直後は、動作確認が不十分かと思われますので確認が取れるまでは、念のため直近のバージョンにあたるカーネルは残しておいたほうが無難です。
オフライン
指導はできませんが、
表示されるメニューの内容は、/etc/grub.d/以下のファイルで決定されるので貴方の好きなように変更すればいいです。
オフライン
update後に、カーネルのエントリを消す、及び、不要なカーネルを削除する、
以上2点は、情報も多く、承知しております。
ここでの質問は、
上記、方法以外に、
起動メニューに登録されるエントリーの総数を事前に制限する方法です。
以前は、「startupmanager」で エントリー総数を制限できたんですが、
現バージョンではなくなってしまいましたので、それに変わる方法を探しています。
grub2の、/etc/grub.d/以下のファイルのカスタマイズ方法にも、それは無いように思われます。
/etc/grub.d/10_linux あたりにその記述があるような気もしますが。。。。
この先、アップデート毎に、無制限にエントリが増え続けて行くとは思われないのですが、
その上限は、デフォルトで決まっているのでしょうか?
それとも、自分で消していく以外に方法は無いのでしょうか?
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
tetsuyakubo による投稿:
この先、アップデート毎に、無制限にエントリが増え続けて行くとは思われないのですが、
その上限は、デフォルトで決まっているのでしょうか?
アップデート、アップグレードではエントリの増加はありません。パーティションを準備しインストールをすれば1エントリが増加します。上限はHDDの数によります。
tetsuyakubo による投稿:
それとも、自分で消していく以外に方法は無いのでしょうか?
インストールしたものは自信で削除するのが定説と思いますが。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
横から お邪魔してすみません。
興味深く こちらのスレッドを眺めてました。
「Linux kernel image」や
「以前は、「startupmanager」で エントリー総数数を制限できた」
は、大変 参考になりました。
「startupmanager」で エントリー総数を制限できた」は・・
制限をかけた数以上に 登録されないという制限でしょうか?それとも制限数に達すると 自動的に一番下の 古いエントリーから 消えていくものなのでしょうか??
update後に、カーネルのエントリを消すは、自身で手動で は 賛成ですが・・・・
例えばの 話で済みません・・USB-HDDにインストールしたGRUB2を採用したUBUNTUを 複数のパーテーションを切って 複数のOSが起動できる状態にしたパソコンにつないだ場合。とか そのUSB-HDDを 又 複数のパソコンに つないで起動をさせようとした場合。
つないだ パソコンの それぞれの 環境のエントリがどんどん追加されていきますが・・それを制限する方法はあるのでしょうか?
オフライン
kiyop様 kaznon様
ようやく、質問の真意をわかっていただける方が現れてうれしいです。
kiyop様
kaznon による投稿:
アップデート毎に・・・エントリが増え」るってのは、
カーネルのバージョン(?)アップ(アップデート)があって新しいバージョンのカーネルが増えて、
古いカーネルを消していないと、エントリの数が増えるという意味だと思いますよ。
その通りです。理解していただきありがとうございます。
kaznon様
kaznon による投稿:
「startupmanager」で エントリー総数を制限できた」は・・
制限をかけた数以上に 登録されないという制限でしょうか?
それとも制限数に達すると 自動的に一番下の 古いエントリーから 消えていくものなのでしょうか??
grub2以前は「startupmanager」で出来ました。
もっと細かい設定が出来たんですよ。。。
そこで設定した総数を超えると、
古いエントリーから 自動で消えていきました。
現状の「startupmanager」は「デフォルトのオペレーティングシステム」の変更は出来ますが、
その他の機能は無くなってしましました。
「startupmanager」=grub設定ツールなので、
gru2になったら変わってしまうのは当然ですが。。。
kaznon による投稿:
例えばの 話で済みません・・
USB-HDDにインストールしたGRUB2を採用したUBUNTUを 複数のパーテーションを切って
複数のOSが起動できる状態にしたパソコンにつないだ場合。
とか そのUSB-HDDを 又 複数のパソコンに つないで起動をさせようとした場合。
つないだ パソコンの それぞれの 環境のエントリがどんどん追加されていきますが・・
それを制限する方法はあるのでしょうか?
結局、特殊な場合のgrubメニューのエントリー数の制限のことかと思いますが、
それこそ私が質問していることですので、逆に私が聞きたいですね。(笑)
3988様
どうも質問の真意が伝わっていないようです。
カーネルのアップデートがあった場合、
grub2の起動メニューに古いカーネルのエントリーが一つずつ増えていく、
あらかじめその総数の上限を設定する方法を、お聞きしています。
以前は、「startupmanager」で、
エントリー総数の設定上限を超えると自動的に古い物から消してくれたんですよね。
やはり自分で消すしかないんでしょうか。
放っておくと、どんどん増えていくんでしょうか?
自分で消す方法も理解していますし、別に困っているわけでもありませんが、
単純な疑問として質問させていただいております。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
tetsuyakubo による投稿:
どうも質問の真意が伝わっていないようです。
カーネルのアップデートがあった場合、
grub2の起動メニューに古いカーネルのエントリーが一つずつ増えていく、
あらかじめその総数の上限を設定する方法を、お聞きしています。
以前は、「startupmanager」で、エントリー総数の設定上限を超えると自動的に古い物から消してくれたんですよね。
やはり自分で消すしかないんでしょうか。
放っておくと、どんどん増えていくんでしょうか?
自分で消す方法も理解していますし、別に困っているわけでもありませんが、
単純な疑問として質問させていただいております。
表示数を制限すると制限数によっては困りませんか?
例えば、リカバリーモードとか見えなかったりカーネルがアップデートされたりした場合に見過ごしてしまったりする恐れがあると思います。
別に、そんなの気にしないと云うのであれば構いませんが万が一のことを思えばあまりおすすめできません。
あと、以前は設定できたということですがそれは、恐らくGRUB Legacyの環境において設定可能だったのではないかと思います。
あのころは、menu.lstを編集することにより設定を変更しておりました。
それをGUIを使って容易にできるようにしたのがstartupmanagerでした。
他にもKDEのKgrubエディターなどもありました。
ところが、GRUB2に移行後は環境が変わった為にstartupmanagerでの細かい設定が出来なくなったのだと思われます。
まあ、言い方を変えるなら開発が追いつかないのかも知れないですね。
どうしても、手動で表示制限を加えたければ /etc/default/grubか/etc/grub. 以下のファイルで設定が可能かと思われます。
ただし、ルート権限で設定変更を行わなくてはならないので十分に注意して下さい。
個人的には、カーネルアップデート後に動作確認をして良好な動作環境が得られれば古いカーネルを順次削除して行くほうが安心だと思います。
オフライン
入力ミスがあったようです。
以下が正しい表記です。
/etc/grub.d
オフライン
kiyopさん お久しぶりです。
tetsuyakuboさんの立てた スレッドで大変勉強させていただきました。
結論 だけではなく 下記解説 大変参考になりました。 ありがとうございます。
kiyopさん による投稿:
grub2でデフォルトの(弄っていない)場合、
起動しているUbuntuの/bootパーティションのカーネルについてのエントリは、
/etc/grub.d/10_linux
が作成していると思います。
起動しているUbuntuの/パーティション以外のパーティションのOSのエントリは、
/etc/grub.d/30_os-prober
が作成していると思います。
オフライン
#6で、アップデート、アップグレードではエントリの増加はありません。と記述しましたが、通常はカーネルが新しくなるとエントリの増加があります。当方で/etc/grub.d/10_linuxの中でエントリされるのは最新のもののみと制限していました。これが通常と勘違いをしており大変失礼しました。
エントリ数の制限については詳細は不明ですが/etc/grub.d/10_linuxのなかで可能な気がします。
オフライン
tnc様 ありがとうございます。
正論ですね。わかりやすい解説本当にありがとうございます。
現状、私はwinやら、grub4dosや、PLOP、syslinux、など複数のOSを
チェーンロードしたりしているので、
エントリーが増えてディスプレーをスクロールしないと全体が見れなくなってしまいますので、
エントリーを減らしたいんですね。
3988様 フォローありがとうございます。感謝です。
kiyop様 ありがとうございます。
/etc/grub.d/10_linux で
古いカーネルのエントリに付いては
/etc/grub.d/10_linux あたりを見ているんですが
スキルがないので、私にはよく分かりません。
単純な設定ですし、GRUB Legacyでは可能だったので、
できないはずはないと思ったんですが、、、、、
10.04にアップグレードして、気長に勉強したいと思います。
何か、情報ありましたら、これからもお願いいたします。
オフライン
>10.04にアップグレードして、気長に勉強したいと思います。
と書きましたが 10.10のまちがいです。
訂正です。
オフライン
>何か、情報ありましたら、これからもお願いいたします。
取り敢えず、実現可能な方法を。
*** ./10_linux 2010-10-12 20:32:02.594963000 +0900
--- ./10_linux.patch 2010-10-13 21:48:37.270965000 +0900
***************
*** 115,120 ****
--- 115,122 ----
done`
prepare_boot_cache=
+ #custam 1line
+ #Target
while [ "x$list" != "x" ] ; do
linux=`version_find_latest $list`
echo "Found linux image: $linux" >&2
***************
*** 150,153 ****
--- 152,160 ----
fi
list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`
+ #custam if - fi 4line
+ hoge=$(expr $hoge - 1)
+ if test $hoge -eq 1 ; then
+ list=""
+ fi
done引用符で囲んだものを「ホームディレクトリ」にテキストファイル名「patch」で保存。
端末から
$ cd /etc/grub.d && sudo patch < $HOME/patch && cd
「patching file 10_linux」と表示されれば成功です。
次に、以下のコードをテキストファイルに保存して「右クリック」から「プロパティ」、「アクセス権」タブを開き「プログラムとして実行」にチェックを入れて閉じます。
後はファイルをダブルクリックすると「スライドバー」が現れるので表示させたい数を指定してOKを押して下さい。
数は最小数1、最大数カーネルの総数が表示されます。
細部は確認していませんが問題ないと思います。
希望が有れば細かな所でも、別な所でも好きにカスタマイズして下さい。
#!/bin/sh TITLE="カーネルエントリー" TEXT="表示させる総数を指定して下さい" LIST='/etc/grub.d/10_linux' num=$(ls /boot |grep "vmlinuz-*"|wc -l) TARGET=$(grep '#Target' /etc/grub.d/10_linux) scale=$(zenity --scale --title $TITLE --text $TEXT --value $num --min-value 1 --max-value $num);echo $scale cat $LIST|sudo sed "s/$TARGET/hoge=\$\(expr $scale + 1\) \#Target/g" -i $LIST sudo update-grub
オフライン
ありがとうございます。
「patch」は「10_linux の書き換え」をするファイルですね。
よく勉強して、カスタマイズしたいとおもいます。
感謝です。
オフライン
今更ながらにスレッドを読み返してみました。
tetsuyakuboさん、GRUB2が採用された当初「startupmanager」は殆ど飾り程度でしたがバージョンアップで多少のカスタマイズが可能になっています。
今後は以前と同様の機能が復活する可能性は高いと思います。 もしくは新たなツールが出るかも。
kaznonさんへ、
OSがインストールされたUSB-HDD繋いだ状態でupdate-grubを実行してエントリーが増えるのを制御するのは数を調整するのではなく、各パーティションの最新のカーネルを一つだけ表示させるのが現実的(楽であり環境によるエラーを回避)かもしれません。
表示が制限されるだけで、実際のカーネルは存在します。もしもの時は何時でも存在するカーネルを呼び出せます。
#あーっウザい。typoすると顔文字が出てくる、元に戻そう。
現在ではgrub.d/30_os-proberに細工するか、オリジナルを残して調整した物と入れ替える事になるでしょう。
これも将来の「startupmanager」が解決してくれるかも。
因みに10_linuxの変更点を記しておきます。シンプルです何かの参考に。
「カウンター(整数値)」 <---表示したいカーネルの数をカウンターに使用 ループの外に#Target行を追加 while [ "x$list" != "x" ] ; do <--- ループの条件式。 $listに存在するカーネルの名称が全て入っている。 ループは$listが空になると終了する || || (ループ) || <--- デフォルトの記述 $listの先頭?(最後尾かも)に格納されているカーネル || バージョンのエントリーをgrub.cfgに書き込む。 || || list=`echo $list |tr ' ' '\n' ~~ <--- デフォルトの記述 $listに格納されている先頭?のエントリーを一つ消す。 ---------------------------------------------通常はここまで、以下を追加------------------------- hoge=$(expr $hoge -1) <---「カウンター(整数値)」から1を引く。 if test $hoge eq 1 ; then <--- もしカウンターの数値が1ならば list="" <--- 「list」の中身を空に。 fi ---------------------------------------------追加ここまで-------------------------------------- done <--- while は最初の条件式が成立するまで while ~ done 間を繰り返す。
カウンター値は[zenity]のスライドバーを使用して[sed]コマンドで書き込み最後にupdate-grubしています。
30_os-proberにも応用が効くかも? >> kaznonさん、こう言う弄りも楽しいと思うけど、どう???
オフライン
hir0さん お久しぶりです。
先ずはお礼で・・ 私の質問に答えていただきまして 大変感謝いたします。
シンプルです何かの参考に
・・と親切に解説つきで 説明いただきました・・・が・・・
残念なことに いま2 3度見ても・・理解できない状況です。
ウィンしか 使ったことがないものが Linuxに 興味を持ち そしてスキルを上げるには・・・何から やっていけばいいのか・・
又、又 思い悩んでおります←独り言です。
これからも よろしくお願いします。
オフライン
hir0様 kaznon様
ふとした疑問から始まったこのスレッドでしたが、色々盛り上がって、いいですね。
「startupmanager」が進化して、簡単にできるようになることは、いいことですが、
hir0様のように、手作りのバッチファイルでできるようになると、おもしろいでしょうね。
努力したいと思います。ありがとうございます。
オフライン
tetsuyakuboさん による投稿:
hir0様 kaznon様
ふとした疑問から始まったこのスレッドでしたが、色々盛り上がって、いいですね。
いえいえ こちらこそ tetsuyakuboさんの立てたスレッドで 又 勉強しなくては・・・なんて 気持ちが湧き上がってきた感じです。
hir0さん tetsuyakuboさん そして 私と こちらの フォーラムのメンバーに登録した日が近いですね!
これも何かの縁で←勝手に思ってますが・・・
私は高齢の為 脳みそがかたく 一番 スキルアップが遅いのですが・少しずつでもアップできるよう・・
・これからも よろしくお願いします。
オフライン