私は使うGRUB v2私のスタートアップマネージャーとして。
私が望むたびに他のもので再起動OS(またはメニュー項目(例MemTest
))では、次のコマンドを使用します。
# grub-reboot n
n
数字はどこにありますか(0から始まる)必須メニュー項目。
たとえば、
したがって、上記の例で再起動するには、Squeeze Linux
次のように入力します。
# grub-reboot 4
ただし、複数のコンピュータおよび/または複数のオペレーティングシステムを使用している場合覚えにくいその項目の番号を確認するには、メニューを再起動する必要がありました。
わかりましたアイテムが保存されます。/boot/grub/grub.cfg
ただし、「submenu」という行では、menuentry
GRUBがより複雑になり(確かに高度になると)、アイテムの数を計算するためにファイルを読むのが少し難しくなります。
実用的な方法はないでしょうかすべてのアイテムの数を学ぶGRUB v2ブートメニュー?
答え1
私はこれを使うコマンドライン/boot/grub/grub.cfg
これだけ番号付きアイテムを表示、1行に1つずつ:
sed ':again;$!N;$!b again; :b; s/{[^{}]*}//g; t b' /boot/grub/grub.cfg | cut -c -60 | grep -e "^menuentry" -e "submenu" | nl -v 0 | grep -e "menuentry" -e "submenu" --color
結果(以前のグラフィック例とは異なります。申し訳ありません):
私が好む方法は、次のように追加することです。エイリアスまたは機能。たとえば、次の関数として使用されます~/bashrc
。
# List entries numbers for grub-reboot:
function GRUB-ListMenu() {
sed ':again;$!N;$!b again; :b; s/{[^{}]*}//g; t b' /boot/grub/grub.cfg | cut -c -60 | grep -e "^menuentry" -e "submenu" | nl -v 0 | grep -e "menuentry" -e "submenu" --color
}
説明する:
sed
コマンド中かっこ間のすべての行を削除({
および}
)に対応するのでドロップダウンサブメニュー。- この
cut
コマンドは、結果を得るために最初の60文字だけを保持します。読みやすさユーザー向け。 - この
grep
コマンドは、次に対応する行のみを保持します。実際のメニュー項目:menuentry
そしてsubmenu
。 nl
コマンド計算各行(もちろん0から始まり)。grep
必須ではない追加のコマンドがあります。色結果;-) 。
最適化の提案を歓迎します。
Ubuntu Desktop、Server、v12、v14、Kali、およびBackTrackで実行されているGRUB v2.02〜beta2-9ubuntu1でテストされました。他のLinuxでの動作に関するフィードバックが推奨されます(この記事に追加します)。