web-dev-qa-db-ja.com

Ubuntu 14サーバー版、シングルユーザーモードで起動する方法は?

私はLinuxの初心者で、基本的な知識があります。過去に、一部のLinuxディストリビューションでは、bootコマンドに「single」を追加するだけでシングルユーザーモードで起動するようにテストしました。しかし、Ubuntu 14のどこに追加すればよいかわかりません。bootコマンドは実際にはシェルスクリプトです。誰かが私を助けてくれますか?以下は、私がキャプチャしたいくつかのスナップショットです。

enter image description hereenter image description hereenter image description here

7
Just a learner

答えがわかりました。この行で:

linux /vmlinuz-3.13.0-32-generic root=/dev/mapper/ubuntu-vg-root ro

singleを追加すると、

linux /vmlinuz-3.13.0-32-generic root=/dev/mapper/ubuntu-vg-root ro single

次に押す Ctrlx。シングルユーザーモードになります。


これを永続的にするには、/etc/default/grubを編集して次の行を変更する必要があります。

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

GRUB_CMDLINE_LINUX_DEFAULT="text"

詳細はシステムによって異なる場合があります。重要なビットは、GRUB_CMDLINE_LINUX_DEFAULTtextに設定することです。これを実行したら、Sudo update-grubを実行します。次に再起動すると、テキストモードで起動します。

7
Just a learner

上記の回答は、Linux/GRUB2ホスト/ボックスをpermanent defaultオプションとしてシングルユーザーモードで起動する方法を説明しています。これを永続的であるが、デフォルトではない、メニューで選択可能なオプションにすることもできます。このための1つの手順(/boot/grub/grub.cfgの編集のように愚かではありません)は、/etc/grub.d/40_customにメニューエントリを追加することです(ただし、メニューの順序の@末尾を参照)。

1。(safety 1st!)現在の/etc/grub.d/40_customをバックアップします。 (IIUC、これはデフォルト/汎用GRUB2セットアップの一部です。)ここではrealファイルシステムバックアップが最適ですが、古いbackup-to-.0イディオム:

    FP_TO_BACKUP='/etc/grub.d/40_custom'
    BACKUP_FP="${FP_TO_BACKUP}.0"
    Sudo ls -al "${FP_TO_BACKUP}*"  # checking that you don't already have one
    cp "${FP_TO_BACKUP}" "${BACKUP_FP}"
    Sudo chmod a-wx "${BACKUP_FP}"  # non-executable files not used by GRUB2

2。選択したエディタで、現在の/boot/grub/grub.cfgおよび/etc/grub.d/40_customを開きます。 TRAMPを使用したEmacs では、次の文字列を使用して通常のセッションからこれを行うことができます(C-x C-fまたはM-x find-fileの後)

    /Sudo::/boot/grub/grub.cfg
    /Sudo::/etc/grub.d/40_custom

3。regexp = ^menuentryを使用してファイルの先頭から検索し、grub.cfgで現在のデフォルトのメニューエントリを見つけます

4。そのメニューエントリのスタンザ全体(ターミナル '}'を含む!)を40_customにコピーします

5。/etc/grub.d/40_customでは、

5.1。menuentryにわかりやすいタイトルを付けます。たとえば、すでに持っているものに(console)を追加します。

5.2。少なくとも今のところ、set rootlinuxinitrd、および2つの間にあるecho行。 (説明コメントを追加することもできます。)

5.3。重要な部分:linuxで始まる行の最後のコード(通常はroの後)をsingleに置き換えます。例えば。

- linux /vmlinuz-3.16.0-4-AMD64 root=/dev/mapper/LVM2_crypt-root ro   nomodeset nouveau.modeset=0
+ linux /vmlinuz-3.16.0-4-AMD64 root=/dev/mapper/LVM2_crypt-root ro single

これにより、新しいメニューエントリは、以前のメニューエントリよりもはるかにシンプルになります。

menuentry 'LMDE 2 Cinnamon 64-bit (console)' {
    set root='hd0,msdos3'
    echo    'Loading Linux 3.16.0-4-AMD64 ...'
    linux   /vmlinuz-3.16.0-4-AMD64 root=/dev/mapper/LVM2_crypt-root ro single
    echo    'Loading initial ramdisk ...'
    initrd  /initrd.img-3.16.0-4-AMD64
}

5.3。40_customを保存して、エディターを終了します。

6。忘れないでくださいSudo update-grub

7。再起動:最初のGRUB2ブート画面の最後に、永続的なアイテム/メニューエントリが表示されます。

メニュー順序に関する注意:新しい項目は、生成された(update-grubによって)GRUB2ブートメニューの最後に表示されます。これは、この手順が編集するためです(既存の)/etc/grub.d/40_custom。ファイルの数値プレフィックスを変更することにより、メニュー内のアイテムの位置を変更できます。一般的なGRUB2 /etc/grub.d/には、次のようなファイル名が含まれます。

  • 00_headerおそらく編集したくない
  • ...テーマとその他のメニュー装飾が続く
  • 10_linux
  • ...続いてLinux関連のメニューエントリ
  • 30_os-prober
  • ... Linux以外のOSが起動する(例:Windows)
  • 40_custom
  • ...続いて、以前の機能ビンに分類されないカスタムメニューエントリ

しかし、上のスキーマを思いのままに破壊することができます。例えば。、

  • カスタムメニューエントリを他のメニューエントリの上に表示するには、プレフィックスに10未満の数値を付けます。たとえば、新しいファイルを作成します09_custom
  • linuxのメニューエントリの後で、Windowsのメニューエントリの前にカスタムメニューエントリを表示するには、10 <数値のプレフィックス<30を指定します。たとえば、新しいファイルを作成します29_custom

ご了承ください

  • 特定の位置を達成するために使用する必要がある正確な数値プレフィックス値は、ホスト/ボックスですでに使用されている値に依存するため、ls -al /etc/grub.d/を忘れないでください
  • 新しいファイルを作成する場合は、update-grubの前に実行可能にする必要があります。
1
TomRoche