White Blank Screen After Pi-hole Freeze and Reboot Loop

Hi guys,

Blank "White screen" background used to confirm that my monitor was not the issue after my Pi-hole froze. The screen displayed perfectly, so I’m certain the problem lies with the system or disk.

I tried using the sysreq sequence to safely shut down my Pi-hole but could not connect via PiVPN (also installed). When I connected to a monitor, the screen was frozen.

White screen background helped me pinpoint the issue further. Upon restarting, Raspbian boots to a certain point, performs a disk check, and then reboots. This cycle keeps repeating (even after leaving it overnight).

Is there a way to skip the disk check or fix this within Raspbian? Could I disconnect the SSD and validate it on my Debian PC to resolve this? Or is a reinstall my only option?

Thanks for your time and help!

When your Pi freezes for no apparent reason:

If you connect a screen, you should see the disk check being performed on screen during boot.
Or at least a mention of it being performed.
If you dont see any boot output on screen at all, the boot sequence didnt get that far yet to do the disk check.

Yes you can.
You can list detected block devices (disks or partitions) plus their mountpoints with below:

$ lsblk -p
NAME             MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
/dev/mmcblk0     179:0    0 14.8G  0 disk
├─/dev/mmcblk0p1 179:1    0  256M  0 part /boot
└─/dev/mmcblk0p2 179:2    0 14.6G  0 part /

Search on the net how to use the fsck command:

man fsck

EDIT: Dont forget to unmount first (umount) if it shows mounted with the lsblk command!

When the partitions are still mounted on the Debian PC, you can even inspect the systemd journal on the SSD eg:

sudo journalctl --full --no-hostname --pager-end --directory /<ROOT_MOUNTPOINT_FOLDER>/var/log/journal/

$ man journalctl
[..]
       -D DIR, --directory=DIR
           Takes a directory path as argument. If specified,
           journalctl will operate on the specified journal
           directory DIR instead of the default runtime and system
           journal paths.

But this is a bit out of scope here :wink: