# genkernel udev-182 - e2fsck /usr cannot continue, aborting

## castor_fou

after upgrading to udev-182, I understand that /usr is now mounted by initramfs. (I use genkernel)

However at boot time, Checking local filesystems  ... is complaining it cannot check /usr, becuse already mounted (rw I guess ?)

Here is the message from rc.log :

```
• Checking local filesystems  ...

/dev/mapper/VG_gentoo_root-root: clean, 21813/1310720 files, 346425/2621440 blocks

/dev/mapper/VG_gentoo_root-usr is mounted.  e2fsck: Cannot continue, aborting.

/dev/mapper/VG_gentoo_root-var: clean, 248413/1310720 files, 1180377/2621440 blocks

/dev/mapper/VG_gentoo_root-tmp: clean, 30/655360 files, 55970/1310720 blocks

/dev/mapper/VG_gentoo_data-home: clean, 173260/5242880 files, 4093225/10485760 blocks

/dev/mapper/VG_gentoo_data-data: clean, 54609/24985600 files, 38676962/49944576 blocks

/dev/sdd1: clean, 837818/27467776 files, 65509302/109862502 blocks (check in 3 mounts)

/dev/md0: clean, 103/122880 files, 186952/489856 blocks

 * Operational error

 [ !! ]
```

No problem with /.

What is the correct way to handle that ? Ask initramfs to mount /usr ro ?

any help would be appreciated

----------

## JohnBlbec

I have the same problem. My /usr is on a separate partition, I am using genkernel and during evry boot I can see message "e2fsck cannot contine, aborting" because /usr is not mounted as ro. Any solution?

----------

## NeddySeagoon

My initramfs checks /usr and /var before it mounts them if the mount count or whatever has been reached.

Its hand rolled, so when it breaks, the pieces are all mine.

----------

## JohnBlbec

 *NeddySeagoon wrote:*   

> My initramfs checks /usr and /var before it mounts them if the mount count or whatever has been reached.
> 
> Its hand rolled, so when it breaks, the pieces are all mine.

 

thanks you shared it works for you. do you think could you share also how can i do that?  :Smile: 

----------

## NeddySeagoon

JohnBlbec,

Heres the hard bit.

It has raid5, and LVM as well as mounting /var and /usr.

Adding LUKS or removing things you don't need is left as an exercise for the reader.

I use UUIDs everywhere, since the userspace mount command is in the initrd. blkid is your friend.

Every block device has a UUID.  e.g. /dev/sda1 is a block device, so it has a UUID.  The filesystem on /dev/sda1 is also a block device.  It has its own but different UUID.  Be sure to use the right UUIDs.

You feed initramfs_list to gen_init_cpio, which can be found in /usr/src/linux/usr and it outputs the corresponding initramfs, straight into /boot if you want.

From memory, gen_init_cpio supports -h  or --help.

The Gentoo Wiki is another good source of information.

----------

## JohnBlbec

NeddySeagoon,

thank you for your post. i will study your solution (i know the article on wiki, of course). i would expect that genkernel itself generates the right initramfs and i would prefer that way but it seems it does not. unfortunately. ok, thanks once again.

----------

## NeddySeagoon

JohnBlbec,

I'm old and cynical and don't trust black magic at all, since I have to fix it when it breaks anyway.

For me, that means I need to make my own initrd.

----------

## JohnBlbec

I understood you but I am lazy. Unfortunately, there is no other way then yours to be satisfied...

----------

## whywhy

How about using dracut ?

It seem to create a initramfs that will perform a fsck before mounting / and /usr.

----------

