Failed to start Remount Root and kernel file system

Every time I turn on my computer, Manjaro boots and shows the following message twice:
Failed to start: Remount Root and kernel file system
then after the second one everything works and I am able to login and enter normally.

This happens always, so I suppose there something wrong with the boot process.
I have GRUB with Windows 10 in sda1 and Manjaro in dual boot.

Hi! To be sure:
You have Grub @ sda1, Win @ sda2, Manjaro @ another partition/drive?
Is this behavior happening after an change in hardware or update of some sort?

  • When you are logged in into Manjaro, you could try reinstalling grub:
    sudo pacman -Syyu  // update all packages update system
    reboot
    sudo grub-install        
    sudo update-grub
  • you could also check if fstab is referring to the wrong UUID
blkid      // check block-device ID's
cat /etc/fstab // do they correspond to fstab

You can also post the output here if you’re not sure.

1 Like

Thanks for the answer!
I have:

  • sda1: GRUB (I suppose)
  • sda2: Win10
  • sda3: linuxswap
  • sda4: Manjaro

Output of blkid:
/dev/sda1: LABEL="Riservato per il sistema" BLOCK_SIZE="512" UUID="E2AAF2BAAAF28A75" TYPE="ntfs" PARTUUID="1d6de910-01" /dev/sda2: BLOCK_SIZE="512" UUID="6E6EF8B56EF87765" TYPE="ntfs" PARTUUID="1d6de910-02" /dev/sda3: UUID="ebc4fa12-8bed-4c4e-b7b8-6a6cd7d06d28" TYPE="swap" PARTUUID="1d6de910-03" /dev/sda4: UUID="d26cdeed-e34c-4403-9aa8-dcf3cd1b4a15" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="1d6de910-04" /dev/loop0: TYPE="squashfs" /dev/loop1: TYPE="squashfs" /dev/loop2: TYPE="squashfs" /dev/loop3: TYPE="squashfs" /dev/loop4: TYPE="squashfs" /dev/loop5: TYPE="squashfs" /dev/loop6: TYPE="squashfs" /dev/loop7: TYPE="squashfs" /dev/loop8: TYPE="squashfs" /dev/loop9: TYPE="squashfs" /dev/loop10: TYPE="squashfs" /dev/loop11: TYPE="squashfs" /dev/loop12: TYPE="squashfs" /dev/loop14: TYPE="squashfs" /dev/loop15: TYPE="squashfs" /dev/loop16: TYPE="squashfs" /dev/loop18: TYPE="squashfs" /dev/loop13: TYPE="squashfs" /dev/loop17: TYPE="squashfs" /dev/loop19: TYPE="squashfs" /dev/loop20: TYPE="squashfs" /dev/loop21: TYPE="squashfs" /dev/loop22: TYPE="squashfs"

Output of cat /etc/fstab:
<file system> <mount point> <type> <options> <dump> <pass> UUID=ebc4fa12-8bed-4c4e-b7b8-6a6cd7d06d28 swap swap defaults,noatime,discard 0 2 UUID=ecc5d34b-fcf3-472a-8a30-b9a79b461933 / ext4 defaults,noatime,discard 0 1 tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

I also run sudo pacman -Syyu, but there was nothing and update grub. I am not sure about the location of GRUB, so i didn’t run sudo grub-install

Thanks!
For better readability you can organize your output by surrounding it with backticks. 3 backticks at the first line and 3 backticks at the last line.

