The crash dump is saved in the /sysroot/crash directory, not the /sysroot/var/crash in the atomic system.
We will find the mount point by the command "df", if the directory is mounted. But it is different between atomic system. "df /var/crash" shows the "/var" is a mounted directory, but the "/var" is not a mounted directory, for "df" command.
So add the filter to satisfy the mounted directory, that the mount point will appear both "df" and "df $dir".
Signed-off-by: Minfei Huang mhuang@redhat.com --- dracut-module-setup.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index ff7a088..b23de97 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -318,7 +318,10 @@ default_dump_target_install_conf()
_mntpoint=$(get_mntpoint_from_path $_save_path) _target=$(get_target_from_path $_save_path) - if [ "$_mntpoint" != "/" ]; then + # if the mount directory does not appear by the df command, + # the directory is not a mount directory, + # although the _mntpoint is "/", specified to the Atomic + if [ "$_mntpoint" != "/" ] && [ `df | grep "$_mntpoint" -q` ]; then _fstype=$(get_fs_type_from_target $_target)
if $(is_fs_type_nfs $_fstype); then
On Thu, Jan 29, 2015 at 04:51:31PM +0800, Minfei Huang wrote:
The crash dump is saved in the /sysroot/crash directory, not the /sysroot/var/crash in the atomic system.
We will find the mount point by the command "df", if the directory is mounted. But it is different between atomic system. "df /var/crash" shows the "/var" is a mounted directory, but the "/var" is not a mounted directory, for "df" command.
So add the filter to satisfy the mounted directory, that the mount point will appear both "df" and "df $dir".
Signed-off-by: Minfei Huang mhuang@redhat.com
dracut-module-setup.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index ff7a088..b23de97 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -318,7 +318,10 @@ default_dump_target_install_conf()
_mntpoint=$(get_mntpoint_from_path $_save_path) _target=$(get_target_from_path $_save_path)
- if [ "$_mntpoint" != "/" ]; then
- # if the mount directory does not appear by the df command,
- # the directory is not a mount directory,
- # although the _mntpoint is "/", specified to the Atomic
- if [ "$_mntpoint" != "/" ] && [ `df | grep "$_mntpoint" -q` ]; then _fstype=$(get_fs_type_from_target $_target)
Minfei,
How about moving this extra logic in get_mntpoint_from_path()?
Also there might be another way to figure out if it is bind mount or not.
Use "findmnt". On atomic "findmnt /var" returns following.
bash-4.2# findmnt -k -n -r -o SOURCE /var /dev/mapper/atomicos-root[/ostree/deploy/rhel-atomic-host/var]
Looks like first part is device and path inside brackets [] is path which is source of bind mount. You should be able to look for [] and if these are present you know mount point is bind mounted.
And we should explain there in a comment.
# We are looking to see if a part of dump path is mounted on some disk. # But we don't want to look for bind mounted directories. By default # df $path will show entries even if some part of path is bind mounted. # Also run findmnt to figure out if part of the $path is actuallly bind # mounted or real mount on some device.
Thanks Vivek
On 01/29/15 at 08:48am, Vivek Goyal wrote:
On Thu, Jan 29, 2015 at 04:51:31PM +0800, Minfei Huang wrote:
The crash dump is saved in the /sysroot/crash directory, not the /sysroot/var/crash in the atomic system.
We will find the mount point by the command "df", if the directory is mounted. But it is different between atomic system. "df /var/crash" shows the "/var" is a mounted directory, but the "/var" is not a mounted directory, for "df" command.
So add the filter to satisfy the mounted directory, that the mount point will appear both "df" and "df $dir".
Signed-off-by: Minfei Huang mhuang@redhat.com
dracut-module-setup.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index ff7a088..b23de97 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -318,7 +318,10 @@ default_dump_target_install_conf()
_mntpoint=$(get_mntpoint_from_path $_save_path) _target=$(get_target_from_path $_save_path)
- if [ "$_mntpoint" != "/" ]; then
- # if the mount directory does not appear by the df command,
- # the directory is not a mount directory,
- # although the _mntpoint is "/", specified to the Atomic
- if [ "$_mntpoint" != "/" ] && [ `df | grep "$_mntpoint" -q` ]; then _fstype=$(get_fs_type_from_target $_target)
Minfei,
How about moving this extra logic in get_mntpoint_from_path()?
Also there might be another way to figure out if it is bind mount or not.
Use "findmnt". On atomic "findmnt /var" returns following.
bash-4.2# findmnt -k -n -r -o SOURCE /var /dev/mapper/atomicos-root[/ostree/deploy/rhel-atomic-host/var]
Hi, Vivek!
The Atomic's bind mount is more particular, it is good idea that we can use the brackets to determine the mounted directory is bind or generic.
I will re-post the v2 to fix it.
Thanks Minfei
Looks like first part is device and path inside brackets [] is path which is source of bind mount. You should be able to look for [] and if these are present you know mount point is bind mounted.
And we should explain there in a comment.
# We are looking to see if a part of dump path is mounted on some disk. # But we don't want to look for bind mounted directories. By default # df $path will show entries even if some part of path is bind mounted. # Also run findmnt to figure out if part of the $path is actuallly bind # mounted or real mount on some device.
Thanks Vivek