Laptop stuck at login page after entering the right password

Thank you. I will do that.

There’s usually one or two causes of a full root partition. Either there’s too many Timehift snapshots, because it hasn’t been configured properly, or too many app tar files in paccache. Have a look first at at:

sudo du / -chd1 --exclude={/dev,/proc,/sys,/run/user}|sort -h

Apart from /usr which is should be the largest directory of several GBs, any other directories listed of a similar or larger size like /var, might need investigating. In that case look at:

du -ch /var/cache/pacman/pkg/*|sort -h

I would suggest if the total is more than 4 GB it needs pruning.

2 Likes

But this would of course need to be done from within a chroot, because the OP cannot log into their system. :wink:

Doesn’t need to chroot. Just boot into any Live Linux USB (doesn’t have to be Manjaro), mount the root drive to /mnt, cd /mnt, then run those du commands as du /mnt instead, which is the absolute path. Just tried that and it produces the same results.

Okay, but then you would need to convert them all into relative paths. As you wrote them, they are absolute paths. So it would need to be {dev,proc,sys,run,usr} and var, all without the leading slash.

It’s either that or chrooting and then using the absolute paths.


Edit: Come to think of it, /usr might also be part of the problem, if the OP has installed many Snaps, FlatPaks or AppImages. Those things eat up a lot of disk space. :thinking:

Cant the user just do any of these through TTY?
As far as deleting things … then the rest.
OPs edited first post seems to indicate they can.
I’ll just leave this here …

Good point — I had missed that bit. :wink:

When i ran the

manjaro-chroot -a

It returns

grub-probe: error: cannot find a GRUB drive for /dev/sdb1.  Check your device.map.
grub-probe: error: cannot find a GRUB drive for /dev/sdb1.  Check your device.map.
==> Mounting (ManjaroLinux) [/dev/sda1]
 --> mount: [/mnt]

And when i ran

paccache -rvk0

It returns

no candidates packages found for pruning

When i ran the first command

sudo du / -chd1 --exclude={/dev,/proc,/sys,/run/user}|sort -h

It returns

du: invalid option -- 'e'
du: invalid option -- 'u'
du: invalid maximum depth ‘e=/dev’
du: invalid option -- 'e'
du: invalid option -- 'u'
du: invalid maximum depth ‘e=/proc’
du: invalid option -- 'e'
du: invalid option -- 'u'
du: invalid maximum depth ‘e=/sys’
du: invalid option -- 'e'
du: invalid option -- 'u'
du: invalid maximum depth ‘e=/run/user’
Try 'du --help' for more information.

In addition to pacman cache (/var/cache/pacman/pkg), which the paccache command above will remove, there is the systemd journal. Do you have a mechanism to routinely clean it up… See

journalctl --disk-usage

Do you need to rebuild/refresh your custom mirror list… See options --country or --geoip or --continent. And then, run sudo pacman -Syyu as mentioned above.

pacman-mirrors --country-config          # show current config
pacman-mirrors --list                    # list available countries (use COUNTRY in next command)
pacman-mirrors  -c COUNTRY               # create custom mirror list 

There are 3 mirror list files (there’s actaully a 4th). Basically, default pool (all), custom mirror (filtered by pacman-mirrors), and runtime (reordered by pacman-mirrors). This is why a user runs pacman-mirrors before pacman. With the error above, “invalid url”, perhaps something changed. Of course, if your system is running low on space, all bets are off and all strangeness can occur because applications can not function. So definitely that should be your focus.

I never worry too much about package cache in this forum because there is something in place by default. Check the output of the command below and note pamac-cleancache. You can change how many copies of a packages to keep in cache through pamac GUI or by editing /etc/pamac.conf > KeepNumPackages. The default is 3.

systemctl list-timers

I’m not sure where you are running the du command from. Did you boot into your USB installer first as I did not make that clear in my original post, but in the follow-up I mentioned it?- My bad, so I’ll revise what I said in a bit more detail.

  1. Boot into your Manjaro USB drive.
  2. Once booted, open up the terminal from the menu, or press 3 keys together: Cntl+Alt+t to bring it up.
  3. You need to know which partition is your root. According to your inxi print-out, this is sda1 . So run the following command first:- sudo mount /dev/sda1 /mnt, which will mount your root drive. Check that this is correct by running ls /mnt. You should see the following folders listed - bin, boot, etc, lib, usr, var and a few others. If you see those you’re in the right place, then go to 4).
  4. Now run the following command:- sudo du -hd1 /mnt --exclude={/dev,/proc, /sys,/run}|sort -h. What is the total figure (/mnt) , and what are the last 3 folders and their sizes, respectively above /mnt?

All the commands works fine except step 4.

It returns

du: cannot access '/mnt/proc/3028/task/3028/fd/4': No such file or directory
du: cannot access '/mnt/proc/3028/task/3028/fdinfo/4': No such file or directory
du: cannot access '/mnt/proc/3028/fd/3': No such file or directory
du: cannot access '/mnt/proc/3028/fdinfo/3': No such file or directory

So i ran this command instead

sudo du / -chd1 --exclude={/dev,/proc,/sys,/run/user}|sort -h

And it returns

0       /mnt
0       /srv
0       /tmp
0       /.Trash-1000
477K    /root
7.7M    /etc
17M     /boot
35M     /home
65M     /var
1.7G    /opt
7.5G    /usr
14G     /run
23G     /
23G     total

Didn’t cd to mnt earlier.

Did you run this command while logged into your system or in the live environment?

And you also forgot to mount anything to /mnt :rofl:

In the live environment

Without chrooting?

Yeah, without chrooting

He said i don’t need to chroot

Then the output of that command is pretty useless, isn’t it? You’re listing the filesystem usage of the live session, not the filesystem usage on your internal drive(s). :roll_eyes:

Now try this again… :arrow_down:

sudo su -
manjaro-chroot -a
sudo du / -chd1 --exclude={/dev,/proc,/sys,/run/user} | sort -h

Or, if you don’t want to chroot, mount your on-disk root filesystem to /mnt, like so… :arrow_down:

sudo mount -t ext4 /dev/sda1 /mnt
cd /mnt
sudo du . -chd1 --exclude={dev,proc,sys} | sort -h