On 01/28/15 at 12:49pm, Vivek Goyal wrote:
On Wed, Jan 28, 2015 at 11:31:51PM +0800, Baoquan He wrote:
On 01/28/15 at 09:40am, Vivek Goyal wrote:
On Wed, Jan 28, 2015 at 04:29:52PM +0800, Baoquan He wrote:
Previously /boot is asumed as the default dir where kernel and initrd is put. However, the directory containing the running kernel image on Atomic systems differs in each installation. Usually something like:
/boot/ostree/rhel-atomic-host-b50a015b637c353dc6554c851f8a1212b60d6121a7316715e4a63e2a4113cd72
This means that kdump will not find vmlinuz when installed on an Atomic host, and thus the kdump service will fail to start.
In this patch, get the sub directory where kernel is put and append it to /boot.
Note: If user change KDUMP_BOOTDIR to other directory, then he need to take care of all related things himself. Otherswise situation will become complicated.
Bao,
I don't think that we should adjust boot directory unconditionally. What if I put a vmlinuz in /boot dir for testing and I want to test it? kdump will not use that vmlinuz.
It's the same for /boot/vmlinuz. Say now KDUMP_BOOTDIR is /boot, then for /boot/vmlinuz-xxx, in /proc/cmdline it should be "BOOT_IMAGE=/boot/vmlinuz-xxx". So with this patch it will be "/" using dirname. It's OK to append "/" to /boot.
I am nor sure whether I get your meaning.
Bao, say you are booted into with BOOT_IMAGE=/boot/ostree/<foo1>/<foo2>/ dir. Now for debugging I drop my own vmlinuz in /boot/ directory. In that case kdump should load /boot/vmlinuz and not /boot/ostree/<foo1>/<foo2>/vmlinuz.
For the case you mentioned we can fix as below:
Set default value in sysconfig as blank like below: KDUMP_BOOTDIR=""
In kdumpctl code we can set the default value as /boot, as for atomic case we can set the default value as /boot/ostree/...
So if user want a debug kernel under /boot they need specify /boot in sysconfig or we will use our internal default directory name.
Thanks Dave