3 Added section for troubleshooting
source | link

You try to boot into the graphics system that is the systemd graphical.target. That get stuck. Next step before is the multi-user-.target. That is the system without graphics as you get it with Raspbian Stretch Light. Try to boot into this. If it works we have a running system Stretch Light and we know that the problem is the graphics part. You can boot into it by appending this to cmdline.txt:

Now boot into the graphic system until it get stuck wait a little and poweroff. Boot into the multi-user-.target and look at the boot messages from the boot before with:

If you cannot boot into multi-user-.target then you can get the next step back with appending this to cmdline.txt:

Here you have a bare system nearly to boot with init=/bin/sh. This should always do if you can boot with /bin/sh.

troubleshooting:
from the infos in your comments: it is possible to boot into multi-user.target but with read only filesystem. sudo cannot resolve host because there is no network connection with name resolution and for local name resolution there is no entry 127.0.1.1 raspberrypi (resp. your hostname) in the /etc/hosts I guess. Put it into /etc/hosts if not present.

On boot you get the error:

Timed out waiting for device dev/partuuid-fb3ed1c9\x2d01.device.

This shows that the device PARTUUID=fb3ed1c9-01 cannot be found. Postfix -01 shows it is the first partition, means the boot partition. It is possible that the partuuid has changed, for example by using a partitioner on a Raspberry installation. I suggest to change the device names in cmdline.txt and in etc/fstab. Put the SD Card in the card reader of your pc, mount its partitions and in cmdline.txt change the root entry to:

root=/dev/mmcblk0p2

etc/fstab change to similar like this:

proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1

If mmcblk0 is not the right device name for your SD Card you can boot into multi-user.target and look in /dev what it is.

You try to boot into the graphics system that is the systemd graphical.target. That get stuck. Next step before is the multi-user-target. That is the system without graphics as you get it with Raspbian Stretch Light. Try to boot into this. If it works we have a running system Stretch Light and we know that the problem is the graphics part. You can boot into it by appending this to cmdline.txt:

Now boot into the graphic system until it get stuck wait a little and poweroff. Boot into the multi-user-target and look at the boot messages from the boot before with:

If you cannot boot into multi-user-target then you can get the next step back with appending this to cmdline.txt:

Here you have a bare system nearly to boot with init=/bin/sh. This should always do if you can boot with /bin/sh.

You try to boot into the graphics system that is the systemd graphical.target. That get stuck. Next step before is the multi-user.target. That is the system without graphics as you get it with Raspbian Stretch Light. Try to boot into this. If it works we have a running system Stretch Light and we know that the problem is the graphics part. You can boot into it by appending this to cmdline.txt:

Now boot into the graphic system until it get stuck wait a little and poweroff. Boot into the multi-user.target and look at the boot messages from the boot before with:

If you cannot boot into multi-user.target then you can get the next step back with appending this to cmdline.txt:

Here you have a bare system nearly to boot with init=/bin/sh. This should always do if you can boot with /bin/sh.

troubleshooting:
from the infos in your comments: it is possible to boot into multi-user.target but with read only filesystem. sudo cannot resolve host because there is no network connection with name resolution and for local name resolution there is no entry 127.0.1.1 raspberrypi (resp. your hostname) in the /etc/hosts I guess. Put it into /etc/hosts if not present.

On boot you get the error:

Timed out waiting for device dev/partuuid-fb3ed1c9\x2d01.device.

This shows that the device PARTUUID=fb3ed1c9-01 cannot be found. Postfix -01 shows it is the first partition, means the boot partition. It is possible that the partuuid has changed, for example by using a partitioner on a Raspberry installation. I suggest to change the device names in cmdline.txt and in etc/fstab. Put the SD Card in the card reader of your pc, mount its partitions and in cmdline.txt change the root entry to:

root=/dev/mmcblk0p2

etc/fstab change to similar like this:

proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1

If mmcblk0 is not the right device name for your SD Card you can boot into multi-user.target and look in /dev what it is.

2 Corrected typo
source | link

Let's look step by step where the error could be. You are booting into a shell without any graphics. In the shell maybe you can mount the pseudo filesystems from the kernel (/proc, /dev, /sys). But it will not help you. There is nothing else. You can only edit config files.

You try to boot into the graphics system that is the systemd graphical.target. That get stuck. Next step before is the multi-user-target. That is the system without graphics as you get it with Raspbian Stretch Light. Try to boot into this. If it works we have a running system Stretch Light and we know that the problem is the graphics part. You can boot into it by appending this to cmdline.txt:

systemd.unit=multi-user.target

If it runs we know the problem is the graphic system. You can enable journaling so we may see error messages. Enable it with:

rpi: ~# sudo mkdir -p /var/log/journal
rpi: ~# sudo systemd-tmpfiles --create --prefix /var/log/journal

Now boot into the graphic system until it get stuck wait a little and poweroff. Boot into the multi-user-target and look at the boot messages from the boot before with:

rpi ~$ journalctl --boot=-1

If you cannot boot into multi-user-target then you can get the next step back with appending this to cmdline.txt:

systemd.unit=rescue.target

Here you have aba basic system including system mounts. Next step back is by appending to cmdline.txt:

systemd.unit=emergency.target

Here you have a bare system nearly to boot with init=/bin/sh. This should always do if you can boot with /bin/sh.

Let's look step by step where the error could be. You are booting into a shell without any graphics. In the shell maybe you can mount the pseudo filesystems from the kernel (/proc, /dev, /sys). But it will not help you. There is nothing else. You can only edit config files.

You try to boot into the graphics system that is the systemd graphical.target. That get stuck. Next step before is the multi-user-target. That is the system without graphics as you get it with Raspbian Stretch Light. Try to boot into this. If it works we have a running system Stretch Light and we know that the problem is the graphics part. You can boot into it by appending this to cmdline.txt:

systemd.unit=multi-user.target

If it runs we know the problem is the graphic system. You can enable journaling so we may see error messages. Enable it with:

rpi: ~# sudo mkdir -p /var/log/journal
rpi: ~# sudo systemd-tmpfiles --create --prefix /var/log/journal

Now boot into the graphic system until it get stuck wait a little and poweroff. Boot into the multi-user-target and look at the boot messages from the boot before with:

rpi ~$ journalctl --boot=-1

If you cannot boot into multi-user-target then you can get the next step back with appending this to cmdline.txt:

systemd.unit=rescue.target

Here you have ab basic system including system mounts. Next step back is by appending to cmdline.txt:

systemd.unit=emergency.target

Here you have bare system nearly to boot with init=/bin/sh. This should always do if you can boot with /bin/sh.

Let's look step by step where the error could be. You are booting into a shell without any graphics. In the shell maybe you can mount the pseudo filesystems from the kernel (/proc, /dev, /sys). But it will not help you. There is nothing else. You can only edit config files.

You try to boot into the graphics system that is the systemd graphical.target. That get stuck. Next step before is the multi-user-target. That is the system without graphics as you get it with Raspbian Stretch Light. Try to boot into this. If it works we have a running system Stretch Light and we know that the problem is the graphics part. You can boot into it by appending this to cmdline.txt:

systemd.unit=multi-user.target

If it runs we know the problem is the graphic system. You can enable journaling so we may see error messages. Enable it with:

rpi: ~# sudo mkdir -p /var/log/journal
rpi: ~# sudo systemd-tmpfiles --create --prefix /var/log/journal

Now boot into the graphic system until it get stuck wait a little and poweroff. Boot into the multi-user-target and look at the boot messages from the boot before with:

rpi ~$ journalctl --boot=-1

If you cannot boot into multi-user-target then you can get the next step back with appending this to cmdline.txt:

systemd.unit=rescue.target

Here you have a basic system including system mounts. Next step back is by appending to cmdline.txt:

systemd.unit=emergency.target

Here you have a bare system nearly to boot with init=/bin/sh. This should always do if you can boot with /bin/sh.

1
source | link

Let's look step by step where the error could be. You are booting into a shell without any graphics. In the shell maybe you can mount the pseudo filesystems from the kernel (/proc, /dev, /sys). But it will not help you. There is nothing else. You can only edit config files.

You try to boot into the graphics system that is the systemd graphical.target. That get stuck. Next step before is the multi-user-target. That is the system without graphics as you get it with Raspbian Stretch Light. Try to boot into this. If it works we have a running system Stretch Light and we know that the problem is the graphics part. You can boot into it by appending this to cmdline.txt:

systemd.unit=multi-user.target

If it runs we know the problem is the graphic system. You can enable journaling so we may see error messages. Enable it with:

rpi: ~# sudo mkdir -p /var/log/journal
rpi: ~# sudo systemd-tmpfiles --create --prefix /var/log/journal

Now boot into the graphic system until it get stuck wait a little and poweroff. Boot into the multi-user-target and look at the boot messages from the boot before with:

rpi ~$ journalctl --boot=-1

If you cannot boot into multi-user-target then you can get the next step back with appending this to cmdline.txt:

systemd.unit=rescue.target

Here you have ab basic system including system mounts. Next step back is by appending to cmdline.txt:

systemd.unit=emergency.target

Here you have bare system nearly to boot with init=/bin/sh. This should always do if you can boot with /bin/sh.