web-dev-qa-db-ja.com

Raspbianはroot @(none)で起動します/ etcの誤った変更後にプロンプ​​トを表示します

かわいいRaspberryPi B2に埋め込まれたRaspbian3.18.7 ARMV71 GNU/Linuxで、_/etc/init.d_ファイルの下にいくつかの「サイレント」オプションを構成し、明らかに壊れた愚かなファイルを使用すると、次の症状が現れました。

  1. Linuxはroot@(none)プロンプトで起動し、
  2. システムは「読み取り専用ファイルシステム」であり、
  3. 壊れている場合、ほとんどの(すべてではないにしても)機能。

エラーは、_/etc/init.d/dphys-swapfile_の下のコメント行であり、そのままである必要があります。それらを編集することは、現在不可能です。

もちろん、元のファイルのバックアップは_<filename>_bkp_名の下にありますが、システムは読み取り専用であり、名前変更コマンドはすべて無効になっています。

それらの_init.d_ファイルの下の「不快な」行を編集したり、バックアップファイルを復元したり、リカバリモードで開始したりするにはどうすればよいですか?

Raspberry Pi交換ソリューションはすべて「ワイプして再インストール」する種類ですが、これはLinuxフレーバーの質問であり、この愚かさから回復するための別のコマンドラインアプローチが存在することは間違いありません...

2
Brethlosze

root@(none)プロンプトがある場合は、回復にかなり近づいています。ルートシェルがあります。回復の最も難しい部分は通常、何が悪いのかを理解することですが、正しいファイルのバックアップがある場合、それは簡単なはずです。

最初にすべきことは、いくつかのファイルシステムをマウントすることです。あなたが何をする必要があるかによって、それらは必要かもしれないし、必要でないかもしれませんが、傷つけることはできません。

mount -t proc proc /proc
mount -t sysfs sysfs /sys
mount -t devpts devpts /dev/pts
mount -t tmpfs -o mode=1755 tmpfs /tmp
mount -t tmpfs -o mode=1755 tmpfs /run

/runがない場合(お使いのバージョンのRaspbianに存在するかどうかはわかりません)、その行は無視してください。 /dev/ptsがない場合は、/devにさらに多くのものがないことの症状です。これは、システムにdevtmpfsが組み込まれていることを示していると思いますので、mount -t devtmpfs devtmpfs /devを実行する必要があります。

また、ルートファイルシステムの読み取り/書き込みを再マウントする必要があります。次に、新しいシェルを開始します(取得しているシェルはプロセスID 1です。これにより、信号処理がおかしくなり、特に Ctrl+C そして Ctrl+Z 動作不能)。

mount -o remount,rw /
bash

これで、修理を実行する準備が整いました。

終了したら、ルートファイルシステムを読み取り専用で(および読み取り/書き込みでマウントした他のファイルシステムを)再マウントしてから、再起動します。

mount -o remount,ro /
reboot -f