Ubuntuを「電力損失防止」にするにはどうすればよいですか?


18

私は毎日「キオスク」使用のためにシステムを無人で実行するのが好きです。

ただし、誰かが以前に適切なシャットダウンを行わずに、いつでもシステムの電源を切ることができます。デフォルトでは、Ubuntuは電力損失によってシャットダウンされることは想定されていません。停電後の再起動後、fsckを実行してファイルシステムを確認し、fsckが終了後にシステムに再起動するように指示する場合があります。そのため、構成データが破損していなくても、停電後にマシンが正常に起動しない場合があります。そこで、いくつかの回避策をテストしました。

  1. ルートマウントのfsck優先度を0fstabルートエントリの最後のフィールド)に変更して、fsck電源が切れるたびに実行されないようにします。ただし、ルートマウントされた読み取り専用でシステムが起動する場合がありますが、これは多くのサービスでは想定されておらず、グラフィカルログインではなくコンソールログインプロンプトが表示されます。

  2. 置き換えerrrors=remount-roによってerrors=continue。これは、非連続的なファイルシステムによってさらなるデータ損失が発生する可能性があるという悪い印象を与えます。ただし、fsck再度有効にすると、電源喪失後のシステムの起動の可能性が向上します。だから私は1)を落としました。

  3. ブートに失敗した後、通常のデフォルトオプションタイムアウトを使用するようにgrub2を再構成します。そのために、私はに追加GRUB_RECORDFAIL_TIMEOUT=0しました/etc/default/grub

ただし、これらのハッキングがシステムの電力損失の証拠になるかどうかを知ることは困難です。何か案は?もう1つできますか?


1
私はあなたが達成しようとしているものを本当に得ていません。「電力損失防止」とはどういう意味ですか?少しクリアできますか?
アンドレスタネク

明確な紹介を追加しました。私は、電力損失後、保守の相互作用なしに通常に再び速く立ち上がるシステムが好きです。
ドロヌス

回答:


16

キオスクアプリケーションの場合、読み取り専用ルートパーティションを使用して問題を解決します。さらに、ユーザーが行った変更や保存した変更は、次回の再起動時に元に戻されます。

ほとんどのアプリケーションのニーズに書き込み可能なルートを提供するために、overlayfsを使用して、読み取り専用パーティションを書き込み可能なram tempfsでオーバーレイできます。

https://help.ubuntu.com/community/aufsRootFileSystemOnUsbFlashの下部に、このようなセットアップの作成に役立つスクリプトがあります。スクリプトには、これをセットアップするための指示が含まれています。

  • ファイルを/ etc / initramfs-tools / scripts / init-bottom / root-roに配置します
  • sudo chmod 0755 root-ro
  • sudo update-initramfs -u

追加GRUB_RECORDFAIL_TIMEOUT=0/etc/default/grubて実行することをお勧めしsudo update-grubます。そうしないと、タイムアウトせずにブートメニューが表示される場合があります。

その後、再起動します。その後、マシンは読み取り専用モードで起動しますmount。これはで確認できます 。適用された変更は、次回の再起動時に消えます。変更、ソフトウェアのインストール、アップデートなどを行うには、GRUBメニューに入り、を押しeてブートコマンドラインを変更し、disable-root-ro=trueカーネルで始まる行に追加するだけです。F10を押して起動を続行します。その後mount、通常どおりルートが書き込み可能にマウントされていることを確認するために使用できます。変更を加えて再起動すると、システムは再び読み取り専用になります。


+1は、読み取り専用のルートファイルシステムが最初に思いついたものだからです。
ネイサンオスマン

これは実際に非常にうまく機能します。ただし、読み取り/書き込みマウントの後、システムを再度クリーンアップして、問題がないことを確認する必要があります。GRUBフェイルセーフ、きれいに閉じられていないこと、またはfsckが表示されていないことを示すブラウザーは、永久に保存され続けるでしょう。その場合は、もう一度読み取り/書き込みをリブートし、再度完全にシャットダウンする必要があります。
ドロヌス

9

クリーンでない再起動(電源喪失やリセットボタンの押下、カーネルパニックなど)の後、fsckでパーティションを修復するために「y」を押すように要求するシステムは起動しません。

これを避けたい場合は、/ etc / default / rcSを編集して変更します:

FSCKFIX=no

に:

FSCKFIX=yes

これにより、プロンプトが表示されることなく、この修復が自動的に実行されます。

欠点は、データを失う可能性があり、バックアップされていない重要なものがある場合は、最初にハードドライブを取り出してクローンを作成することです。

たとえば、ハードドライブコントローラーに障害があり、fsckがパーティションを壊れていると誤って識別して修復しようとすると、データ損失が発生する可能性があります。私はこれを自分で経験したことはなく、過去7年ほどで1000台近くのサーバーを扱ってきましたが、それでも心に留めておくべきことです。


7

今日の時点で、キオスクのための読み取り専用、パッケージをインストールすることができます解決策1 overlayroot

sudo apt-get install overlayroot

承認された回答のような完全なソリューションを簡単に提供します。また、有益なコマンドを可能にします

sudo overlay-chroot

これにより、前の読み取り専用ベースディスクがにマウントされているシェルにログインします/。その後、保護されたシステムに変更を加えることができapt-getます。たとえば、以前の読み取り専用ディスクにパッケージをインストールするために使用できます。ただし、シェルを終了した後、RAM上の一時的に上書きされたファイルが新しくインストールされたファイルを隠す場合があるため、再起動を強くお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.