かわいいRaspberryPi B2に埋め込まれたRaspbian3.18.7 ARMV71 GNU/Linuxで、_/etc/init.d
_ファイルの下にいくつかの「サイレント」オプションを構成し、明らかに壊れた愚かなファイルを使用すると、次の症状が現れました。
root@(none)
プロンプトで起動し、エラーは、_/etc/init.d/dphys-swapfile
_の下のコメント行であり、そのままである必要があります。それらを編集することは、現在不可能です。
もちろん、元のファイルのバックアップは_<filename>_bkp
_名の下にありますが、システムは読み取り専用であり、名前変更コマンドはすべて無効になっています。
それらの_init.d
_ファイルの下の「不快な」行を編集したり、バックアップファイルを復元したり、リカバリモードで開始したりするにはどうすればよいですか?
Raspberry Pi交換ソリューションはすべて「ワイプして再インストール」する種類ですが、これはLinuxフレーバーの質問であり、この愚かさから回復するための別のコマンドラインアプローチが存在することは間違いありません...
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