It is located beneath the Escape button `

Could you output more columns about /dev/sda1?

lsblk -f /dev/sda1

edit: I think I see the problem, your windows install is EFI and the Linux install is MBR/Legacy. But to be sure need to check the other columns of sda1.

1 Like

Thanks for the advice!
Output of lsblk -f /dev/sda1 (it only gives these 2 lines):

NAME FSTYPE FSVER LABEL                    UUID                                 FSAVAIL FSUSE% MOUNTPOINT
sda1 ntfs         Riservato per il sistema E2AAF2BAAAF28A75

Maybe could be helpful the output of the bootinfoscript (found on the AUR):

============================= Boot Info Summary: ===============================

 => Grub2 (v2.00) is installed in the MBR of /dev/sda and looks at sector 1 of 
    the same hard drive for core.img. core.img is at this location and looks 
    for (,msdos4)/boot/grub. It also embeds following components:
    
    modules
    ---------------------------------------------------------------------------
    fshelp ext2 part_msdos biosdisk
    ---------------------------------------------------------------------------

sda1: __________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows 8/2012: NTFS
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        /bootmgr /Boot/BCD

sda2: __________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows 8/2012: NTFS
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        /bootmgr /Windows/System32/winload.exe

sda3: __________________________________________________________________________

    File system:       swap
    Boot sector type:  -
    Boot sector info: 

sda4: __________________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  Manjaro Linux
    Boot files:        /boot/grub/grub.cfg /etc/fstab 
                       /boot/grub/i386-pc/core.img

Allright! So both of your systems are in legacy mode, and show up in the grub config. Which is good and makes it less complicated.
I would still suggest you run the following commands, and if it doesn’t install or update, paste the output here:

    sudo grub-install        
    sudo update-grub
    reboot

For some indepth grub guided repair check out this GRUB repair walkthrough at BIOS Systems

1 Like

This reassures me!
I tried: sudo grub-install:

Installing for i386-pc platform.
grub-install: error: install device isn't specified.

Where do I need to install? /sda1?

Hello @d_red :wink:

I would rather that grub isn’t the issue. Normally systemd run fsck to check filesystem. When it is checking the partition have to be unmounted. After checking it remounts it, but here it failed somehow.

This is the service:

[Unit]
Description=Remount Root and Kernel File Systems
Documentation=man:systemd-remount-fs.service(8)
Documentation=https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
DefaultDependencies=no
Conflicts=shutdown.target
After=systemd-fsck-root.service
Before=local-fs-pre.target local-fs.target shutdown.target
Wants=local-fs-pre.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/lib/systemd/systemd-remount-fs

And as you can see it runs after systemd-fsck-root.service.

So i guess there is a problem with your filesystem.

You can check the log with:

journalctl --since=yesterday --unit=systemd-fsck-root.service

Could also a simple thing: Is GRUB_ROOT_FS_RO=true there at /etc/default/grub?

2 Likes

Hi, thanks for the answer!
Here is the log of systemd-fsck-root.service:

-- Journal begins at Fri 2021-04-23 15:56:36 CEST, ends at Wed 2021-05-26 09:30:47 CEST. --
mag 25 14:42:37 my-pc systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
-- Boot 678383e406b6486c91c06b8f7a9e142f --
mag 25 18:31:09 my-pc systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
-- Boot 935681d451c149e8afa7721f9edce106 --
mag 25 18:34:26 my-pc systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
-- Boot d0d8100ef5184d6cb8197460712147ed --
mag 25 22:49:32 my-pc systemd[1]: Condition check resulted in File System Check on Root Device being skipped.

I also controlled and at /etc/default/grub there io no such thing as GRUB_ROOT_FS_RO=true . Should I add it?

EDIT: I added GRUB_ROOT_FS_RO=true but the problem is still there.

@d_red
Looks like grub isn’t installed at all, the nature of mbr disable’s you to add another partition to the disk. It’s already at the limit of partitions (which is 4 for mbr). When we would use the windows bootloader partition for grub, I’m not sure if it would wreck your windows installation.

Some questions to try to add up where it did go wrong:

  • Do you have this error since the install of Manjaro?

  • When you boot and get the option to select between Windows or Manjaro, are you presented with grub menu or windows bootmanager.
    Or do you override boot priority within the bios?

cheers!

Edit: I did some searching, we cant force Grub onto the windows bootloader partition. But, I found a thread which addresses the problem link to thread and creates a workaround!

Because we are booting a filesystem image from the NTFS, we need to tweak the initramfs. We can use GRUB and its ntfs module to read (GRUB ntfs module is ro afaik.) the kernel and initramfs from the NTFS partition. After this we still need to mount the NTFS partition from the initramfs for full read/write access.

Details

Theory of operation of the solution: I added ntfs-3g and fusefs packages to the initramfs, so that the NTFS partition can be mounted. I also created a new mkinitcpio hook that needs to be loaded before the actual mounting hook. The hook is a simple shell script that gets the parameters (these are given as kernel arguments from GRUB) like

menuentry "Boot LINUX FROM ISO FILE" {
  insmod ntfs
  set root='(hdX,Y)'
  linux /in_ntfs/vmlinuz-linux root=UUID=*GPT_UUID_OF_ROOTFS_ON_DISK_IMAGE* image_path=*path_to_disk_image_on_NTFS* image_hd=*GPT_UUID_OF_NTFS_DISK*
  initrd /in_ntfs/initrd.img
}
  1. Disk image location inside the NTFS partition (image_path)
  2. NTFS partition GPT GUID (image_hd)
  3. If the disk image contains multiple partitions, the rootfs UUID (root)

The boot procedure regarding disk mounts:

  1. initcpio hook mounts the NTFS partition
  2. initcpio hook mounts the disk image from the NTFS partition as a loop device
  3. Now the normal mount hook is run, it is given the ext4 or whatever partition containing linux rootfs inside that disk image mounted in step 2
  4. The system exits the early userspace; newroot is set to the NTFS-loop-mounted image file’s rootfs partition.
  5. Ta-dah, we got a running Linux system with read&write permissions running from a disk image/iso image inside a NTFS partition.

What actually could be a problem is that the swap is checked with fsck, but fsck does not support checking swap partitions:

It have to be:

UUID=<uuid> swap swap defaults,noatime,discard 0 0

The last number just set the order of checks. 0 means: skipping.

Can’t harm by setting it to 0 indeed.

I got this error after a reinstallation through Timeshift.
When I turn on the computer, I’m asked to choose from GRUB menu (or what I think is GRUB): everything is as it was before the reinstallation, except for these two messages Failed to start Remount Root and kernel file system at the boot.
If I run grub-install --version I get grub-install (GRUB) 2.04~22~manjaro.
From this morning, GRUB doesn’t show anymore. Instead of GRUB menu I visualize an “ugly” rudimental OS-selection menu (I believe the one of Linux).
The two error messages mentioned in the original question are still there.

@d_red Sorry, i guess i just didn’t see this, because of this really ugly formatting…

your fstab:

your blkid:

The UUIDs did not match and therefore it should not boot since fstab expect other UUIDs than available. Exchange the UUIDs of fstab with the ones in blkid. blkid have the correct ones.

2 Likes

Wow, this actually worked and makes the Manjaro boot smooth without those 2 annoying messages!
Thanks really a lot.

Do you also know how could I solve the problem with GRUB, that suddenly disapperead?
I already tried sudo grub-install /dev/sda and sudo update-grub

Well if you can boot:

Then grub does not disappear :slight_smile:

If you mean the menu at boot, then have a look at /etc/default/grub.

1.) GRUB_DISABLE_OS_PROBER=false have to be there.
2.) GRUB_TIMEOUT_STYLE=menu instead of hiddenhave to be set.

Always run sudo update-grub after changing the config.

https://www.gnu.org/software/grub/manual/grub/html_node/Simple-configuration.html

1 Like

wow! looked right passed it! well done @megavolt

You are right, I didn’t know that actually was GRUB, even if it was pretty rudimental.
I added your command lines to the file and discovered also that the GRUB theme was missing. So I just installed it and now everything works fine!
Thanks a lot both of you

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.