Как отмонтировать файловую систему в solaris
14.07.2008
Если вдруг не отмонтируется файловая система не стоит сразу ее с форсом рвать,
нужно попробовать поговорить с ней по хорошему ;)
Например:
том /dev/vx/dsk/mydg/testvol примонтирован в /var/apache/www
# umount /var/apache/www
umount: /var/apache/www busy
# fuser /var/apache/www 2>/dev/null
1021 1054 841
Команда fuser выводит в STDERR имена файлов, а в STDOUT номера процессов,
которые их используют.
Итак, получили список процессов, которые держат каталог. Если каталог вложенный,
то можно продолжить
fuser /var/apache/www/* 2>/dev/null
fuser /var/apache/www/*/* 2>/dev/null
или
find /var/apache/www -exec fuser {} \; 2>/dev/null
Соответственно, смотрим номера процессов и прибиваем их (ну лучше,
конечно корректно останавливать)
# ps -ef |grep 1021
apache 1021 1020 0 10:57:01 ? 0:00 /usr/apache/bin/httpd
# /etc/init.d/apache stop
Снова проверили fuser-ом, все в порядке, никакие процессы нашу файловую систему не держат.
# umount /var/apache/www
umount: /var/apache/www busy
Так, продолжаем развивать тему…
# dfshares
RESOURCE SERVER ACCESS TRANSPORT
myserv:/var/apache/www/sun myserv - -
Опа, походу, nfs держит файловую систему на уровне ядра.
# unshare /var/apache/www/sun
# umount /var/apache/www
umount: /var/apache/www busy
Так, ну какие еще есть варианты…
mount | grep /var/apache/www
# mount |grep /var/apache/www
/var/apache/www on /dev/vx/dsk/mydg/testvol read/write/setuid/devices/intr/largefiles/logging/xattr/onerror=panic/dev=1540028 on Mon Jul 14 10:54:29 2008
/zone/00/root/var/apache/www on /var/apache/www read/write/setuid/devices/dev=1540028 on Mon Jul 14 10:55:58 2008
/tmp/6 on /var/apache/www/sun read/write/setuid/devices/dev=1540028 on Mon Jul 14 16:27:24 2008
Так, ну тут будем все останавливать и отмонтировать не смотря на лица
# zoneadm -z zone00 halt
# cat /etc/mnttab |grep /tmp/6
/var/apache/www/sun /tmp/6 lofs dev=1540028 1216038444
# umount /tmp/6
# umount /var/apache/www
#
Ну вот если все вышесказанное не помогло, ну тогда
# umount -f /var/apache/www