mkdumprd: refine regex on dropping mount options
Currently we use "\b" (word boundary) as the delimiter for ro option, which is not correct. For mount options like "defaults,errors=remount-ro" the ro on the tail will also be replaced and result in an invalid mount option. So we use a more strict logic on detecting ro mount option. It should either starts with "," or "^" (begin of line) and ends with "," or "$" (end of line), and keep the delimiter untouched. This should ensure only valid mount option got detected and replaced. This passed following tests: defaults,ro,noauto,errors=remount-ro,nobootwait,nofail => defaults,rw,errors=remount-ro, defaults,errors=remount-ro => defaults,errors=remount-ro defaults,ro,relatime => defaults,rw,relatime defaults,ro => defaults,rw Signed-off-by: Kairui Song <kasong@redhat.com> Acked-by: Dave Young <dyoung@redhat.com>
This commit is contained in:
parent
7f9dd45688
commit
05cec1657f
10
mkdumprd
10
mkdumprd
@ -106,14 +106,14 @@ to_mount() {
|
||||
_options=$(echo $_options | sed 's/,clientaddr=[^,]*//')
|
||||
fi
|
||||
fi
|
||||
# mount fs target as rw in 2nd kernel
|
||||
_options=$(echo $_options | sed 's/\(^\|,\)ro\($\|,\)/\1rw\2/g')
|
||||
# with 'noauto' in fstab nfs and non-root disk mount will fail in 2nd
|
||||
# kernel, filter it out here.
|
||||
_options=$(echo $_options | sed 's/\bnoauto\b//')
|
||||
#mount fs target as rw in 2nd kernel
|
||||
_options=$(echo $_options | sed 's/\bro\b/rw/')
|
||||
_options=$(echo $_options | sed 's/\(^\|,\)noauto\($\|,\)/\1/g')
|
||||
# drop nofail or nobootwait
|
||||
_options=$(echo $_options | sed 's/\bnofail\b//')
|
||||
_options=$(echo $_options | sed 's/\bnobootwait\b//')
|
||||
_options=$(echo $_options | sed 's/\(^\|,\)nofail\($\|,\)/\1/g')
|
||||
_options=$(echo $_options | sed 's/\(^\|,\)nobootwait\($\|,\)/\1/g')
|
||||
|
||||
_mntopts="$_target $_fstype $_options"
|
||||
#for non-nfs _dev converting to use udev persistent name
|
||||
|
Loading…
Reference in New Issue
Block a user