私のparrotOSは起動しません。この問題が発生する前は、システムを大幅に変更しませんでした。以前は、システムの再起動に問題はありませんでした。私はparrotOS 5.2を使用しています。
私のfstabは大丈夫です。この問題が発生する前は編集しませんでした。
コンピュータを起動すると、緊急モードでエラーメッセージが表示されます。
>>コンソールへのアクセスを開くことができません。ルートアカウントがロックされています。詳細については、 sulogin(8) のマニュアルページを参照してください。
いずれかのキーを押すとメッセージが繰り返され、回復モードでも同様です。
fstabの編集(スワップと重要でないドライブの削除)とRescue.serviceファイルの編集を試してsulogin --forceを起動しようとしましたが、機能しません。また、fsckを実行しましたが、0(エラーなし)が返されました。
救出サービスで試したことです。
ExecStart=-/bin/sh -c "/sbin/sulogin --force; /bin/systemctl --job-mode=fail --no-block default"
私の考えでは、これはDebianのバグに関連しているようです。https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=802211
次のドキュメントが見つかりましたが、どうすればよいか、環境変数 $SYSTEMD_SULOGIN_FORCE=1 を設定する方法がわかりません。
systemd-sulogin-shell:
- $ SYSTEMD_SULOGIN_FORCE = 1 - rootパスワードが利用できない場合(たとえば、rootアカウントがロックされている場合)、rootパスワード要求をスキップします。詳細は sulogin(8) を参照してください。
5.2.3。ルートパスワードがないと、回復ブートオプションは使用できません。 Buster は sulogin を実装しているため、回復オプションで起動するには常に root パスワードが必要です。設定されていない場合、リカバリモードは実際には使用できません。ただし、カーネルパラメータinit = / sbin / sulogin --forceを使用して起動することは依然として可能です。リカバリモード(シングルモードとも呼ばれます:systemd(1)を参照)で起動するときに同等のタスクを実行するようにsystemdを設定するには、sudo systemctl edit estimate.serviceを実行し、次の内容を含むファイルを作成します。 [Service]Environment = SYSTEMD_SULOGIN_FORCE = 1特定のエラーが発生した場合(systemd.special(7)を参照) (またはその逆)便利です。 (たとえば、リカバリモードを使用してシステムをリカバリできない場合)、セキュリティへの影響に関する背景と議論については#802211を参照してください。
答え1
「コンソールへのアクセスを開けませんでした。rootアカウントがロックされています...」というメッセージが表示された場合はどうすればよいですか?
この場合、OPはカーネルブートパラメータの指定を試みる必要がありますinit="/sbin/sulogin --force"
。カーネルパラメータは通常スペースで区切られているため、引用符が必要になる場合があります。
2023年5月13日パッチが適用されますsystemd-sulogin-shell
SYSTEMD_SULOGIN_FORCE=1
カーネルコマンドラインでも指定できます。つまり、最新バージョンがある場合は、systemd
ブートローダを使用してカーネルブートパラメータに次のオプションを入力すると、rootアカウントがロックされていてもシステムに強制的に回復モードアクセスを許可することができます。
SYSTEMD_SULOGIN_FORCE=1 init=/sbin/sulogin
ただし、systemd
バージョンが2023年5月13日より前の場合、ディストリビューションはこのパッチを特にバックポートしない限り機能しません。
rescue.service
ルートアカウントがロックされていてもアクセスを許可するように設定する方法
事前にできることは次のとおりです。システムがまだ正常に起動している間。
root アカウントがロックされている場合、または root パスワードが使用できない場合でも、システムが回復モードでコンソールに root シェルを自動的に提供できるようにするには、次の手順に従います。
ステップ1。 )
systemctl edit rescue.service
sudo/を使用してrootとして実行します。これにより、/etc/systemd/system/rescue.service.d/override.conf
ファイルを生成するエディタが開きます。以前のバージョンでは、エディタは最初は空です。最新バージョンでは、参照用にsystemd
既存の定義の説明コメントと注釈付きバージョンがあります。rescue.service
どちらの場合も、次の2行を入力します。
[Service]
Environment=SYSTEMD_SULOGIN_FORCE=1
変数を追加するこの方法は、次の最新バージョンSYSTEMD_SULOGIN_FORCE
で機能します。systemd
2018年10月17日または、ディストリビューションでこのパッチをバックポートしました。
ディストリビューションによっては、emergency.service
同様の修正を適用することもできます。
ステップ2。 )
initramfs ファイルを更新します。 Debianと関連ディストリビューションではこれがupdate-initramfs -u -k all
機能します。他のディストリビューションは異なるinitramfsジェネレータを使用します。最新のRedHat / Fedoraおよび関連製品ではdracut -f
これが機能します。 Archではコマンドが必要かもしれませんが、mkinitcpio
どのオプションが必要かわかりません。
rescue.service
すべての呼び出しでSYSTEMD_SULOGIN_FORCE = 1環境変数が有効であることを確認するには、initramfsを更新してください。すべての可能な場合、これは必ずしも必要ではありませんが、後悔するよりも安全性を維持することをお勧めします。