Summary: | eclean-kernel doesn't work w/ grub2 when /boot is FAT | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Douglas J Hunley <doug.hunley> |
Component: | Current packages | Assignee: | Michał Górny <mgorny> |
Status: | RESOLVED TEST-REQUEST | ||
Severity: | normal | ||
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Douglas J Hunley
2013-02-15 14:48:25 UTC
As a temporary workaround you can mount with iocharset=utf8 so the filesystem becomes case sensitive. Keep in mind however that Windows does not handle well if two files' filenames differ only in case. (In reply to comment #1) > As a temporary workaround you can mount with iocharset=utf8 so the > filesystem becomes case sensitive. I'll try this, thanks > Keep in mind however that Windows does not handle well if two files' > filenames differ only in case. No other OS on this machine (I even nuked OSX completely) so that's not much of a concern thankfully It appears that the mount option recommended doesn't help: doug-mac ~ # mount|grep /boot /dev/sda1 on /boot type vfat (rw,iocharset=utf8) doug-mac ~ # grep vmlinuz /boot/grub2/grub.cfg grep: /boot/grub2/grub.cfg: No such file or directory doug-mac ~ # grep vmlinuz /boot/GRUB2/grub.cfg linux /vmlinuz-3.8.0-gentoo root=/dev/sda3 ro linux /vmlinuz-3.8.0-gentoo root=/dev/sda3 ro linux /vmlinuz-3.8.0-gentoo root=/dev/sda3 ro single linux /vmlinuz-3.7.8-gentoo root=/dev/sda3 ro linux /vmlinuz-3.7.8-gentoo root=/dev/sda3 ro single doug-mac ~ # eclean-kernel -a -p Preserving currently running kernel (3.7.8-gentoo) These are the kernels which would be removed: - 3.8.0-gentoo: not referenced by bootloader (symlinks) - 3.7.7-gentoo: vmlinuz does not exist, not referenced by bootloader (symlinks) Note that the 'grep' that used to work, now fails with this mount option :( I don't really see where something could fail here. Could you run with '--debug' please? And please also paste 'eclean-kernel --list-kernels'. doug-mac ~ # mount|grep boot /dev/sda1 on /boot type vfat (rw,iocharset=utf8) doug-mac ~ # ls /boot EFI System.map-3.7.8-gentoo config-3.7.8-gentoo vmlinuz-3.7.8-gentoo GRUB2 System.map-3.8.0-gentoo config-3.8.0-gentoo vmlinuz-3.8.0-gentoo doug-mac ~ # eclean-kernel --list-kernels 3.8.0-gentoo: - vmlinuz: /boot/vmlinuz-3.8.0-gentoo - systemmap: /boot/System.map-3.8.0-gentoo - config: /boot/config-3.8.0-gentoo - modules: /lib64/modules/3.8.0-gentoo - build: /usr/src/linux-3.8.0-gentoo 3.7.8-gentoo: - vmlinuz: /boot/vmlinuz-3.7.8-gentoo - systemmap: /boot/System.map-3.7.8-gentoo - config: /boot/config-3.7.8-gentoo - modules: /lib64/modules/3.7.8-gentoo - build: /usr/src/linux-3.7.8-gentoo doug-mac ~ # eclean-kernel -a -p --debug * Trying bootloader lilo * Trying bootloader grub2 * Trying bootloader grub * Trying bootloader yaboot * Trying bootloader symlinks * In get_removal_list() Preserving currently running kernel (3.7.8-gentoo) These are the kernels which would be removed: - 3.8.0-gentoo: not referenced by bootloader (symlinks) doug-mac ~ # It looks like it doesn't realize Grub2 is in use, so I tried to force it: doug-mac ~ # eclean-kernel -a -p --bootloader=grub2 Traceback (most recent call last): File "/usr/bin/eclean-kernel-python3.2", line 26, in <module> sys.exit(main(sys.argv)) File "/usr/lib64/python3.2/site-packages/ecleankernel/cli.py", line 142, in main debug = debug) File "/usr/lib64/python3.2/site-packages/ecleankernel/process.py", line 39, in get_removal_list % bootloader) SystemError: Unable to get kernels from bootloader config (None) doug-mac ~ # eclean-kernel -a -p --bootloader=grub2 --debug * Trying bootloader grub2 * In get_removal_list() Traceback (most recent call last): File "/usr/bin/eclean-kernel-python3.2", line 26, in <module> sys.exit(main(sys.argv)) File "/usr/lib64/python3.2/site-packages/ecleankernel/cli.py", line 142, in main debug = debug) File "/usr/lib64/python3.2/site-packages/ecleankernel/process.py", line 39, in get_removal_list % bootloader) SystemError: Unable to get kernels from bootloader config (None) doug-mac ~ # Well, since you set iocharset, the filesystem became case-insensitive and eclean-kernel behaves properly now. You can either: a) try to debug it further -- unmount, mount it again *without* the iocharset thing so it becomes case-insensitive and show me debug then, b) or just mv /boot/{GRUB2,grub2} while it is mounted case-sensitive and it should work from now on. Also, from your first paste it seems that eclean-kernel was actually reading the config file but didn't match kernels from it for some reason. doug-mac ~ # mount|grep boot /dev/sda1 on /boot type vfat (rw) doug-mac ~ # eclean-kernel -a -p --debug * Trying bootloader lilo * Trying bootloader grub2 ** /boot/grub2/grub.cfg found * In get_removal_list() ** Config is autogenerated, ignoring Preserving currently running kernel (3.7.8-gentoo) These are the kernels which would be removed: - 3.8.0-gentoo: not referenced by bootloader (grub2) Bootloader grub2 config will be updated. doug-mac ~ # !grep grep vmlinuz /boot/GRUB2/grub.cfg linux /vmlinuz-3.8.0-gentoo root=/dev/sda3 ro linux /vmlinuz-3.8.0-gentoo root=/dev/sda3 ro linux /vmlinuz-3.8.0-gentoo root=/dev/sda3 ro single linux /vmlinuz-3.7.8-gentoo root=/dev/sda3 ro linux /vmlinuz-3.7.8-gentoo root=/dev/sda3 ro single doug-mac ~ # Sorry for answering that late. (In reply to Douglas J Hunley from comment #8) > ** Config is autogenerated, ignoring This is the key note. When config is autogenerated, grub automatically adds and removes kernels from it. eclean-kernel can't really make any useful info out of that as usually all kernels will be there. You need to use '-nX' to decide how many recent kernels you want to keep. However, I could also add some kind of failsafe to prevent removing the last kernel. I don't think this is going to happen with most recent version (2.99.*). Please reopen if you still hit it though. |