ネットワークをサポートするFreeBSDのシングルモード

これは、一時的なものほど永続的なものはないということについての非常に小さなメモであり、最も些細な(一見)タスクに最も時間がかかります。

金曜日の朝、友人が「KVMを使用しないリモートサーバーでシングルモードで世界を再構築する方法」という質問をしました。

「/ etc / rcスクリプトを実行して、/ etc / netstart && service sshd startをシングルモードで実行される部分に書き込むと、すべてが通常通りになります」と私はためらいなく答えました。

しかし、約2時間後、質問が繰り返され、すべてがそれほど些細ではないことが判明しました。

これが私の妄想なのか、それともFreeBSD / etc / rcの初期のバージョンでは部分的にシングルモードで実行されたのかわかりません(公平のため、これをチェックする必要はありませんでした)。

したがって、タスク:

#uname -opr

FreeBSD 10.1-STABLE amd64

マルチモードからシングルモードに切り替えて、ssh経由でアクセスする必要があります。



行こう:

シングルユーザーモードになると、スクリプトは実行されません。この見落としを修正してください。 initソースを編集しましょう。

/usr/src/sbin/init/pathnames.hのスクリプトにパスを追加します

#define _PATH_MYSINGLE "/etc/rc.my_single"
      
      





/usr/src/sbin/init/init.c にsingle_user関数への呼び出し追加します

 run_script(_PATH_MYSINGLE);
      
      



open_console()を呼び出す前にどこかに配置する必要があります。



スクリプト自体の名前は次のとおりです。

/etc/rc.my_single

 #!/bin/sh /bin/echo "NET START" /bin/sh /etc/netstart /bin/echo "SSH START" /usr/sbin/service sshd start
      
      





組み立て、インストール、再構築します(再起動せずにinitを再起動する方法があるかもしれませんが、リモートマシンで運試しはしませんでした)。

 cd /usr/src/sbin/init && make && make install && shutdown -r now
      
      





マルチモードで読み込んだ後、アマチュア用の単一の「 今すぐシャットダウン 」または「 init 1 」に切り替えます。

さて、その後はすべてが通常通りです。



ps:たぶん私は物事を複雑にしているのですが、もっと簡単な方法はありますか?



All Articles