Git Product home page Git Product logo

eclean-kernel's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

eclean-kernel's Issues

No module named 'zstandard'

Hi. This appears on latest app-admin/eclean-kernel-2.99.3.
Please see logs:

# eclean-kernel -d -n2
eclean-kernel has met the following issue:

  MissingDecompressorError('Kernel file /boot/initramfs-5.10.57-gentoo-dist.img is compressed with zstandard, but the required decompressor is not installed')

If you believe that the mentioned issue is a bug, please report it
to https://github.com/mgorny/eclean-kernel/issues. If possible,
please attach the output of 'eclean-kernel --list-kernels' and your
regular eclean-kernel call with additional '--debug' argument.

eclean-kernel --list-kernels - same output.

# eclean-kernel -d -n2 --debug
DEBUG:root:Sorter: <ecleankernel.sort.VersionSort object at 0x7f0db6da4e20>
DEBUG:root:Layout failed: <class 'ecleankernel.layout.blspec.BlSpecLayout'>; exception: /boot/[EFI/]a70bb35d35ccc8619ddc93435fe66214 not found
DEBUG:root:Layout: <ecleankernel.layout.std.StdLayout object at 0x7f0db6da4d30>
DEBUG:root:Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'>
DEBUG:root:Bootloader failed: <class 'ecleankernel.bootloader.grub2.GRUB2'>
DEBUG:root:Bootloader failed: <class 'ecleankernel.bootloader.grub.GRUB'>
DEBUG:root:Bootloader failed: <class 'ecleankernel.bootloader.yaboot.Yaboot'>
DEBUG:root:Bootloader: <ecleankernel.bootloader.symlinks.Symlinks object at 0x7f0db6da4e80>
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/ecleankernel/file.py", line 116, in decompress_raw
    mod = importlib.import_module(comp)
  File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'zstandard'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python-exec/python3.9/eclean-kernel", line 33, in <module>
    sys.exit(load_entry_point('eclean-kernel==2.99.3', 'console_scripts', 'eclean-kernel')())
  File "/usr/lib/python3.9/site-packages/ecleankernel/__main__.py", line 382, in setuptools_main
    sys.exit(main(sys.argv[1:]))
  File "/usr/lib/python3.9/site-packages/ecleankernel/__main__.py", line 227, in main
    kernels = layout.find_kernels(exclusions=exclusions)
  File "/usr/lib/python3.9/site-packages/ecleankernel/layout/std.py", line 94, in find_kernels
    kobj = KernelImage(path)
  File "/usr/lib/python3.9/site-packages/ecleankernel/file.py", line 97, in __init__
    self.internal_version = self.read_internal_version()
  File "/usr/lib/python3.9/site-packages/ecleankernel/file.py", line 160, in read_internal_version
    b = self.decompress_raw()
  File "/usr/lib/python3.9/site-packages/ecleankernel/file.py", line 118, in decompress_raw
    raise MissingDecompressorError(
ecleankernel.file.MissingDecompressorError: Kernel file /boot/initramfs-5.10.57-gentoo-dist.img is compressed with zstandard, but the required decompressor is not installed
# emerge -DuNq world
>>> Verifying ebuild manifests
>>> Emerging (1 of 1) app-admin/eclean-kernel-2.99.2::gentoo
>>> Installing (1 of 1) app-admin/eclean-kernel-2.99.2::gentoo
#
# eclean-kernel -d -n2
Legend:
[-] file being removed
[x] file does not exist (anymore)
[+] file being kept (used by other kernels

* Removing kernel 5.10.56-gentoo-dist (unwanted)
 [-] /boot/vmlinuz-5.10.56-gentoo-dist
 [-] /lib/modules/5.10.56-gentoo-dist
 [-] /boot/config-5.10.56-gentoo-dist
 [-] /boot/initramfs-5.10.56-gentoo-dist.img
 [-] /boot/System.map-5.10.56-gentoo-dist
Removed 1 kernels
#
# eclean-kernel --list-kernels
5.10.58-gentoo-dist [5.10.58-gentoo-dist]
- systemmap: /boot/System.map-5.10.58-gentoo-dist
- config: /boot/config-5.10.58-gentoo-dist
- initramfs: /boot/initramfs-5.10.58-gentoo-dist.img
- vmlinuz: /boot/vmlinuz-5.10.58-gentoo-dist
- modules: /lib/modules/5.10.58-gentoo-dist
- build: /lib/modules/5.10.58-gentoo-dist/../../../usr/src/linux-5.10.58-gentoo-dist
- last modified: 2021-08-12 19:32:06
5.10.57-gentoo-dist [5.10.57-gentoo-dist]
- systemmap: /boot/System.map-5.10.57-gentoo-dist
- config: /boot/config-5.10.57-gentoo-dist
- initramfs: /boot/initramfs-5.10.57-gentoo-dist.img
- vmlinuz: /boot/vmlinuz-5.10.57-gentoo-dist
- modules: /lib/modules/5.10.57-gentoo-dist
- last modified: 2021-08-09 17:56:02

/boot no longer automatically mounted

Version: 2.99.2

When /boot isn't mounted, I get this error message:

eclean-kernel has met the following issue:

SystemError('No vmlinuz found. This seems ridiculous, aborting.')

When /boot is mounted, it works. It automatically mounted with 0.4.3. eclean-kernel --help lists the --no-mount option, which indicates that it should automatically mount by default.

Debug output:

$ sudo eclean-kernel --list-kernels
5.10.49-gentoo-r1-x86_64 [None]
- modules: /lib/modules/5.10.49-gentoo-r1-x86_64
- build: /usr/src/linux-5.10.49-gentoo-r1
- last modified: 2021-07-17 11:58:31
$ sudo eclean-kernel -n 2 --destructive --debug
DEBUG:root:Layout failed: <class 'ecleankernel.layout.blspec.BlSpecLayout'>; exception: /boot/[EFI/]918b823714be1082a7eebebf5ac4ea54 not found
DEBUG:root:Layout: <ecleankernel.layout.std.StdLayout object at 0x7f5e22b7bb50>
DEBUG:root:Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'>
DEBUG:root:Bootloader failed: <class 'ecleankernel.bootloader.grub2.GRUB2'>
DEBUG:root:Bootloader failed: <class 'ecleankernel.bootloader.grub.GRUB'>
DEBUG:root:Bootloader failed: <class 'ecleankernel.bootloader.yaboot.Yaboot'>
DEBUG:root:Bootloader: <ecleankernel.bootloader.symlinks.Symlinks object at 0x7f5e22b7bb20>
DEBUG:root:Sorter: <ecleankernel.sort.VersionSort object at 0x7f5e22b7bbb0>
DEBUG:root:in get_removal_list()
Traceback (most recent call last):
  File "/usr/lib/python-exec/python3.9/eclean-kernel", line 33, in <module>
    sys.exit(load_entry_point('eclean-kernel==2.99.2', 'console_scripts', 'eclean-kernel')())
  File "/usr/lib/python3.9/site-packages/ecleankernel/__main__.py", line 382, in setuptools_main
    sys.exit(main(sys.argv[1:]))
  File "/usr/lib/python3.9/site-packages/ecleankernel/__main__.py", line 242, in main
    removals = get_removal_list(
  File "/usr/lib/python3.9/site-packages/ecleankernel/process.py", line 83, in get_removal_list
    raise SystemError(
SystemError: No vmlinuz found. This seems ridiculous, aborting.

Unable to load any modules after running eclean-kernel

Hello.
I've found rather critical bug that caused my server malfunction for several hours (time needed to recompile a kernel).

Steps to reproduce:

  1. Compile a kernel with genkernel.
  2. Recompile the same kernel version with genkernel again (for example, I decided to recompile the kernel with different config).
  3. Run eclean-kernel -n 1

After the second compilation you have the following layout:

lily ~ # eclean-kernel -l
5.17.9-gentoo-x86_64 [5.17.9-gentoo-x86_64]
- systemmap: /boot/System.map-5.17.9-gentoo-x86_64
- initramfs: /boot/initramfs-5.17.9-gentoo-x86_64.img
- vmlinuz: /boot/vmlinuz-5.17.9-gentoo-x86_64
- modules: /lib/modules/5.17.9-gentoo-x86_64
- build: /usr/src/linux-5.17.9-gentoo
- last modified: 2022-09-12 09:37:10
5.17.9-gentoo-x86_64.old [5.17.9-gentoo-x86_64]
- systemmap: /boot/System.map-5.17.9-gentoo-x86_64.old
- initramfs: /boot/initramfs-5.17.9-gentoo-x86_64.img.old
- vmlinuz: /boot/vmlinuz-5.17.9-gentoo-x86_64.old
- modules: /lib/modules/5.17.9-gentoo-x86_64
- build: /usr/src/linux-5.17.9-gentoo
- last modified: 2022-09-12 09:37:10
lily ~ # ls -l /boot /lib/modules/*
/boot:
total 56888
drwxr-xr-x 6 root root     4096 Sep 12 15:50 grub
-rw-r--r-- 1 root root 11716484 Sep 12 15:12 initramfs-5.17.9-gentoo-x86_64.img
-rw-r--r-- 1 root root 11716484 Sep 12 15:12 initramfs-5.17.9-gentoo-x86_64.img.old
-rw-r--r-- 1 root root 10798080 May 22 22:15 intel-uc.img
-rw-r--r-- 1 root root  5093296 Sep 12 12:37 System.map-5.17.9-gentoo-x86_64
-rw-r--r-- 1 root root  5093296 Sep 12 12:37 System.map-5.17.9-gentoo-x86_64.old
-rw-r--r-- 1 root root  6906112 Sep 12 12:38 vmlinuz-5.17.9-gentoo-x86_64
-rw-r--r-- 1 root root  6906112 Sep 12 12:38 vmlinuz-5.17.9-gentoo-x86_64.old

/lib/modules/5.17.9-gentoo-x86_64:
total 4724
lrwxrwxrwx  1 root root      28 May 21 22:12 build -> /usr/src/linux-5.17.9-gentoo
drwxr-xr-x 14 root root    4096 Sep 12 15:12 kernel
-rw-r--r--  1 root root 1183583 Sep 12 15:12 modules.alias
-rw-r--r--  1 root root 1153484 Sep 12 15:12 modules.alias.bin
-rw-r--r--  1 root root    7051 Sep 12 15:11 modules.builtin
-rw-r--r--  1 root root   18808 Sep 12 15:12 modules.builtin.alias.bin
-rw-r--r--  1 root root    9415 Sep 12 15:12 modules.builtin.bin
-rw-r--r--  1 root root   57485 Sep 12 15:11 modules.builtin.modinfo
-rw-r--r--  1 root root  431094 Sep 12 15:12 modules.dep
-rw-r--r--  1 root root  587075 Sep 12 15:12 modules.dep.bin
-rw-r--r--  1 root root     453 Sep 12 15:12 modules.devname
-rw-r--r--  1 root root  138549 Sep 12 15:11 modules.order
-rw-r--r--  1 root root    1144 Sep 12 15:12 modules.softdep
-rw-r--r--  1 root root  551107 Sep 12 15:12 modules.symbols
-rw-r--r--  1 root root  665591 Sep 12 15:12 modules.symbols.bin
lrwxrwxrwx  1 root root      28 Sep 12 15:11 source -> /usr/src/linux-5.17.9-gentoo

Now run eclean-kernel:

lily ~ # eclean-kernel -p -n 1
Legend:
[-] file being removed
[+] file being kept (used by other kernels)

These are the kernels which would be removed:
- 5.17.9-gentoo-x86_64.old: not referenced by bootloader (grub2)
 [-] /boot/vmlinuz-5.17.9-gentoo-x86_64.old
 [+] /usr/src/linux-5.17.9-gentoo
 [+] /lib/modules/5.17.9-gentoo-x86_64
 [-] /boot/System.map-5.17.9-gentoo-x86_64.old
 [-] /boot/initramfs-5.17.9-gentoo-x86_64.img.old
kernel-install will be called to perform prerm tasks.
Bootloader grub2 config will be updated.
lily ~ # eclean-kernel -n 1
Legend:
[-] file being removed
[x] file does not exist (anymore)
[+] file being kept (used by other kernels)

* Removing kernel 5.17.9-gentoo-x86_64.old (not referenced by bootloader (grub2))
 [-] /boot/vmlinuz-5.17.9-gentoo-x86_64.old
 [+] /usr/src/linux-5.17.9-gentoo
 [+] /lib/modules/5.17.9-gentoo-x86_64
 [-] /boot/System.map-5.17.9-gentoo-x86_64.old
 [-] /boot/initramfs-5.17.9-gentoo-x86_64.img.old
Removed 1 kernels
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.17.9-gentoo-x86_64
Found initrd image: /boot/intel-uc.img /boot/initramfs-5.17.9-gentoo-x86_64.img
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
done

And you end up with this:

lily ~ # eclean-kernel -l
5.17.9-gentoo-x86_64 [5.17.9-gentoo-x86_64]
- systemmap: /boot/System.map-5.17.9-gentoo-x86_64
- initramfs: /boot/initramfs-5.17.9-gentoo-x86_64.img
- vmlinuz: /boot/vmlinuz-5.17.9-gentoo-x86_64
- modules: /lib/modules/5.17.9-gentoo-x86_64
- build: /usr/src/linux-5.17.9-gentoo
- last modified: 2022-09-12 09:37:10
lily ~ # ls -l /boot /lib/modules/*
/boot:
total 33720
drwxr-xr-x 6 root root     4096 Sep 12 15:59 grub
-rw-r--r-- 1 root root 11716484 Sep 12 15:12 initramfs-5.17.9-gentoo-x86_64.img
-rw-r--r-- 1 root root 10798080 May 22 22:15 intel-uc.img
-rw-r--r-- 1 root root  5093296 Sep 12 12:37 System.map-5.17.9-gentoo-x86_64
-rw-r--r-- 1 root root  6906112 Sep 12 12:38 vmlinuz-5.17.9-gentoo-x86_64

/lib/modules/5.17.9-gentoo-x86_64:
total 208
lrwxrwxrwx  1 root root     28 May 21 22:12 build -> /usr/src/linux-5.17.9-gentoo
drwxr-xr-x 14 root root   4096 Sep 12 15:12 kernel
-rw-r--r--  1 root root   7051 Sep 12 15:11 modules.builtin
-rw-r--r--  1 root root  57485 Sep 12 15:11 modules.builtin.modinfo
-rw-r--r--  1 root root 138549 Sep 12 15:11 modules.order
lrwxrwxrwx  1 root root     28 Sep 12 15:11 source -> /usr/src/linux-5.17.9-gentoo

For some reason, eclean-kernel removed most of the /lib/modules/5.17.9-gentoo-x86_64/modules.* files, leaving only modules.builtin, modules.builtin.modinfo and modules.order.

This makes the system unable to load any modules. I've accidentally found this after a reboot - hardware attached to my server wasn't working because the modules were not loaded.

NotADirectoryError(20, 'Not a directory')

Haven't seen this before? Is the issue on my end?

➜ eclean-kernel -An2
eclean-kernel has met the following issue:

  NotADirectoryError(20, 'Not a directory')

If you believe that the mentioned issue is a bug, please report it
to https://github.com/mgorny/eclean-kernel/issues. If possible,
please attach the output of 'eclean-kernel --list-kernels' and your
regular eclean-kernel call with additional '--debug' argument.
➜ eclean-kernel --list-kernels --debug
DEBUG:root:Sorter: <ecleankernel.sort.VersionSort object at 0x7f89db1faad0>
DEBUG:root:Layout failed: <class 'ecleankernel.layout.blspec.BlSpecLayout'>; exception: /boot/[EFI/]a85f29c445c0b751729c47a963650897 not found
DEBUG:root:Layout: <ecleankernel.layout.std.StdLayout object at 0x7f89db1fa680>
DEBUG:root:Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'>
DEBUG:root:/boot/grub/grub.cfg found
DEBUG:root:Bootloader: <ecleankernel.bootloader.grub2.GRUB2 object at 0x7f89db1fa500>
6.0.8-gentoo [6.0.8-gentoo]
- systemmap: /boot/System.map-6.0.8-gentoo
- config: /boot/config-6.0.8-gentoo
- vmlinuz: /boot/vmlinuz-6.0.8-gentoo
- modules: /lib/modules/6.0.8-gentoo
- build: /usr/src/linux-6.0.8-gentoo
- last modified: 2022-11-10 23:06:43
6.0.7-gentoo [6.0.7-gentoo]
- systemmap: /boot/System.map-6.0.7-gentoo
- config: /boot/config-6.0.7-gentoo
- vmlinuz: /boot/vmlinuz-6.0.7-gentoo
- modules: /lib/modules/6.0.7-gentoo
- build: /usr/src/linux-6.0.7-gentoo
- last modified: 2022-11-07 11:37:12
6.0.7-gentoo.old [6.0.7-gentoo]
- systemmap: /boot/System.map-6.0.7-gentoo.old
- config: /boot/config-6.0.7-gentoo.old
- vmlinuz: /boot/vmlinuz-6.0.7-gentoo.old
- modules: /lib/modules/6.0.7-gentoo
- build: /usr/src/linux-6.0.7-gentoo
- last modified: 2022-11-05 05:07:24
➜ l /boot       
Permissions Size User Date Modified Name
drwxr-xr-x     - root  5 Nov 00:57  EFI
drwxr-xr-x     - root 10 Nov 16:37  grub
.rwxr-xr-x  144k root  7 Nov 03:37  config-6.0.7-gentoo
.rwxr-xr-x  144k root  4 Nov 22:07  config-6.0.7-gentoo.old
.rwxr-xr-x  144k root 10 Nov 15:06  config-6.0.8-gentoo
.rwxr-xr-x  5.6M root  7 Nov 03:37  System.map-6.0.7-gentoo
.rwxr-xr-x  5.6M root  4 Nov 22:07  System.map-6.0.7-gentoo.old
.rwxr-xr-x  5.6M root 10 Nov 15:06  System.map-6.0.8-gentoo
.rwxr-xr-x   10M root  7 Nov 03:37  vmlinuz-6.0.7-gentoo
.rwxr-xr-x   10M root  4 Nov 22:07  vmlinuz-6.0.7-gentoo.old
.rwxr-xr-x   10M root 10 Nov 15:06  vmlinuz-6.0.8-gentoo

➜ l /boot/EFI/gentoo/grubx64.efi 
Permissions Size User Date Modified Name
.rwxr-xr-x  135k root  5 Nov 00:57  /boot/EFI/gentoo/grubx64.efi

NameError("name 'errno' is not defined",)

Getting this message:

sandra /usr/src/linux # eclean-kernel -n3
* Removing kernel 5.2.11-sandra (not referenced by bootloader (grub2))
- /boot/vmlinuz-5.2.11-sandra
- /boot/System.map-5.2.11-sandra
- /boot/config-5.2.11-sandra
- /lib/modules/5.2.11-sandra
- /usr/src/linux-5.2.11
* Removing kernel 5.2.9-sandra (not referenced by bootloader (grub2))
- /boot/vmlinuz-5.2.9-sandra
- /boot/System.map-5.2.9-sandra
- /boot/config-5.2.9-sandra
- /lib/modules/5.2.9-sandra
- /usr/src/linux-5.2.9
* Removing kernel 5.2.8-sandra (not referenced by bootloader (grub2))
- /boot/vmlinuz-5.2.8-sandra
- /boot/System.map-5.2.8-sandra
- /boot/config-5.2.8-sandra
- /lib/modules/5.2.8-sandra
- /usr/src/linux-5.2.8
* Removing kernel 5.2.1-sandra (not referenced by bootloader (grub2))
- /boot/vmlinuz-5.2.1-sandra
- /boot/System.map-5.2.1-sandra
- /boot/config-5.2.1-sandra
- /lib/modules/5.2.1-sandra
- /usr/src/linux-5.2.1
Removed 4 kernels
eclean-kernel has met the following issue:

  NameError("name 'errno' is not defined",)

If you believe that the mentioned issue is a bug, please report it
to https://github.com/mgorny/eclean-kernel/issues. If possible,
please attach the output of 'eclean-kernel --list-kernels' and your
regular eclean-kernel call with additional '--debug' argument.
sandra /usr/src/linux # 

NotImplementedError Invalid magic

root@gentooserver /media/store/Data/VM/gnu-hurd/cross-hurd-smp # ls /boot
EFI                                     System.map-5.3.12-gentoo-x86_64      vmlinuz-5.4.28-gentoo-x86_64
grub                                    System.map-5.3.12-gentoo-x86_64.old  vmlinuz-5.4.28-gentoo-x86_64.old
initramfs-5.3.12-gentoo-x86_64.img      System.map-5.4.28-gentoo-x86_64      vmlinuz-5.4.38-gentoo-x86_64
initramfs-5.3.12-gentoo-x86_64.img.old  System.map-5.4.28-gentoo-x86_64.old  vmlinuz-5.4.38-gentoo-x86_64.old
initramfs-5.4.28-gentoo-x86_64.img      System.map-5.4.38-gentoo-x86_64      vmlinuz-5.4.48-gentoo-x86_64
initramfs-5.4.28-gentoo-x86_64.img.old  System.map-5.4.38-gentoo-x86_64.old  vmlinuz-5.4.48-gentoo-x86_64.old
initramfs-5.4.38-gentoo-x86_64.img      System.map-5.4.48-gentoo-x86_64      vmlinuz-5.4.60-gentoo-x86_64
initramfs-5.4.38-gentoo-x86_64.img.old  System.map-5.4.48-gentoo-x86_64.old  vmlinuz-5.4.60-gentoo-x86_64.old
initramfs-5.4.48-gentoo-x86_64.img      System.map-5.4.60-gentoo-x86_64      vmlinuz-5.4.66-gentoo-x86_64
initramfs-5.4.48-gentoo-x86_64.img.old  System.map-5.4.60-gentoo-x86_64.old  vmlinuz-5.4.66-gentoo-x86_64.old
initramfs-5.4.60-gentoo-x86_64.img      vmlinuz-5.3.12-gentoo-x86_64
initramfs-5.4.60-gentoo-x86_64.img.old  vmlinuz-5.3.12-gentoo-x86_64.old
root@gentooserver /media/store/Data/VM/gnu-hurd/cross-hurd-smp # eclean-kernel --debug -dn 2
Traceback (most recent call last):
  File "/usr/lib/python-exec/python3.7/eclean-kernel", line 26, in <module>
    sys.exit(main(sys.argv))
  File "/usr/lib/python3.7/site-packages/ecleankernel/cli.py", line 156, in main
    kernels = find_kernels(exclusions=exclusions)
  File "/usr/lib/python3.7/site-packages/ecleankernel/kernel.py", line 275, in find_kernels
    realkv = newk.real_kv
  File "/usr/lib/python3.7/site-packages/ecleankernel/kernel.py", line 156, in real_kv
    + ' %s (!= HdrS)' % vmlinuz)
NotImplementedError: Invalid magic for kernel file /boot/vmlinuz-5.4.66-gentoo-x86_64 (!= HdrS)
root@gentooserver /media/store/Data/VM/gnu-hurd/cross-hurd-smp # eclean-kernel --list-kernels
eclean-kernel has met the following issue:

  NotImplementedError('Invalid magic for kernel file /boot/vmlinuz-5.4.66-gentoo-x86_64 (!= HdrS)')

If you believe that the mentioned issue is a bug, please report it
to https://github.com/mgorny/eclean-kernel/issues. If possible,
please attach the output of 'eclean-kernel --list-kernels' and your
regular eclean-kernel call with additional '--debug' argument.

Can’t handle different file names.

I stopped calling my kernel files “vmlinuz” a long time ago, because it doesn’t fit modern systems and formats.
And eclean-kernel just removed ALL my kernels! If the config files hadn’t been saved somewhere else too, they’d be gone and I would have had to re-install from backups before rebooting, or been left with a broken system. :/

My layout is as follows: In /boot, there are symlinks
.config -> /boot/.config-$currentVersion
.config.stable -> /boot/.config-$lastVersion
System.map -> /boot/System.map-$currentVersion
System.map.stable -> /boot/System.map-$lastVersion
kernel -> /boot/kernel-$currentVersion
kernel.stable -> /boot/kernel-$lastVersion

E.g.
currentVersion=5.13.10-zen1.0
lastVersion=5.13.4-zen1.0

eclean-kernel deleted every System.map-* and every kernel-* and then all /etc/src/linux-* directories too, including the .config files therein.

Looking at its, frankly, gigantic amount of source code for such a simple program, I cannot even locate where to alter what it looks for to determine which kernels are still in use. It seems to all be much too generic code. So I’m even more surprised it failed for my case. (Did it fail because of the symlinks?)

So can you please enable people to specify how they named their stuff inside /boot?
Because like this, eclean-kernel is not only useless for all but “I don’t care, just do it the standard way” cases… when the whole point of Gentoo is that you care and customize… but it also can be out-performed by a 5-line bash script. (Or a Haskell one-liner, albeit in write-only code ;)

eclean-kernel removes icon file installed by installkernel[refind]

sys-kernel/installkernel-28 with USE=refind set, app-admin/eclean-kernel-2.99.7
Running eclean-kernel -n 2 results in

Legend:
[-] file being removed
[x] file does not exist (anymore)
[+] file being kept (used by other kernels)

* Removing kernel other 6.8.0-gentoo.png (vmlinuz does not exist)
 [-] /boot/vmlinuz-6.8.0-gentoo.png
* Removing kernel other 6.7.9-gentoo.png (vmlinuz does not exist)
 [-] /boot/vmlinuz-6.7.9-gentoo.png
* Removing kernel other 6.7.8-gentoo (not referenced by bootloader (symlinks))
 [-] /boot/vmlinuz-6.7.8-gentoo
 [-] /usr/src/linux-6.7.8-gentoo
 [-] /lib/modules/6.7.8-gentoo
 [-] /boot/config-6.7.8-gentoo
 [-] /boot/System.map-6.7.8-gentoo
* Removing kernel other 6.7.7-gentoo (not referenced by bootloader (symlinks))
 [-] /boot/vmlinuz-6.7.7-gentoo
 [-] /usr/src/linux-6.7.7-gentoo
 [-] /lib/modules/6.7.7-gentoo
 [-] /boot/System.map-6.7.7-gentoo
 [-] /boot/config-6.7.7-gentoo
Removed 4 kernels

End content of /boot is

config-6.7.9-gentoo  config-6.8.0-gentoo  EFI  lost+found  refind_linux.conf  System.map-6.7.9-gentoo  System.map-6.8.0-gentoo  vmlinuz-6.7.9-gentoo  vmlinuz-6.8.0-gentoo

As png files have same names as accompanying kernel images, their removal should be done only when vmlinux file is deleted.

Proposal: Preserve N most recent minor versions

I'm willing to take a shot at a patch for this, but wanted to see if someone else had already been working on this.

  • eclean-kernel -n 3 makes a list of the 3 most recent versions to preserve.
  • eclean-kernel -N 3 could make a list of kernel versions X.Y.Z where X and Y are fixed and Z is maximized.
  • eclean-kernel -n3 -N3 could make both lists and preserve any kernel which is a member of either set.

For example, say you have the following kernels on disk: 5.11.16, 5.11.15, 5.11.14, 5.11.13, 5.11.12, 5.10.16, 5.10.15, 5.10.10, 5.9.14, 5.9.12, 4.20.5 (a subset of my actual current situation)

-n3 would remove all but 5.11.16, 5.11.15, 5.11.14
-N3 would remove all but 5.11.16, 5.10.16, 5.9.14
-n3 -N3 would remove all but 5.11.16, 5.11.15, 5.11.14, 5.10.16, 5.9.14

Thoughts?

eclean-kernel has met the following issue: MissingDecompressorError('Kernel file /boot/initramfs-5.13.12-gentoo-x86_64.img is compressed with lzo, but the required decompressor is not installed')

However, emerge --info emerge app-arch/lzop shows:

...
=================================================================
                        Package Settings
=================================================================

app-arch/lzop-1.04::gentoo was built with the following:
USE="" ABI_X86="(64)"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs ccache clean-logs config-protect-if-modified distlocks ebuild-locks fail-clean fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"

Prompt should indicate default option

Note this is tested with v0.4.3 but I didn't spot any significant changes in current master so I assume this is still happening in current master:

  1. Run eclean-kernel --ask --destructive --all.
  2. You will get prompted like

    Remove 5.11.15-gentoo-x86_64 (unwanted)? [Yes/No]

  3. When you now press Enter, output will be
    • Removing kernel 5.11.15-gentoo-x86_64 (unwanted)
    • /boot/vmlinuz-5.11.15-gentoo-x86_64
    • /boot/System.map-5.11.15-gentoo-x86_64
    • /boot/initramfs-5.11.15-gentoo-x86_64.img
    • /lib/modules/5.11.15-gentoo-x86_64
    • /usr/src/linux-5.11.15-gentoo

This could be unexpected. How about indicating default action like known from make oldconfig? I.e. instead of

[Yes/No]

show

[YES/no]

so it should be clear that pressing Enter without any further input will proceed with removal.

Too many initramfs files are removed

I have the following inside my /boot.

ls -1 /boot
amd-uc.img
EFI
grub
initramfs-5.8.1-gentoo-x86_64.img
initramfs-5.8.1-gentoo-x86_64.old.img
initramfs-5.8.2-gentoo-x86_64.img
intel-uc.img
lost+found
System.map-5.8.1-gentoo-x86_64
System.map-5.8.1-gentoo-x86_64.old
System.map-5.8.2-gentoo-x86_64
vmlinuz-5.8.1-gentoo-x86_64
vmlinuz-5.8.1-gentoo-x86_64.old
vmlinuz-5.8.2-gentoo-x86_64

If I perform the following command I can see that only the .old kernel and related files will be removed.

eclean-kernel -d -n 2 -p            
These are the kernels which would be removed:
- 5.8.1-gentoo-x86_64.old: unwanted
kernel-install will be called to perform prerm tasks.

In order to be sure, I run the following command.

eclean-kernel -l        
5.8.2-gentoo-x86_64 [5.8.2-gentoo-x86_64]:
- vmlinuz: /boot/vmlinuz-5.8.2-gentoo-x86_64
- systemmap: /boot/System.map-5.8.2-gentoo-x86_64
- initramfs: /boot/initramfs-5.8.2-gentoo-x86_64.img
- modules: /lib/modules/5.8.2-gentoo-x86_64
- build: /usr/src/linux-5.8.2-gentoo
- last modified: 2020-08-20 16:21:44
5.8.1-gentoo-x86_64 [5.8.1-gentoo-x86_64]:
- vmlinuz: /boot/vmlinuz-5.8.1-gentoo-x86_64
- systemmap: /boot/System.map-5.8.1-gentoo-x86_64
- initramfs: /boot/initramfs-5.8.1-gentoo-x86_64.img
- modules: /lib/modules/5.8.1-gentoo-x86_64
- build: /usr/src/linux-5.8.1-gentoo
- last modified: 2020-08-18 18:35:56
5.8.1-gentoo-x86_64.old [5.8.1-gentoo-x86_64]:
- vmlinuz: /boot/vmlinuz-5.8.1-gentoo-x86_64.old
- systemmap: /boot/System.map-5.8.1-gentoo-x86_64.old
- initramfs: /boot/initramfs-5.8.1-gentoo-x86_64.old.img
- modules: /lib/modules/5.8.1-gentoo-x86_64
- build: /usr/src/linux-5.8.1-gentoo
- last modified: 2020-08-18 18:35:56

If I run the following command, it seems to perform what it is expected.

eclean-kernel -d -n 2   
* Removing kernel 5.8.1-gentoo-x86_64.old (unwanted)
- /boot/vmlinuz-5.8.1-gentoo-x86_64.old
- /boot/System.map-5.8.1-gentoo-x86_64.old
- /boot/initramfs-5.8.1-gentoo-x86_64.old.img
Removed 1 kernels

But if I double check, actually, eclean-kernel also removed the /boot/initramfs-5.8.1-gentoo-x86_64.img file. I didn't asked for that!

ls -1 /boot               
amd-uc.img
EFI
grub
initramfs-5.8.2-gentoo-x86_64.img
intel-uc.img
lost+found
System.map-5.8.1-gentoo-x86_64
System.map-5.8.2-gentoo-x86_64
vmlinuz-5.8.1-gentoo-x86_64
vmlinuz-5.8.2-gentoo-x86_64

It seems that initramfs management is buggy. 😢

Repository description is outdated

Repository description says „Old version of kernel cleanup tool (unmaintained, bugs will be fixed only if patch is provided)”, which doesn't seem to be the case now.

Current implementation of bootloader processing does not work well with symlinks

This is a followup of #41 .

Briefly, with the following LILO configuration (all bootloaders are affected, but I only have LILO installed):

image=/boot/vmlinuz
        label=default
        read-write
        root=/dev/sda1
        append="net.ifnames=0 init=/sbin/openrc-init sysrq_always_enabled=1"
image=/boot/vmlinuz.old
        label=old
        read-write
        root=/dev/sda1
        append="net.ifnames=0 init=/sbin/openrc-init sysrq_always_enabled=1"

and these files in /boot:

-rw-r--r-- 1 root root     512 Jan  3  2022 boot.0800
lrwxrwxrwx 1 root root      18 Aug 13 11:49 config -> config-6.4.10-test
-rw-r--r-- 1 root root  109325 Aug 13 11:49 config-6.4.10-test
-rw-r--r-- 1 root root  109229 Aug  4 08:24 config-6.4.8-test
-rw-r--r-- 1 root root  109324 Aug 10 16:45 config-6.4.9-test
lrwxrwxrwx 1 root root      17 Aug 10 16:45 config.old -> config-6.4.9-test
-rw-r--r-- 1 root root       0 Jan  2  2022 .keep
-rw------- 1 root root   23040 Aug 13 11:49 map
lrwxrwxrwx 1 root root      22 Aug 13 11:49 System.map -> System.map-6.4.10-test
-rw-r--r-- 1 root root 4288104 Aug 13 11:49 System.map-6.4.10-test
-rw-r--r-- 1 root root 4286603 Aug  4 08:24 System.map-6.4.8-test
-rw-r--r-- 1 root root 4287870 Aug 10 16:45 System.map-6.4.9-test
lrwxrwxrwx 1 root root      21 Aug 10 16:45 System.map.old -> System.map-6.4.9-test
lrwxrwxrwx 1 root root      19 Aug 13 11:49 vmlinuz -> vmlinuz-6.4.10-test
-rw-r--r-- 1 root root 7913168 Aug 13 11:49 vmlinuz-6.4.10-test
-rw-r--r-- 1 root root 7909136 Aug  4 08:24 vmlinuz-6.4.8-test
-rw-r--r-- 1 root root 7911952 Aug 10 16:45 vmlinuz-6.4.9-test
lrwxrwxrwx 1 root root      18 Aug 10 16:45 vmlinuz.old -> vmlinuz-6.4.9-test

then running eclean-kernel -a, the expectation is that only the following files would be deleted (everything else is used by the bootloader):

-rw-r--r-- 1 root root  109229 Aug  4 08:24 config-6.4.8-test
-rw-r--r-- 1 root root 4286603 Aug  4 08:24 System.map-6.4.8-test
-rw-r--r-- 1 root root 7909136 Aug  4 08:24 vmlinuz-6.4.8-test

Instead, the regex substitution here fails and only the currently running kernel is preserved, which means at least one more kernel is deleted.

ValueError: embedded null byte

I get ValueError: embedded null byte when running eclean-kernel version 2.99.3:

* Removing kernel 5.13.16-gentoo-dist (not referenced by bootloader (grub2))                                                                                                             
Traceback (most recent call last):                                                                        
  File "/usr/lib/python-exec/python3.9/eclean-kernel", line 33, in <module>                                                                                                              
    sys.exit(load_entry_point('eclean-kernel==2.99.3', 'console_scripts', 'eclean-kernel')())   
  File "/usr/lib/python3.9/site-packages/ecleankernel/__main__.py", line 382, in setuptools_main                                                                                         
    sys.exit(main(sys.argv[1:]))                                                                                                                                                         
  File "/usr/lib/python3.9/site-packages/ecleankernel/__main__.py", line 332, in main                                                                                                    
    p = subprocess.Popen(scmd)                                                                            
  File "/usr/lib/python3.9/subprocess.py", line 951, in __init__                                 self._execute_child(args, executable, preexec_fn, close_fds,                                                                                                                         
  File "/usr/lib/python3.9/subprocess.py", line 1754, in _execute_child                                                                                                                  
    self.pid = _posixsubprocess.fork_exec(     
ValueError: embedded null byte

Using pdb shows the null byte:

* Removing kernel 5.13.15-gentoo-dist (not referenced by bootloader (grub2))
> /usr/lib/python3.9/site-packages/ecleankernel/__main__.py(332)main()
-> p = subprocess.Popen(scmd)
(Pdb) 
 [-] /boot/vmlinuz-5.13.15-gentoo-dist
 [-] /lib/modules/5.13.15-gentoo-dist
 [-] /boot/System.map-5.13.15-gentoo-dist
 [-] /boot/config-5.13.15-gentoo-dist
* Removing kernel 5.13.15-gentoo-dist (not referenced by bootloader (grub2))
> /usr/lib/python3.9/site-packages/ecleankernel/__main__.py(332)main()-> p = subprocess.Popen(scmd)
(Pdb) p scmd
['kernel-install', 'remove', '\x00CIFS', '/boot/initramfs-5.13.15-gentoo-dist.img']
(Pdb) p kf.internal_version
'\x00CIFS'
(Pdb) p kf
KernelImage(PosixPath('/boot/initramfs-5.13.15-gentoo-dist.img'))

Maybe a bug in KernelImage.read_internal_version()?

LZMAError('Compressed data ended before the end-of-stream marker was reached')

Thought I'd try this out and I came across:

$ eclean-kernel -l
eclean-kernel has met the following issue:

  LZMAError('Compressed data ended before the end-of-stream marker was reached')

If you believe that the mentioned issue is a bug, please report it
to https://github.com/mgorny/eclean-kernel/issues. If possible,
please attach the output of 'eclean-kernel --list-kernels' and your
regular eclean-kernel call with additional '--debug' argument.
➜  ~ eclean-kernel -lD
DEBUG:root:Sorter: <ecleankernel.sort.VersionSort object at 0x7fbda67a0f10>
DEBUG:root:Layout failed: <class 'ecleankernel.layout.blspec.BlSpecLayout'>; exception: /boot/[EFI/]18b34b2f29fbc54b6dd357085a1b8972 not found
DEBUG:root:Layout: <ecleankernel.layout.std.StdLayout object at 0x7fbda67cd130>
DEBUG:root:Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'>
DEBUG:root:/boot/grub/grub.cfg found
DEBUG:root:Bootloader: <ecleankernel.bootloader.grub2.GRUB2 object at 0x7fbda67cd160>
Traceback (most recent call last):
  File "/usr/lib/python-exec/python3.9/eclean-kernel", line 33, in <module>
    sys.exit(load_entry_point('eclean-kernel==2.99.3', 'console_scripts', 'eclean-kernel')())
  File "/usr/lib/python3.9/site-packages/ecleankernel/__main__.py", line 382, in setuptools_main
    sys.exit(main(sys.argv[1:]))
  File "/usr/lib/python3.9/site-packages/ecleankernel/__main__.py", line 227, in main
    kernels = layout.find_kernels(exclusions=exclusions)
  File "/usr/lib/python3.9/site-packages/ecleankernel/layout/std.py", line 94, in find_kernels
    kobj = KernelImage(path)
  File "/usr/lib/python3.9/site-packages/ecleankernel/file.py", line 97, in __init__
    self.internal_version = self.read_internal_version()
  File "/usr/lib/python3.9/site-packages/ecleankernel/file.py", line 160, in read_internal_version
    b = self.decompress_raw()
  File "/usr/lib/python3.9/site-packages/ecleankernel/file.py", line 135, in decompress_raw
    return getattr(mod, 'decompress')(f.read())
  File "/usr/lib/python3.9/lzma.py", line 350, in decompress
    raise LZMAError("Compressed data ended before the "
_lzma.LZMAError: Compressed data ended before the end-of-stream marker was reached

No source removal if no modules

Hi,
If I understand the source code correctly, the kernel source directory (/usr/src/linux-xxx) is tied to the module directory (/lib/modules/xxx) because it is read from a link (named build).
On one of my server, I have a kernel where CONFIG_MODULES is disabled. In this case, there is no modules directory and so, eclean-kernel is never removing my old sources.
Is there currently a way to say to eclean-kernel to remove the source directories without looking for the modules? Or could that be an option?
Thank you.

> eclean-kernel -l
6.1.38-gentoo [6.1.38-gentoo]
- systemmap: /boot/System.map-6.1.38-gentoo
- vmlinuz: /boot/vmlinuz-6.1.38-gentoo
- last modified: 2023-07-14 13:09:46
6.1.31-gentoo [6.1.31-gentoo]
- systemmap: /boot/System.map-6.1.31-gentoo
- vmlinuz: /boot/vmlinuz-6.1.31-gentoo
- last modified: 2023-06-03 12:47:53

`SystemError` with UKIs, cannot remove old kernels

Trying to remove old kernels, I get

# eclean-kernel -n 1 --debug
DEBUG:root:Sorter: <ecleankernel.sort.VersionSort object at 0x7f9cca7da030>
DEBUG:root:Layout: <ecleankernel.layout.blspec.BlSpecLayout object at 0x7f9cca7fffe0>
DEBUG:root:Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'>
DEBUG:root:Bootloader failed: <class 'ecleankernel.bootloader.grub2.GRUB2'>
DEBUG:root:Bootloader failed: <class 'ecleankernel.bootloader.grub.GRUB'>
DEBUG:root:Bootloader failed: <class 'ecleankernel.bootloader.yaboot.Yaboot'>
DEBUG:root:Bootloader: <ecleankernel.bootloader.symlinks.Symlinks object at 0x7f9cca8edeb0>
DEBUG:root:Unrecognized potential kernel image: Kernel file /boot/EFI/Linux/4ef3f0726da6cb6044514cac5e1c8c75-6.6.4-gentoo-dist.efi not recognized as any special format and unable to find version string in it
DEBUG:root:Unrecognized potential kernel image: Kernel file /boot/EFI/Linux/4ef3f0726da6cb6044514cac5e1c8c75-6.6.3-gentoo-dist.efi not recognized as any special format and unable to find version string in it
DEBUG:root:in get_removal_list()
Traceback (most recent call last):
  File "/usr/lib/python-exec/python3.12/eclean-kernel", line 8, in <module>
    sys.exit(setuptools_main())
             ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/ecleankernel/__main__.py", line 392, in setuptools_main
    sys.exit(main(sys.argv[1:]))
             ^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/ecleankernel/__main__.py", line 252, in main
    removals = get_removal_list(
               ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/ecleankernel/process.py", line 82, in get_removal_list
    raise SystemError(
SystemError: No vmlinuz found. This seems ridiculous, aborting.

importantly: these kernels have been produced with systemd's ukify, not with dracut.

Debug output:

# eclean-kernel --list-kernels --debug
DEBUG:root:Sorter: <ecleankernel.sort.VersionSort object at 0x7f893193a900>
DEBUG:root:Layout: <ecleankernel.layout.blspec.BlSpecLayout object at 0x7f89318f4230>
DEBUG:root:Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'>
DEBUG:root:Bootloader failed: <class 'ecleankernel.bootloader.grub2.GRUB2'>
DEBUG:root:Bootloader failed: <class 'ecleankernel.bootloader.grub.GRUB'>
DEBUG:root:Bootloader failed: <class 'ecleankernel.bootloader.yaboot.Yaboot'>
DEBUG:root:Bootloader: <ecleankernel.bootloader.symlinks.Symlinks object at 0x7f89319e9dc0>
DEBUG:root:Unrecognized potential kernel image: Kernel file /boot/EFI/Linux/4ef3f0726da6cb6044514cac5e1c8c75-6.6.4-gentoo-dist.efi not recognized as any special format and unable to find version string in it
DEBUG:root:Unrecognized potential kernel image: Kernel file /boot/EFI/Linux/4ef3f0726da6cb6044514cac5e1c8c75-6.6.3-gentoo-dist.efi not recognized as any special format and unable to find version string in it
uki 6.6.4-gentoo-dist [None]
- vmlinuz: /boot/EFI/Linux/4ef3f0726da6cb6044514cac5e1c8c75-6.6.4-gentoo-dist.efi
- modules: /lib/modules/6.6.4-gentoo-dist
- build: /lib/modules/6.6.4-gentoo-dist/../../../src/linux-6.6.4-gentoo-dist
- last modified: 2023-12-04 10:48:53
uki 6.6.3-gentoo-dist [None]
- vmlinuz: /boot/EFI/Linux/4ef3f0726da6cb6044514cac5e1c8c75-6.6.3-gentoo-dist.efi
- last modified: 2023-12-03 16:30:48

Can’t handle diferent file names.

I stopped calling my kernel files “vmlinuz” a long time ago, and eclean-kernel just removed ALL my kernels! If the config files hadn’t been saved somewhere else too, they’d be gone and I would have had to re-install from backups before rebooting, or been left with a broken system. :/

My layout is as follows: In /boot, there are symlinks
.config -> /boot/.config-$currentVersion
.config.stable -> /boot/.config-$lastVersion
. -> /boot/-$currentVersion
..stable -> /boot/-$lastVersion

Question: why, for grub2, grub.cfg is tested for "automatically generated" header?

Sorry if my question is silly, but I'm a a bit puzzled. I'm using genkernel to create and install my kernels. I tried to use eclean-kernel to remove old kernels and I noticed that it does not find any kernel referenced in grub.cfg (believe me, they are :) ).
It seems that is due to the line 30 of grub2.py, where the file is tested for the header "...DO NOT EDIT THIS FILE...". Is this the intended behavior? I'm not sure why this is done, as basically this could lead eclean-kernel to remove all kernel files even without -d parameter, that does not seems to be really safe.

Doesn't work

Hi,

For me it does nothing...

eclean-kernel -n 1 -p
No outdated kernels found.

eclean-kernel -l
genkernel-x86_64-4.19.44-gentoo [4.19.44-gentoo]:
- vmlinuz: /boot/kernel-genkernel-x86_64-4.19.44-gentoo
- systemmap: /boot/System.map-genkernel-x86_64-4.19.44-gentoo
- initramfs: /boot/initramfs-genkernel-x86_64-4.19.44-gentoo
- modules: /lib64/modules/4.19.44-gentoo
- build: /usr/src/linux-4.19.44-gentoo
- last modified: 2019-06-15 13:39:08
genkernel-x86_64-4.14.83-gentoo [4.14.83-gentoo]:
- vmlinuz: /boot/kernel-genkernel-x86_64-4.14.83-gentoo
- systemmap: /boot/System.map-genkernel-x86_64-4.14.83-gentoo
- initramfs: /boot/initramfs-genkernel-x86_64-4.14.83-gentoo
- modules: /lib64/modules/4.14.83-gentoo
- build: /usr/src/linux-4.14.83-gentoo
- last modified: 2019-01-26 11:51:00
genkernel-x86_64-4.14.78-gentoo [4.14.78-gentoo]:
- vmlinuz: /boot/kernel-genkernel-x86_64-4.14.78-gentoo
- systemmap: /boot/System.map-genkernel-x86_64-4.14.78-gentoo
- initramfs: /boot/initramfs-genkernel-x86_64-4.14.78-gentoo
- modules: /lib64/modules/4.14.78-gentoo
- build: /usr/src/linux-4.14.78-gentoo
- last modified: 2018-11-20 17:28:22
genkernel-x86_64-4.14.65-gentoo [4.14.65-gentoo]:
- vmlinuz: /boot/kernel-genkernel-x86_64-4.14.65-gentoo
- systemmap: /boot/System.map-genkernel-x86_64-4.14.65-gentoo
- initramfs: /boot/initramfs-genkernel-x86_64-4.14.65-gentoo
- modules: /lib64/modules/4.14.65-gentoo
- build: /usr/src/linux-4.14.65-gentoo
- last modified: 2018-10-24 21:14:48
genkernel-x86_64-4.9.76-gentoo-r1 [4.9.76-gentoo-r1]:
- vmlinuz: /boot/kernel-genkernel-x86_64-4.9.76-gentoo-r1
- systemmap: /boot/System.map-genkernel-x86_64-4.9.76-gentoo-r1
- initramfs: /boot/initramfs-genkernel-x86_64-4.9.76-gentoo-r1
- modules: /lib64/modules/4.9.76-gentoo-r1
- build: /usr/src/linux-4.9.76-gentoo-r1
- last modified: 2018-03-06 23:25:02

Can you please comment?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.