systemd は、「/proc/cmdline」に従って「rootfs」をマウントします。

systemd は、「/proc/cmdline」に従って「rootfs」をマウントします。

設定

私はsystemdを使ってDebian 8(jessie / testing)amd64を実行しています。

btrfsファイルシステムを含むシステムパーティションには、次のレイアウトがあります。

/dev/sda1  
|-root  
|-root_snapshots/  
   |-snapshot#1
   |-snapshot#2

スナップショットから完全に起動するには、現在のサブボリュームを変更する必要があります。

  • /etc/fstabから
  • Grubコンソール(編集モード)

始めるとき。

質問

"/etc/fstab"を変更するには、実行中のシステム(フラッシュドライブなど)が必要です。これを避けたいです。

想像する

何かが実際に破損してスナップショット#1から起動する必要があると仮定すると、
grubコンソールでサブボリュームを変更し、正しいサブボリューム(ここではスナップショット#1)にrootfsをマウントした方がよいでしょう。

/etc/fstabが変更されていない場合、systemdは/etc/fstabで指定されたエントリからrootfsをマウントし続けます。 ->マウントするにはrootfsエラーが発生します。

質問

  • "/proc/cmdline" の "rootflags=subvol=" パラメータで rootfs をマウントするよう systemd に指示できます。
  • それともこの問題を回避する他の解決策がありますか?

答え1

私はこれが役に立つと思いました。 systemdが理解するカーネルコマンドライン引数のリストがあります。http://www.freedesktop.org/software/systemd/man/kernel-command-line.html
fstab=とrd.fstabオプションがあります。

ブールパラメータを使用します。デフォルトは「はい」です。 「いいえ」の場合、ジェネレータは /etc/fstab で設定されたすべてのマウントまたはスワップを無視します。 rd.fstab= の後には初期 RAM ディスク (initrd) だけが来、fstab= の後には基本システムと initrd の両方が続きます。

したがって、 grub/grub2 で root=/dev/required_dev fstab=no を設定すると(何を使用しているのかわかりません)、期待どおりに起動します。

関連情報