質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

2回答

390閲覧

ラズパイをログインする前に電源遮断する是非

ALHIRU

総合スコア11

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2022/05/08 06:55

ラズパイがログイン時に Login incorrectが出てログインできなくなりました。

前回の起動ではSSHを設定してリモート接続の実験をやりました。
これが原因でログインできなくなっているのか、それとも単にパスワードの記録間違いなのか判別つきません。

SDカードを外してcmdline.txt の編集をしようと思いましたが、ログインしていないのでshutdownコマンドの入力のしようがありません。

この場合電源を強制的に外してSDカードを取り出すのは安全なのでしょうか?
それともシステムの破損覚悟でやらなければならないのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

バックグラウンドで動いているサービス次第でしょうか。

初期インストール状態の場合、ログインプロンプトを出す時点で動いていそうなのは
Raspberry Pi OS Lite(32bits)で以下のようです。

└─system.slice ├─systemd-timesyncd.service │ └─623 /lib/systemd/systemd-timesyncd ├─dbus.service │ └─264 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslo> ├─hciuart.service │ └─416 /usr/bin/hciattach /dev/serial1 bcm43xx 3000000 flow - b8:27:eb:2a:fd:57 ├─udisks2.service │ └─327 /usr/libexec/udisks2/udisksd ├─ssh.service │ └─392 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups ├─avahi-daemon.service │ ├─262 avahi-daemon: running [raspberrypi.local] │ └─267 avahi-daemon: chroot helper ├─userconfig.service │ ├─377 /bin/sh -e /usr/lib/userconf-pi/userconf-service │ └─923 whiptail --inputbox Please enter new username: 20 60 ├─wpa_supplicant.service │ └─330 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant ├─triggerhappy.service │ └─322 /usr/sbin/thd --triggers /etc/triggerhappy/triggers.d/ --socket /run/thd.socket --user nobody --de> ├─systemd-logind.service │ └─317 /lib/systemd/systemd-logind ├─polkit.service │ └─376 /usr/libexec/polkitd --no-debug ├─cron.service │ └─263 /usr/sbin/cron -f ├─systemd-udevd.service │ └─121 /lib/systemd/systemd-udevd ├─rsyslog.service │ └─294 /usr/sbin/rsyslogd -n -iNONE ├─bluetooth.service │ └─443 /usr/libexec/bluetooth/bluetoothd ├─systemd-journald.service │ └─100 /lib/systemd/systemd-journald ├─dhcpcd.service │ ├─464 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 │ └─630 /usr/sbin/dhcpcd -w -q └─rng-tools-debian.service └─367 /usr/sbin/rngd -r /dev/hwrng

GUI付きの場合はもっと多くのプロセスが動いているとは思いますが、
cronに何も設定を入れていない場合、ログインプロンプトを出した後、
ネットワークのセットアップが完了した後はほぼユーザーの入力待ちになって
ほとんどのバックグラウンド処理はほぼアイドル状態になるとは思います。

「システムの破損」とはどういう状態を指すのかというとおおむねディスク上のファイルが中途半端に切り取られたファイル破損が発生し、そのファイルを必要とするプロセスがそのファイルを参照してエラーになったりすることです。
ファイルが中途半端に切り取られたファイルが発生する要因はディスクを更新中のプロセスを電源断などで止めてしまうことで発生します。

今どきのファイルシステムでは、ファイルの破損は極力該当のファイルだけにとどまるような設計になっています。
(FATなどの古いファイルシステムでは局所的なデータの書き損じであってもファイルシステム全体のインデックスを壊してしまい、多岐にわたるファイルが参照できなくなったりする可能性がありました。)

そしてアイドル状態のバックグラウンドサービスがディスクに書き込むような挙動はおおむね外部からのイベントまたはタイマーなどで呼び起こされたときにログに何かを書き足すぐらいです。
そしてログが壊れたぐらいでは起動しなくなるといったことは起こりません。

つまり、ログイン待ちプロンプトに入って10~20秒も(非力なものだと1分くらいかかるものはある)すればほぼほとんどのプロセスはアイドリング状態になるはずで、その状態の電源断で破損するファイルはログなどあまり重要じゃないものにとどまります。また、RaspiOSはリブート時にfsチェックを行い破損検出したファイルをより安全な方向に修正します。

ただし、SDカードへの書き込みを減らすというのは重要で、そのような設定やアプリを入れることはできるだけ避けましょう。SDカードへの大量書き込みを続けるだけでSDカードの寿命は急速に短くなります。
「SDカードの寿命が尽きた=システムの破損」なので
そうなるまでの期間を長く保つために書き込み量を減らす工夫が必要です。
RaspiOSはデフォルトでかなり書き込み量を控えめにセットアップされてはいます。
大量のログを残したいならUSBメモリなどに書くなどの工夫でシステムの破損を回避することができます。

あとはシステム領域のリードオンリー化という方法があるんですが、こちらは運用上の不都合とすり合わせが必要だしそのセットアップには経験と試行錯誤が必要になるので注意が必要です。

参考情報ですが、ALPINE-LINUXというディストリビューションのRaspiberryPi向けリリースであれば「ディスクレスモード」というモードがデフォルトでセットアップされていてシステム領域がリードオンリーになります。
この「ディスクレスモード」では特定のコマンドをたたかない限りシステム領域に書き込みを行うことはありませんので特定のコマンドを実行中でなければいつ電源を落としても破損することはありませんし、SDカードの寿命も長く保てます。(そのかわりその特定のコマンドをたたく前に行った変更はすべて忘れてしまいます)

結論まとめ

  • 誰もログインしていない状態で十分な時間をおいてアイドル状態になったのを見計らって電源を切るとおおむね困ったことにはならない
  • Raspiの設定にもよるけどディスクアクセスLEDをピカピカさせておくとアイドル状態が分かりやすい
  • それでもシステム破損が絶対おこらないかというと保証することはできない(別の回答の通り)
  • SDカードの寿命=システムの期待寿命なので積極的にディスク書き込みするようなバックグラウンド駆動アプリや設定を入れないことは重要
  • 不意な電源断でも極力壊れないようにしたければシステム領域がリードオンリーになる仕掛けを利用しましょう

投稿2022/05/10 01:36

nobonobo

総合スコア3367

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

なにが起こってるのか(なにをやらかしたのか)がわからないため、安全かどうかはわかりませんね。

投稿2022/05/08 07:03

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問