|||||||||||||||||||||

なんぶ電子

- 更新: 

GRUBコンソールからDebianを起動

Debian

筆者は今までDebian(Linux)の起動時に何かのきっかけでgrub>というコンソール画面になると、一度電源を切ってしまっていたのですが、スマートではないと思って学習しました。

GRUBコンソール

まずその画面に移行する原因ですがgrubの選択画面でCを押すとgrub>となります。この画面はGRUBコンソールと呼ばれているそうです。

先に出ているGRUBのメニュー画面からeを押すと各エントリーの修正画面に以降します。この時はCtrl+XかF10ボタンで現在の設定値で実行。Ctrl+CかF2ボタンでコマンドラインへ以降、ESCボタンで前の画面に戻ります。

GRUBコンソールからメニューに戻る際は、「normal」とコマンドを入力します。また、「reboot」とするとそのままPCをリブートします。他、利用できるコマンドはGRUBコマンドに載っています。

GRUBコンソールからDebianを起動

GRUBコンソールからDebianを起動することもできます。その手順を紹介します。

  1. デバイスとパーテーションの確認

    まずGRUBにLinuxカーネルが存在するデバイスとパーテーションを設定します。GRUBはLinuxとはまったく違うものでそれとは違ったデバイスとパーテーションの認識をしています。

    それを確認するのはlsコマンドが使えます。これはよくあるLinuxのlsコマンドを実行しているわけではなくGRUBのコマンドです。

    grub> ls
    
    (hd0) (hd0,msdos5) (hd0,msdos1) (fd0)

    hd0やfd0がデバイス名、msdos5、msdos1がパーテーションとなります。

    Debianにおいてsdaがデバイス、sda1の1がパーテーションを示しているのに似ているかもしれません。

    sda sda1 sda5
  2. デバイスとパーテーションの選択

    GRUBにデバイスとパーテーションを設定するには次のようにします。ここでは(hd0,msdos1)にLinuxカーネルが存在する前提です。

    コマンドの入力中、キーボード配列が日本語配列でないと思います。英数の配列は印字通りですが、そうでない記号キーで使いそうなものをリストアップしておきます。

    目的の文字押すキー
    (カッコ始SHIFT+9
    )カッコ終SHIFT+0
    =イコール
    -ハイフン
    _アンダーバーSHIFT+ほ
    /スラッシュ/(そのまま)
    set root(hd0,msdos1)
    または
    set root=hd0,1
  3. カーネルの選択

    起動に利用するカーネルの選択をします。カーネルイメージへのパスと、Debianのルートフォルダがあるパーテーション、ro(リードオンリー)オプションを指定します。これはlinuxコマンドの後に付与します。

    GRUBはファイルシステムを読み込めるので、先のデバイスとパーテーションの設定が正しくできていればTABキーで入力補完が可能です。TABキーでの入力補完は候補がひとつの場合は自動でセットされます。

    grub> linux /boot/vm (タブキー)
    利用可能なファイル一覧
    
    vmlinuz-4.9.0-7-686-pae vmlinuz-4.9.0-8-686-pae
    grub> linux /boot/vmlinuz-4.9.0-8-686-pae root=/dev/sda1 ro

    ここではDebianのルートデイレクトリのある場所を通常のパスで指定しています。おそらく最近のGRUBの設定では、この指定がUUIDになっていると思います。前述のようにGRUBの最初のメニューからeボタンを押して設定を読みだしてみるとそれが確認ができます。

    UUIDがわかればその記述でも指定が可能です。その際はroot=UUID=[UUIDの値]とします。

  4. 初期RAMディスクの指定

    初期RAMディスクは起動中に一時的に利用される最小のLinuxシステムです。この設定はinitrdで指定します。ちなみにタブキーでの補完はコマンドでも可能です。

    カーネルイメージが複数ある場合は、そのバージョンに合わせて初期RAMディスクを指定してください。また、筆者の場合はDebianでしたので、初期RAMデイスクはinitrdでしたが、initramfsファイルを指定する場合でもコマンドはinitrdです。

    grub> ini (タブキー)
    利用可能なコマンド一覧
    
    initrd initrd16
    grub> initrd /boot/initrd.img-4.9.0.8-686-pae

    以上の設定が終わったら、bootコマンドを入力します。これでDebianが立ち上がってくるはずです。

    grub> boot

    OSが正常に起動されず、次のメッセージが表示された場合はどこか設定値が間違っています。エラーは上部の方に出ていると思いますが、linuxコマンドのrootオプションで指定した場所が見つからないとおきるようです。

    Enter 'help' for a list of built-in commands.
    (initramfs)

まとめ

GRUBコンソールに入ってしまっても手動でDebianを起動することができます、normalコマンドで戻るかrebootコマンドを実行してしまう方が早いと思いますが。ただ、カーネルアップデート後に前のバージョンで起動したい時はこの方法で指定するのが、設定ファイルである/boot/grub/menu.lstやgrub.cfgを触るより早いと思います。


参考にさせていただきましたサイト一覧です。ありがとうございました。

筆者紹介


自分の写真
がーふぁ、とか、ふぃんてっく、とか世の中すっかりハイテクになってしまいました。プログラムのコーディングに触れることもある筆者ですが、自分の作業は硯と筆で文字をかいているみたいな古臭いものだと思っています。 今やこんな風にブログを書くことすらAIにとって代わられそうなほど技術は進んでいます。 生活やビジネスでPCを活用しようとするとき、そんな第一線の技術と比べてしまうとやる気が失せてしまいがちですが、おいしいお惣菜をネットで注文できる時代でも、手作りの味はすたれていません。 提示されたもの(アプリ)に自分を合わせるのでなく、自分の活動にあったアプリを作る。それがPC活用の基本なんじゃなかと思います。 そんな意見に同調していただける方向けにLinuxのDebianOSをはじめとした基本無料のアプリの使い方を紹介できたらなと考えています。

広告