* Hacked up support for volume labels.

svn path=/nixos/trunk/; revision=7587
This commit is contained in:
Eelco Dolstra 2007-01-09 16:29:27 +00:00
parent c9c5e920c9
commit 60e4da4a9b

View File

@ -41,33 +41,42 @@ script
fsType=\${fsTypes[$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)\"
continue
fi
device=$(readlink -f \"$device\")
# If $device is already mounted somewhere else, unmount it first.
# !!! Note: we use /etc/mtab, not /proc/mounts, because mtab
# contains more accurate info when using loop devices.
prevMountPoint=$(
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
# !!! not very smart about labels yet; should resolve the label somehow.
if test -z \"$isLabel\"; then
device=$(readlink -f \"$device\")
prevMountPoint=$(
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
echo \"mounting $device on $mountPoint\"