On 12/30/14 at 05:25pm, WANG Chao wrote:
On 12/30/14 at 04:14pm, 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 | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/mkdumprd b/mkdumprd
> index a30d9ca..6ade88a 100644
> --- a/mkdumprd
> +++ b/mkdumprd
> @@ -102,7 +102,13 @@ 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
Hey, you missed the above comment. If the mount point moved under
/kdumproot/, we should umount /kdumproot/xxx in addtion to /sysroot/.
Yes, will change this and below extra line. Thanks Chao.
> - _target="/sysroot$_target"
> +
> + if [ $_target = "/" ];then
> + _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)
> @@ -368,6 +374,7 @@ handle_default_dump_target()
> fi
> }
>
> +
Superfluous newline?
Thanks
WANG Chao
> get_default_action_target()
> {
> local _target
> --
> 1.8.5.3
>
> _______________________________________________
> kexec mailing list
> kexec(a)lists.fedoraproject.org
>
https://lists.fedoraproject.org/mailman/listinfo/kexec
_______________________________________________
kexec mailing list
kexec(a)lists.fedoraproject.org
https://lists.fedoraproject.org/mailman/listinfo/kexec