On 01/04/15 at 01:34pm, Dave Young wrote:
On 01/04/15 at 01:16pm, Baoquan He wrote:
> Jerry Hoemann reported a bug that a mount will fail when he installed
> a system with separate "/" "/var" and "/var/crash".
That means root
> disk /dev/a mounted on /, and another disk /dev/b is mounted on /var,
> then the 3rd disk /dev/c mounted on /var/crash. Then kdump will fail
> since mount will fail.
>
> This is because the mount information will be written into
> /$mntimage/etc/fstab like below. And the dump target is /dev/c. However
> /dev/b is not related in kdump, its mount info is not necessary and not
> saved. So when go into kdump kernel, it will find there's not a crash
> dir under /sysroot/var. And in current implementation, if not a root
> disk dump, sysroot is a read-only mount, no dir can be created in this
> situation.
>
> /dev/disk/by-uuid/cdcf007a-b623-45ee-8d73-a8be0d372440 /sysroot/var/crash xfs
rw,relatime,...,x-initrd.mount 0 2
>
> So in this patch, change the mount behavior to fix this bug. If dump
> target is a root disk, mount point is /sysroot. If dump target is not
> root, just mount it to /kdumproot/$_target. Now it works.
>
> Signed-off-by: Baoquan He <bhe(a)redhat.com>
> ---
> mkdumprd | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/mkdumprd b/mkdumprd
> index a30d9ca..ad2159b 100644
> --- a/mkdumprd
> +++ b/mkdumprd
> @@ -101,8 +101,16 @@ to_mount() {
>
> _source=$(findmnt -k -f -n -r -o SOURCE $_dev)
> _target=$(findmnt -k -f -n -r -o TARGET $_dev)
> - # mount under /sysroot in 2nd kernel, and we umount -R /sysroot before exit
> - _target="/sysroot$_target"
> + # mount under /sysroot if dump to root disk or mount under
> + #/kdumproot/$_target in other cases in 2nd kernel, and we
> + #umount -R /sysroot or /kdumproot/$_target before exit
> +
> + if [ $_target = "/" ];then
quote $_target should be better, not sure if it can be nul string, it it guranteed
at least a slash here?
It's the least that it's a slash. But add a quote is better. Will do.
> + _target="/sysroot"
> + else
> + _target="/kdumproot/$_target"
> + fi
> +
> _fstype=$(findmnt -k -f -n -r -o FSTYPE $_dev)
> _options=$(findmnt --fstab -f -n -r -o OPTIONS $_dev)
> [ -z "$_options" ] && _options=$(findmnt -k -f -n -r -o
OPTIONS $_dev)
> --
> 1.8.5.3
>
> _______________________________________________
> kexec mailing list
> kexec(a)lists.fedoraproject.org
>
https://lists.fedoraproject.org/mailman/listinfo/kexec
>
>