snapfsck.sh
changeset 9 a2875a6fd7b2
parent 8 b917ead1b6ef
equal deleted inserted replaced
8:b917ead1b6ef 9:a2875a6fd7b2
    37     # if you have problems removing volumes then you may have the 'udisks'
    37     # if you have problems removing volumes then you may have the 'udisks'
    38     # package installed; see:
    38     # package installed; see:
    39     # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=549691#74
    39     # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=549691#74
    40     # https://bugzilla.redhat.com/show_bug.cgi?id=577798#c5
    40     # https://bugzilla.redhat.com/show_bug.cgi?id=577798#c5
    41     # https://www.redhat.com/archives/linux-lvm/2010-August/msg00029.html
    41     # https://www.redhat.com/archives/linux-lvm/2010-August/msg00029.html
    42     lvs "$vg/$lvs" >/dev/null 2>&1 && lvremove -f "$vg/$lvs"
    42     lvs "$vg/$lvs" && lvremove -f "$vg/$lvs"
    43 
    43 
    44 }
    44 }
    45 
    45 
    46 while getopts "s:" opt; do
    46 while getopts "s:" opt; do
    47   case $opt in
    47   case $opt in
    65 
    65 
    66 [ -n "${vg}" -a -n "${lv}" -a "${vg}" != "${p}" -a "${lv}" != "${p}" ] || usage
    66 [ -n "${vg}" -a -n "${lv}" -a "${vg}" != "${p}" -a "${lv}" != "${p}" ] || usage
    67 
    67 
    68 d=$(date +%Y%m%d%H%M%S)
    68 d=$(date +%Y%m%d%H%M%S)
    69 lvcreate -n"$lvs" -L"$SNAPSIZE" -s "$vg/$lv"
    69 lvcreate -n"$lvs" -L"$SNAPSIZE" -s "$vg/$lv"
    70 if e2fsck -fp "/dev/$vg/$lvs"; then
    70 # fix any noncritical problems automatically and don't make any noise (on
       
    71 # stderr) about it; note that these problems remain present on the origin
       
    72 # volume
       
    73 e2fsck -fp "/dev/$vg/$lvs" 2>&1 || true
       
    74 if e2fsck -fy "/dev/$vg/$lvs" 2>&1; then
    71     tune2fs -C 1 -T "$d" "/dev/$vg/$lv"
    75     tune2fs -C 1 -T "$d" "/dev/$vg/$lv"
    72 else
    76 else
    73     die fsck returned nonzero: this may indicate filesystem corruption on the origin volume.
    77     die fsck returned nonzero: this may indicate filesystem corruption on the origin volume.
    74 fi
    78 fi