メッセージ形式は、次の通信プロトコルを実装して、systemd-fsckdのfsckメッセージを処理するように構成されたカスタムPlymouthトピック(MIB Ossigenoベース)を作成しました。
fsckd:<num_devices>:<progress>:<string>
文書によると(8-systemd-fsckd.service)
実行時にテストモード(「起動後」)で、次のコマンドを使用します。
plymouthd; plymouth --show-splash ; for ((I=0; I<10; I++)); do plymouth --update=fsck:sda1:$I ; sleep 1; done; plymouth quit
特別なFSCKメッセージを使用して、plymouthは「ディスク1/1確認中(2%完了)」などの目的のメッセージを表示します。望むより:プリマス。
ただし、システムを再起動すると、fsck メッセージは bootsplash に表示されません。ただし、Escを押してコンソールに切り替えると、fsckの進行状況メッセージが表示されます。
起動時にfsckを強制するためにune2fsとgrub()を交互に使用してGRUB_CMDLINE_LINUX_DEFAULT="quiet splash fsck.mode=force fsck.repair=yes"
効果があることを確認しました。
何らかの理由で、fsck と Plymouth 間の通信が正しく機能しないか、正しく動作しません。デフォルトのテーマ futureprototype も機能しません。問題はsystemd-fsckdにあるようです。起動時にsystemd-fsckdのジョブが実行されているかどうかを確認するには? 、問題が見つかったかどうかを示すレポートやステータスがありますか?
私は/run/initramfs/fsck.logをチェックします(これはよさそうです):
~# cat /run/initramfs/fsck.log
Log of fsck -C -f -y -T -t ext4 /dev/sda1
Wed Feb 28 15:26:27 2024
e2fsck 1.47.0 (5-Feb-2023)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda1: 212266/593344 files (0.2% non-contiguous), 1705537/2371072 blocks
Wed Feb 28 15:26:30 2024
雑誌...
~# journalctl -u systemd-fsck*
-- Boot f8b976dfd857400085057901577c56f9 --
feb 28 10:40:53 debian12 systemd[1]: Started systemd-fsckd.service - File System Check Daemon to report status.
feb 28 10:41:23 debian12 systemd[1]: systemd-fsckd.service: Deactivated successfully.
feb 28 10:51:02 debian12 systemd[1]: Started systemd-fsckd.service - File System Check Daemon to report status.
feb 28 10:51:32 debian12 systemd[1]: systemd-fsckd.service: Deactivated successfully
およびシステム制御
~# systemctl status systemd-fsckd.socket
● systemd-fsckd.socket - fsck to fsckd communication Socket
Loaded: loaded (/lib/systemd/system/systemd-fsckd.socket; static)
Active: active (listening) since Wed 2024-02-28 15:26:31 -03; 16min ago
Triggers: ● systemd-fsckd.service
Docs: man:systemd-fsckd.service(8)
man:[email protected](8)
man:systemd-fsck-root.service(8)
Listen: /run/systemd/fsck.progress (Stream)
CGroup: /system.slice/systemd-fsckd.socket
~# systemctl status systemd-fsckd.service
○ systemd-fsckd.service - File System Check Daemon to report status
Loaded: loaded (/lib/systemd/system/systemd-fsckd.service; static)
Active: inactive (dead)
TriggeredBy: ● systemd-fsckd.socket
Docs: man:systemd-fsckd.service(8)
fsck のディスクチェックにより、ブートプロセスが遅れたことをユーザーに知らせ、進行状況を確認するためのものです。すべてのリソースを使い果たしましたが、Web上で何も見つかりませんでした。一般的に私が見つけたのは、開始メッセージを隠すだけです。
~# more /etc/debian_version
10.13
~# uname -a
Linux debian 4.19.0-26-686-pae #1 SMP Debian 4.19.304-1 (2024-01-09) i686 GNU/Linux
関係のない理由でDebian 10オペレーティングシステムで開発が行われましたが、Debian 12を使用しても同じ結果が出ました。
PD:潜在的に関連する詳細:Debian 10とDebian 12はVirtual Boxの仮想マシンでテストされました。
追加テスト:
最初のケース:Virtual Box の Debian 10. fsck メッセージが表示されず、ログに以下が表示されます。
root@debian:~# systemctl list-sockets | grep fsckd
/run/systemd/fsck.progress systemd-fsckd.socket systemd-fsckd.service
root@debian:~# journalctl -b /usr/lib/systemd/systemd-fsck
-- No entries --
root@debian:~# journalctl -b /usr/lib/systemd/systemd-fsckd
-- No entries --
root@debian:~# journalctl --boot | grep systemd-fsck*
mar 04 13:07:01 debian systemd[1]: Listening on systemd-fsckd.socket - fsck to fsckd communication Socket.
mar 04 13:07:01 debian systemd[1]: systemd-fsck-root.service - File System Check on Root Device was **skipped** because of an unmet condition check (**ConditionPathExists=!/run/initramfs/fsck-root**).
root@debian:~# cat /run/initramfs/fsck.log
Log of fsck -C -a -T -t ext4 /dev/sda1
Mon Mar 4 13:06:59 2024
/dev/sda1: clean, 212351/593344 files, 1708897/2371072 blocks
Mon Mar 4 13:06:59 202
ケース2:実際のPC(amd64)のDebian 10。この場合、メッセージは表示されますが、プロセスの最後に数秒間表示されます。 fsck中は何も表示されません。
root@Dell:~# systemctl list-sockets | grep fsckd
/run/systemd/fsck.progress systemd-fsckd.socket systemd-fsckd.service
root@Dell:~# journalctl -b /usr/lib/systemd/systemd-fsck
-- Logs begin at Mon 2024-03-04 15:58:16 -03, end at Mon 2024-03-04 19:25:01 -03. --
mar 04 15:58:21 Dell systemd-fsck[420]: e2fsck 1.44.5 (15-Dec-2018)
mar 04 15:58:21 Dell systemd-fsck[420]: Pass 1: Checking inodes, blocks, and sizes
mar 04 15:58:21 Dell systemd-fsck[420]: Pass 2: Checking directory structure
mar 04 15:58:21 Dell systemd-fsck[420]: Pass 3: Checking directory connectivity
mar 04 15:58:21 Dell systemd-fsck[420]: Pass 4: Checking reference counts
mar 04 15:58:21 Dell systemd-fsck[420]: Pass 5: Checking group summary information
mar 04 15:58:22 Dell systemd-fsck[420]: /dev/sda1: 1034/69360 files (0.7% non-contigu
root@Dell:~# journalctl -b /usr/lib/systemd/systemd-fsckd
-- Logs begin at Mon 2024-03-04 15:58:16 -03, end at Mon 2024-03-04 19:25:01 -03. --
-- No entries --
root@Dell:~# journalctl --boot | grep systemd-fsck*
mar 04 15:58:21 Dell systemd-fsck[420]: e2fsck 1.44.5 (15-Dec-2018)
mar 04 15:58:21 Dell systemd-fsck[420]: Pass 1: Checking inodes, blocks, and sizes
mar 04 15:58:21 Dell systemd-fsck[420]: Pass 2: Checking directory structure
mar 04 15:58:21 Dell systemd-fsck[420]: Pass 3: Checking directory connectivity
mar 04 15:58:21 Dell systemd-fsck[420]: Pass 4: Checking reference counts
mar 04 15:58:21 Dell systemd-fsck[420]: Pass 5: Checking group summary information
mar 04 15:58:22 Dell systemd-fsck[420]: /dev/sda1: 1034/69360 files (0.7% non-contiguous), 189933/276480 blocks
mar 04 15:59:01 Dell systemd[1]: systemd-fsckd.service: Succeeded.
root@Dell:~# cat /run/initramfs/fsck.log
Log of fsck -C -f -y -T -t ext4 /dev/sda2
Mon Mar 4 18:57:36 2024
e2fsck 1.44.5 (15-Dec-2018)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda2: 673194/9551872 files (0.8% non-contiguous), 29651430/38200576 blocks
Mon Mar 4 18:58:11 2024
----------------
状況3:実際のPC(amd64)のDebian 10には、grubメニュー(DebianとWindowsの他の起動可能なパーティション)に複数のエントリがあります。
root@5VQU7SN:~# systemctl list-sockets | grep fsckd
/run/systemd/fsck.progress systemd-fsckd.socket systemd-fsckd.service
root@5VQU7SN:~# journalctl -b /usr/lib/systemd/systemd-fsck
-- Logs begin at Mon 2024-03-04 15:38:25 -03, end at Mon 2024-03-04 20:39:47 -03. --
-- No entries --
root@5VQU7SN:~# journalctl -b /usr/lib/systemd/systemd-fsckd
-- Logs begin at Mon 2024-03-04 15:38:25 -03, end at Mon 2024-03-04 20:39:47 -03. --
-- No entries --
root@5VQU7SN:~# journalctl --boot | grep systemd-fsck*
-- No entries --
root@5VQU7SN:~# cat /run/initramfs/fsck.log
Log of fsck -C -f -y -T -t ext4 /dev/sda6
Mon Mar 4 18:37:59 2024
e2fsck 1.44.5 (15-Dec-2018)
/dev/sda6: recovering journal
Clearing orphaned inode 15992282 (uid=1000, gid=1000, mode=0100644, size=32768)
Clearing orphaned inode 15991323 (uid=1000, gid=1000, mode=0100600, size=460)
Clearing orphaned inode 15990858 (uid=1000, gid=1000, mode=0100644, size=4132)
Clearing orphaned inode 15990852 (uid=1000, gid=1000, mode=0100600, size=131072)
Clearing orphaned inode 15990840 (uid=1000, gid=1000, mode=0100644, size=4132)
Clearing orphaned inode 15990827 (uid=1000, gid=1000, mode=0100644, size=4132)
Clearing orphaned inode 15990826 (uid=1000, gid=1000, mode=0100644, size=4132)
Clearing orphaned inode 15990859 (uid=1000, gid=1000, mode=0100644, size=4132)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong (112010854, counted=112010689).
Fix? yes
Free inodes count wrong (28961618, counted=28961585).
Fix? yes
/dev/sda6: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sda6: 292047/29253632 files (0.3% non-contiguous), 4981311/116992000 blocks
fsck exited with status code 1
Mon Mar 4 18:38:19 2024
----------------
問題はかなり複雑になっていますが、どこに進むべきかわかりません。プロの学生がこの問題を解決するのに役立つことを願っています。
ステータスの更新:
基本的なPlymouthテーマは他のコンピュータでも動作することがわかり、テーマをインストールしたときも動作しました。私は数日間grub、fsck、plymouthの設定を確認しましたが、違いは見つかりませんでした。そのPCでは、/bootディレクトリはルートディレクトリとは異なるパーティションにマウントされていることがわかるまでは言葉です。それぞれ/bootを使用して、物理PCと仮想PCの両方にDebianを最初からインストールします。効果がありました! systemd-fsckのバグですか?