Summary: | genkernel-4: force mount /boot | ||
---|---|---|---|
Product: | Gentoo Hosted Projects | Reporter: | Alexandr Tiurin <alexanderyt> |
Component: | genkernel | Assignee: | Gentoo Genkernel Maintainers <genkernel> |
Status: | RESOLVED INVALID | ||
Severity: | normal | ||
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Alexandr Tiurin
2020-01-10 08:11:50 UTC
...but you still told genkernel to *install* things which means genkernel should install something into /boot by default. How should we do that when /boot isn't mounted and you told genkernel to mount it? If you run without /boot for some reason *on* purpose, you will also have to set --no-install. If you think I missed your point please write in detail what you are doing and what do you expect. Closing as INVALID for now. Why genkernel trying mount boot partition if no-mountboot option is present? The boot directory is present # file /boot /boot: directory thus It's enough for install vmlinuz (etc) to /boot. With genkernel 3 there was no such behavior. Olny "WARNING: No mounted /boot partition detected!" was present. # genkernel --no-mountboot all * Gentoo Linux Genkernel; Version 3.5.3.3 * Running with options: --no-mountboot all * Using genkernel.conf from /etc/genkernel.conf * Sourcing arch-specific config.sh from /usr/share/genkernel/arch/x86_64/config.sh .. * Sourcing arch-specific modules_load from /usr/share/genkernel/arch/x86_64/modules_load .. * Linux Kernel 4.19.86-gentoo for x86_64... * .. with config file /etc/kernels/kernel-config-x86_64-4.19.86-gentoo * WARNING: No mounted /boot partition detected! * Run mount /boot to mount it! * kernel: Using config from /usr/src/linux/.config * kernel: --mrproper is disabled; not running 'make mrproper'. * >> Running oldconfig... * kernel: --clean is disabled; not running 'make clean'. * >> Compiling 4.19.86-gentoo bzImage... You are commanding genkernel to compile kernel and install created kernel image into bootdir. Genkernel will detect that set bootdir (/boot by default) is a mountpoint (check /etc/fstab!). Because you also told genkernel that genkernel should *not* try to mount boot, genkernel now knows that you are going to shoot yourself into the foot: For example, if you really assume that kernel was installed to bootdir when genkernel ended with return code 0, you ended up with kernel in mount_dir_ but not in mount_point_. To make this more obvious: It's recommended to protect a mountdir with something like umount /boot chmod 400 /boot chattr +i /boot This way you will prevent that anything will write to that location when nothing is mounted (so you don't lose data and nothing will get overshadowed). When using genkernel-3, you would fail at this stage because cp would fail (https://gitweb.gentoo.org/proj/genkernel.git/tree/gen_funcs.sh?h=v3.5.3.3#n386). In genkernel-4 we just prevent that failure *earlier* (e.g. we try to error out as soon as possible). tl;dr --no-mountboot usually implies --no-install or you should really know what you are doing. If you want to lie to genkernel make sure that there is no /boot in /etc/fstab. |