* Hacked up support for volume labels.
svn path=/nixos/trunk/; revision=7587
This commit is contained in:
parent
c9c5e920c9
commit
60e4da4a9b
|
@ -41,33 +41,42 @@ script
|
||||||
fsType=\${fsTypes[$n]}
|
fsType=\${fsTypes[$n]}
|
||||||
options=\${optionss[$n]}
|
options=\${optionss[$n]}
|
||||||
|
|
||||||
if ! test -e \"$device\"; then
|
isLabel=
|
||||||
|
if echo \"$device\" | grep -q '^LABEL='; then isLabel=1; fi
|
||||||
|
|
||||||
|
if ! test -n \"$isLabel\" -o -e \"$device\"; then
|
||||||
echo \"skipping $device, doesn't exist (yet)\"
|
echo \"skipping $device, doesn't exist (yet)\"
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
device=$(readlink -f \"$device\")
|
|
||||||
|
|
||||||
# If $device is already mounted somewhere else, unmount it first.
|
# If $device is already mounted somewhere else, unmount it first.
|
||||||
# !!! Note: we use /etc/mtab, not /proc/mounts, because mtab
|
# !!! Note: we use /etc/mtab, not /proc/mounts, because mtab
|
||||||
# contains more accurate info when using loop devices.
|
# contains more accurate info when using loop devices.
|
||||||
prevMountPoint=$(
|
|
||||||
cat /etc/mtab \\
|
|
||||||
| grep \"^$device \" \\
|
|
||||||
| sed 's|^[^ ]\\+ \\+\\([^ ]\\+\\).*|\\1|' \\
|
|
||||||
)
|
|
||||||
|
|
||||||
if test \"$prevMountPoint\" = \"$mountPoint\"; then
|
# !!! not very smart about labels yet; should resolve the label somehow.
|
||||||
echo \"remounting $device on $mountPoint\"
|
if test -z \"$isLabel\"; then
|
||||||
${utillinux}/bin/mount -t \"$fsType\" \\
|
|
||||||
-o remount,\"$options\" \\
|
device=$(readlink -f \"$device\")
|
||||||
\"$device\" \"$mountPoint\" || true
|
|
||||||
continue
|
prevMountPoint=$(
|
||||||
fi
|
cat /etc/mtab \\
|
||||||
|
| grep \"^$device \" \\
|
||||||
|
| sed 's|^[^ ]\\+ \\+\\([^ ]\\+\\).*|\\1|' \\
|
||||||
|
)
|
||||||
|
|
||||||
|
if test \"$prevMountPoint\" = \"$mountPoint\"; then
|
||||||
|
echo \"remounting $device on $mountPoint\"
|
||||||
|
${utillinux}/bin/mount -t \"$fsType\" \\
|
||||||
|
-o remount,\"$options\" \\
|
||||||
|
\"$device\" \"$mountPoint\" || true
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n \"$prevMountPoint\"; then
|
||||||
|
echo \"unmount $device from $prevMountPoint\"
|
||||||
|
${utillinux}/bin/umount \"$prevMountPoint\" || true
|
||||||
|
fi
|
||||||
|
|
||||||
if test -n \"$prevMountPoint\"; then
|
|
||||||
echo \"unmount $device from $prevMountPoint\"
|
|
||||||
${utillinux}/bin/umount \"$prevMountPoint\" || true
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo \"mounting $device on $mountPoint\"
|
echo \"mounting $device on $mountPoint\"
|
||||||
|
|
Loading…
Reference in a new issue